﻿<?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/1979/kotirovanie-po-volatilnosti/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-15T01:17:43Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1979" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/11948/</id>
    <title type="text">Alexander Mukhanchikov: Обрабатывайте событие возникновения ошибки стратегии и поступайте как считае...</title>
    <published>2011-10-05T12:03:22Z</published>
    <updated>2011-10-05T12:03:22Z</updated>
    <author>
      <name>Артем_2</name>
      <uri>https://stocksharp.ru/users/27723/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11947)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Обрабатывайте событие возникновения ошибки стратегии и поступайте как считаете нужным в зависимости от текста ошибки&lt;/li&gt;
&lt;li&gt;Переопределите OnWriteMessage&lt;/li&gt;
&lt;li&gt;Снимайте заявки через Trader.CancelOrders&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Спасибо, попробую!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/11947/</id>
    <title type="text">Обрабатывайте событие возникновения ошибки стратегии и поступайте как считаете нужным в зависимости ...</title>
    <published>2011-10-05T12:01:00Z</published>
    <updated>2011-10-05T12:01:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;Обрабатывайте событие возникновения ошибки стратегии и поступайте как считаете нужным в зависимости от текста ошибки&lt;/li&gt;
&lt;li&gt;Переопределите OnWriteMessage&lt;/li&gt;
&lt;li&gt;Снимайте заявки через Trader.CancelOrders&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/11945/</id>
    <title type="text">Добрый день! Пытаюсь организовать работу с заявками по волатильности, но никак не получается добитьс...</title>
    <published>2011-10-05T11:49:53Z</published>
    <updated>2011-10-05T11:55:46Z</updated>
    <author>
      <name>Артем_2</name>
      <uri>https://stocksharp.ru/users/27723/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день!
Пытаюсь организовать работу с заявками по волатильности, но никак не получается добиться более менее комфортной работы от &lt;strong&gt;VolatilityQuotingStrategy&lt;/strong&gt; для Quik. Библиотека S# 4.0 Попытаюсь систематизировать возникащие проблемы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Остановка по ошибке&lt;/strong&gt;&lt;/u&gt;
Сейчас в случае возникновения любой ошибки стратегия котирования останавливается или пытается продолжить работу пока не будет исчерпан лимит &lt;strong&gt;MaxErrorCount&lt;/strong&gt;. Но такое поведение не всегда подходит.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Например, в случае ошибки:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;. Причина '[FORTS] Премия по опциону вне лимитов. 12065.00000 - 12565.00000'.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;обоснована немедленная остановка стратегии, а в случае ошибок типа:&lt;/p&gt;
&lt;p&gt;не удается снять заявку&lt;/p&gt;
&lt;p&gt;хотелось бы, чтобы стратегия предприняла еще попытки отменить заявку.&lt;/p&gt;
&lt;p&gt;В связи с этим возникает вопрос... - Можно ли как-то определить типы исключений, по которым стратегия должна останавливаться, а по которым нет? Или может есть какой-то альтернативный механизм, при помощи которого можно организовать подобную логику?&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Логгирование&lt;/strong&gt;&lt;/u&gt;
Сейчас логги стратегии котирования содержат огромное количество информации. И сам процесс перестановки заявок и все ошибки выводятся через событие Log. Очевидно, что в общем случае для пользователя такое количество информации является избыточным, нужно как-то фильтровать сообщения. Например, мне было бы достаточно выводить только ошибки, которые привели к остановке стратегии. Я пытаюсь фильтровать только message, где MessageState.Error Но тексте такой ошибки выводится StackTrace и Транзакция, которые очень сильно захламляют выводимое сообщение.
Пример:&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;System.ArgumentException: Транзакции 'ACCOUNT=SPBFUT00021; CLIENT_CODE=SPBFUT00021; TRANS_ID=53588440; CLASSCODE=SPBOPT; SECCODE=RI125000BX1; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=15055; EXECUTION_CONDITION=PUT_IN_QUEUE;' не была зарегистрирована. Причина '[FORTS] Премия по опциону вне лимитов. 12065.00000 - 12565.00000'.
Parameter name: transactionTxt
at #=qWPEZbaPXXnfu0dolel1ZCrOozOSaV9Evx8y5tzJ_qRg=.#=qUmjMMAjUTZss3dBE$Ew$fpc_JpVLlqt0ZmiB6BsvsdU=(String #=qL04X18_51q6kCgj6rYNY5g==, OrderStatus&amp;amp; #=qsrLj2ADhO$O_1gepTOivtA==, UInt32&amp;amp; #=qLxax_yvVk4z0qUc0dAQ32g==, Int64&amp;amp; #=qtjdK4awArO9TiFZTKitnBQ==, String&amp;amp; #=q2bRWR3jcDI1Bu7F20PAwxw==)
at StockSharp.Quik.QuikTrader.#=qNjNbkG4PfYKhxHndxWXTWF1Ov$hID1w11HFWHeJ2x5k=(Order #=qLe3cC9AUaUdkc1nayio1IA==, TransactionBuilder #=qI3zb3NAT7OuakeMqyKo6bw==)
at StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
at StockSharp.Algo.BaseTrader.RegisterOrder(Order order)
at StockSharp.Algo.Strategies.Strategy.RegisterOrder(Order order)
at StockSharp.Algo.Strategies.QuotingStrategy.#=qUnRhFjJYBEJR2aX1ii4r3g==()
at StockSharp.Algo.Strategies.QuotingStrategy.#=qMLnz$QQgJVSunmZKGb$991wLpKURSLxlpEtBpES1NFI=.#=qmtxb5GB9904qysMgCjwVBQ==()
at StockSharp.Algo.Strategies.StrategyRule.#=qQrecZK95seh7eX31S0$L1c4z__sUsXGlZDSN84Xriek=.#=qhftCtuaqFJhzzRNZOlqGig==(Object #=qKbVbzSe0ZKnXvU43LzXRuw==)
at StockSharp.Algo.Strategies.Strategy.#=q1CfLqaNuJVblIvl$mfhRZQ==(StrategyRule #=qjNSQS_xTM$cIj4bTUzJoNQ==, Object #=qnC3HLgCCuWFncdxUk6AxAQ==)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Отмена заявок в VolatilityQuotingStrategy&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Не получается чисто прервать работу VolatilityQuotingStrategy с отменой всех активных заявок:&lt;/p&gt;
&lt;ol type="a"&gt;
&lt;li&gt;При вызове strategy.CancelActiveOrders() часто выдается исключение типа &amp;quot;Стратегия должна быть зарегистрирована&amp;quot;. Поэтому я проверяю сначала ProcessState&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;if (volaOrder.ProcessState == StockSharp.Algo.Strategies.ProcessStates.Started)
                {
                    volaOrder.CancelActiveOrders();
                }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Но что делать, если стратегия остановлена(она остановилась по ошибке), а активные заявки остались?&lt;/p&gt;
&lt;ol type="a" start="2"&gt;
&lt;li&gt;В последней версии такого не замечал, но возможно по чистой случайности, поэтому напишу еще об одной проблеме. При попытке остановить стратегию VolatilityQuotingStrategy&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;volaOrder.Stop()&lt;/p&gt;
&lt;p&gt;стратегия зависает в состоянии Stopping, начинает что-то пытаться делать, в логи валятся сообщения... Т.е. создается ощущение, что в OnStopping крутится какой-то код, который не дает перевестись стратегии в состояние Stopped. Приходится выводить volaOrder.Stop() в отдельный поток, чтобы не блокировать основной поток при таком зависании.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>