﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Проблемы с реализацией стратегии котирования</title>
  <id>~/topic/11910/problemy-s-realizatsiei-strategii-kotirovaniya/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T10:49:08Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=11910" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/50663/</id>
    <title type="text">Стратегия в том виде что предоставлена не запустится. 1) 5f92cdf7169805ac7ddb5fe34a4f867b.png В стра...</title>
    <published>2020-06-11T07:55:36Z</published>
    <updated>2020-06-11T07:55:36Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Стратегия в том виде что предоставлена не запустится.&lt;br /&gt;1) &lt;a href='https://stocksharp.ru/file/114733/5f92cdf7169805ac7ddb5fe34a4f867b.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/114733/5f92cdf7169805ac7ddb5fe34a4f867b.png?size=800x800" alt="5f92cdf7169805ac7ddb5fe34a4f867b.png" title="5f92cdf7169805ac7ddb5fe34a4f867b.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В стратегии используются 2 стратегии котирования противоположные по направлению, есть совсем небольшая вероятность что при их работе Math.Abs(Position) == Volume. Это возможно только в том случае если все сделки придутся только на одну стратегию котирования. &lt;br /&gt;Вместо этого запуск стратегий закрытия _strategySellClosePosition и _strategyBuyClosePosition стоит запускать после остановки _strategySellClosePosition и _strategyBuyOpenPosition соответственно. Это можно реализовать, используя правило: &lt;br /&gt;&lt;br /&gt;  _strategyBuyOpenPosition&lt;br /&gt;                    .WhenStopped()&lt;br /&gt;                    .Do(() =&amp;gt; { &lt;br /&gt;_strategyBuyClosePosition = new MarketQuotingStrategy(Sides.Buy, Volume)&lt;br /&gt;…&lt;br /&gt;&lt;br /&gt; })&lt;br /&gt;                    .Once()&lt;br /&gt;                    .Apply(this);&lt;br /&gt;2) &lt;a href='https://stocksharp.ru/file/114734/d4aba21ab0036f89f58313ab9d212ff2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/114734/d4aba21ab0036f89f58313ab9d212ff2.png?size=800x800" alt="d4aba21ab0036f89f58313ab9d212ff2.png" title="d4aba21ab0036f89f58313ab9d212ff2.png" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Так как выбрана модель периодического запуска стратегии, то вполне возможна ситуация, когда позиция стратегии равна 0 но стратегии котирования уже запущены. Это приведет к многократному выставлению заявок. Необходимо реализовать дополнительную фильтрацию на наличие запушенных стратегий котирования _strategySellClosePosition и _strategyBuyClosePosition.&lt;br /&gt;3)  &lt;a href='https://stocksharp.ru/file/114735/530b83fc5f9e0c32b99bd3d37e091329.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/114735/530b83fc5f9e0c32b99bd3d37e091329.png?size=800x800" alt="530b83fc5f9e0c32b99bd3d37e091329.png" title="530b83fc5f9e0c32b99bd3d37e091329.png" /&gt;&lt;/a&gt;&lt;br /&gt;Дочерние стратегии сами остановятся при остановке родительской.&lt;br /&gt;4)  &lt;a href='https://stocksharp.ru/file/114736/8dc5970b0c202787f3f3f8b90fae8630.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/114736/8dc5970b0c202787f3f3f8b90fae8630.png?size=800x800" alt="8dc5970b0c202787f3f3f8b90fae8630.png" title="8dc5970b0c202787f3f3f8b90fae8630.png" /&gt;&lt;/a&gt;&lt;br /&gt;Закрытие позиции котированием в этом случае не произойдет. Так как это тоже дочерняя стратегия и она остановиться при остановке родительской. То есть в момент выполнения base.OnStopping();.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/50623/</id>
    <title type="text">Добрый день Извещаем вас, что анализ кода и исправления еще ведутся. Результат будет предоставлен в ...</title>
    <published>2020-06-05T10:42:34Z</published>
    <updated>2020-06-05T10:42:34Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день&lt;br /&gt;&lt;br /&gt;Извещаем вас, что анализ кода и исправления еще ведутся. Результат будет предоставлен в ближайшее время.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/50613/</id>
    <title type="text">Добрый день! Я отправил на почту файл Visual Studio со стратегией. Вашей почты у меня нет, поэтому о...</title>
    <published>2020-06-03T14:52:43Z</published>
    <updated>2020-06-03T15:22:27Z</updated>
    <author>
      <name>Анвар Насыров</name>
      <uri>https://stocksharp.ru/users/72675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;&lt;br /&gt;Я отправил на почту файл Visual Studio со стратегией. Вашей почты у меня нет, поэтому отправил на на &lt;a href="mailto:support@stocksharp.ru"&gt;support@stocksharp.ru&lt;/a&gt;. Все свои команды и действия я снабдил комментариями в самом файле.&lt;br /&gt;&lt;br /&gt;Идея стратегии заключается в следующем. При помощи алгоритма MarketQuotingStrategy стратегия котирует одновременно на покупку и продажу с двух сторон спреда. После того как как стратегия наберёт позицию хотя бы с одной стороны спреда, котирование с другой стороны спреда продолжается. В случае, если стратегия успевает закрыть позицию перед изменением цены, цикл повторяется. При этом стратегия постоянно мониторит текущую цену и сравнивает её с ценой открытия позиции. Если же стратегия не успевает закрыть позицию перед тем как цена изменилась, то стратегия останавливает котирование по цене Following, и запускает стратегию быстрого закрытия позиции котированием по цене Opposite для гарантированного быстрого закрытия позиции.&lt;br /&gt;При остановке, стратегия должна закрыть все позиции котированием, чтобы это потом не делать вручную. &lt;br /&gt;&lt;br /&gt;Однако во время работы стратегии происходит следующее:&lt;br /&gt;&lt;br /&gt;1) После того как отработает хотя бы одна из стратегий котирования, и наберет объем, стратегия просто останавливается и дальше не происходит ничего.&lt;br /&gt;2) Правило расчета средневзвешенной цены исполнения по сделкам стратегии не срабатывает. &lt;br /&gt;3) Средневзвешенная цена исполнения по сделкам стратегии не выводится в лог.&lt;br /&gt;4) Стратегия быстрого закрытия позиции не запускается. &lt;br /&gt;5) При остановке стратегия не закрывает позиции.&lt;br /&gt;&lt;br /&gt;При компиляции ошибок нет.&lt;br /&gt;Что я сделал не так?&lt;br /&gt;&lt;br /&gt;P. S. Если вас не затруднит, откорректируйте, пожалуйста стратегию в самом файле Visual Studio и отправьте мне. Я не профессиональный программист и мне так проще понимать. &lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/50600/</id>
    <title type="text">Здравствуйте. Мы проверили проверку нашего примера с котированием в уроках. Результат - стратегия ра...</title>
    <published>2020-06-01T22:05:47Z</published>
    <updated>2020-06-01T22:05:47Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте.&lt;br /&gt;&lt;br /&gt;Мы проверили проверку нашего примера с котированием в уроках. Результат - стратегия работает как и должно быть. Вероятность есть некоторые особенности в задании настройках, инструменте.&lt;br /&gt;&lt;br /&gt;Могли бы вы прислать на почту минимальный пример со всеми настройками для воспроизведения?&lt;br /&gt;&lt;br /&gt;Далее ответы от разработчика кода для уроков&lt;br /&gt;&lt;br /&gt;1) После тога как позиция набрана стратегия останавливается, ничего удалять не надо.&lt;br /&gt;2) Стратегии MarketQuotingStrategy запускаются автоматически когда две предыдущие будут остановлены. Возможно две предыдущие MarketQuotingStrategy не набрали полностью позиции которые вы задали.&lt;br /&gt;3) Любую стратегию S# можно запустить(Start), остановить(Stop), сбросить(Reset). В данном случае так же можно было остановить -&amp;gt; сбросить -&amp;gt; запустить. &lt;br /&gt;4) Событие изменение времени коннектора взято для облегчения понимания алгоритма. Вы можете использовать другой способ, это зависит от вашего алгоритма.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/50577/</id>
    <title type="text">Добрый день! Возникли несколько вопросов по реализации MarketQuotingStrategy. В учебном примере MqSp...</title>
    <published>2020-05-29T11:28:12Z</published>
    <updated>2020-05-31T12:34:32Z</updated>
    <author>
      <name>Анвар Насыров</name>
      <uri>https://stocksharp.ru/users/72675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;&lt;br /&gt;Возникли несколько вопросов по реализации MarketQuotingStrategy. &lt;br /&gt;&lt;br /&gt;В учебном примере MqSpreadstrategy при помощи алгоритма MarketQuotingStrategy стратегия котирует одновременно на покупку и продажу с двух сторон спреда. После того как как котировщик наберёт позицию хотя бы с одной стороны спреда, стратегия тут же останавливает котирование с той стороны спреда. После того, как отработает котировщик с другой стороны спреда, стратегия автоматически останавливается и не запускается Перезапускать всю стратегию нужно вручную. &lt;br /&gt;&lt;br /&gt;В учебных стратегиях из других уроков происходит практически тоже самое. Учебная стратегия MQstrategy отрабатывает также: сначала она набирает позицию с помощью стратегии котирования на покупку, а потом, когда позиция набрана, котирует на продажу. После того как отработают последовательно оба алгоритма котирования на покупку и продажу, она сразу же останавливается. &lt;br /&gt;&lt;br /&gt;Поэтому у меня возникли следующие вопросы: &lt;br /&gt;&lt;br /&gt;1) После того как набрана позиция, MarketQuotingStrategy сразу останавливается и автоматически удаляется из списка дочерних стратегий? Или нужно дополнительно прописать код остановки и удаления из списка дочерних стратегий?&lt;br /&gt;2) Почему MarketQuotingStrategy не запускается автоматически после того как позиция закрыта или равна нулю?&lt;br /&gt;3) Каждый раз для повторного запуска котировщика нужно создавать новый экземпляр MarketQuotingStrategy?&lt;br /&gt;3) Какие события лучше использовать для запуска MarketQuotingStrategy? В учебном примере используется событие изменения времени в коннекторе. Может лучше использовать событие изменения стакана?&lt;br /&gt;&lt;br /&gt;Заранее спасибо за помощь!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>