﻿<?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/2544/sobytiinaya-model/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-11T08:16:56Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2544" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/18189/</id>
    <title type="text">немножко оффтоп, но вы собираетесь спред через quik торговать? вроде без плазы там(внутри спреда) де...</title>
    <published>2012-04-12T16:26:58Z</published>
    <updated>2012-04-12T16:26:58Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.ru/users/390/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">немножко оффтоп, но вы собираетесь спред через quik торговать? вроде без плазы там(внутри спреда) делать нечего )))&lt;br /&gt;&lt;br /&gt;В вашем случае я бы посоветовал создавать две стратегии котирования и, когда у обеих будет статус Stopped - создавать новые )</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18187/</id>
    <title type="text">Саму идею я понял! Но конкретно где не правильно я делаю не вижу! Моя задача в следующем написать пр...</title>
    <published>2012-04-12T15:30:33Z</published>
    <updated>2012-04-12T15:30:33Z</updated>
    <author>
      <name>Wetal</name>
      <uri>https://stocksharp.ru/users/28266/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Саму идею я понял! Но конкретно где не правильно я делаю не вижу! Моя задача в следующем написать правило на изменение состояния статуса 2х заявок, т.е.  допустим условие 1. заявка на продажу исполнилась а заявка на покупку еще активна -&amp;gt; если спред=х -&amp;gt; пере выставляем заявку на покупку уже с другой ценой. &lt;br /&gt;                 2. Так же как 1, только на оборот по заявкам.&lt;br /&gt;                 3. Обе заявки исполнились -&amp;gt; выставляем две новые. &lt;br /&gt;Вот собственно эти 3 я и написал, но они не срабатывают. (</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18172/</id>
    <title type="text">Помогите пожалуйста написать свое правило и активировать его! Какое правило я так и не понял. Официа...</title>
    <published>2012-04-12T03:32:10Z</published>
    <updated>2012-04-12T03:32:10Z</updated>
    <author>
      <name>hobo</name>
      <uri>https://stocksharp.ru/users/27889/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Wetal &lt;a href="https://stocksharp.ru/posts/m/18159/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Помогите пожалуйста написать свое правило и активировать его! &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Какое правило я так и не понял. &lt;a href="http://www.stocksharp.com/doc/html/8c0327db-494a-4fe0-aba8-0d4b93dea60e.htm" title="http://www.stocksharp.com/doc/html/8c0327db-494a-4fe0-aba8-0d4b93dea60e.htm"&gt;Официальный пример&lt;/a&gt; смотрели?&lt;br /&gt;99.9%, что вам не нужно новое правило и что дело не в том, что &amp;quot;if else - очень замедляет&amp;quot;. Начните все же с чтения документации и разбора примеров.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/18159/</id>
    <title type="text">Помогите пожалуйста написать свое правило и активировать его! на форуме нашел такие примеры: public ...</title>
    <published>2012-04-11T14:54:11Z</published>
    <updated>2012-04-11T14:54:57Z</updated>
    <author>
      <name>Wetal</name>
      <uri>https://stocksharp.ru/users/28266/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Помогите пожалуйста написать свое правило и активировать его! &lt;br /&gt;на форуме нашел такие примеры:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
 
public class rule1 : StrategyRule
    {
        public  StrategyRule rule11(Order order_sell, Order order_buy)
        {
            if (order.State == OrderStates.Done &amp;amp;&amp;amp; order.State == OrderStates.Done)
                this.Activate();
            return this;
        }
    }

public class strategy : Strategy
    {
        protected StrategyRule rule1()
        {
            return new rule1().rule11(Globals.order_buy);
        }
       
        protected override void OnStarting()
        {
              this
                     .When(rule1())
                     .Do(() =&amp;gt;
                {
                   
                        MessageBox.Show(&amp;quot;buy done&amp;quot;);
                 });
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/17844/</id>
    <title type="text">Коллеги, прошу помощи! Есть много условий на выставление и изменение(перерегистрация)заявок. Все раб...</title>
    <published>2012-03-29T19:35:59Z</published>
    <updated>2012-03-29T20:58:39Z</updated>
    <author>
      <name>Wetal</name>
      <uri>https://stocksharp.ru/users/28266/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Коллеги, прошу помощи! &lt;br /&gt;Есть много условий на выставление и изменение(перерегистрация)заявок. Все работает но в один момент заявка почему-то не выставляется. Понял что скорость анализа данных и выполнения условий мала.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;private void button1_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            bool flag=false;&lt;br /&gt;            Globals.Trader.QuotesChanged += depth =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                List&amp;lt;MarketDepthPair&amp;gt; t = Globals.Trader.GetMarketDepth(security).GetTopPairs(1).ToList();&lt;br /&gt;                foreach (MarketDepthPair t1 in t)&lt;br /&gt;                {&lt;br /&gt;                    decimal spread = t1.Ask.Price - t1.Bid.Price;&lt;br /&gt;                    if (условие 1)&lt;br /&gt;                    {&lt;br /&gt;                        if (  flag==false)&lt;br /&gt;                        {&lt;br /&gt;                            Dispatcher.BeginInvoke(new Action(() =&amp;gt;&lt;br /&gt;                            {&lt;br /&gt;                                &lt;br /&gt;                                order_buy = new Order&lt;br /&gt;                                 {&lt;br /&gt;                                     Portfolio = Portfolio,&lt;br /&gt;                                     Price = ...,&lt;br /&gt;                                     Security = security,&lt;br /&gt;                                     Volume = 1,&lt;br /&gt;                                     Direction = OrderDirections.Buy,&lt;br /&gt;                                 };&lt;br /&gt;                                Globals.Trader.RegisterOrder(order_buy);&lt;br /&gt;                                order_sell = new Order&lt;br /&gt;                                {&lt;br /&gt;                                    Portfolio = Portfolio,&lt;br /&gt;                                    Price = ...,&lt;br /&gt;                                    Security = security,&lt;br /&gt;                                    Volume = 1,&lt;br /&gt;                                    Direction = OrderDirections.Sell,&lt;br /&gt;                                };&lt;br /&gt;                                Globals.Trader.RegisterOrder(order_sell);&lt;br /&gt;                            }));&lt;br /&gt;                            flag = true; &lt;br /&gt;                        }&lt;br /&gt;                        else if(order_buy.State == OrderStates.Done &amp;amp;&amp;amp; order_sell.State==OrderStates.Active) &lt;br /&gt;                        {&lt;br /&gt;                            if (условие)&lt;br /&gt;                            {&lt;br /&gt;                                Dispatcher.BeginInvoke(new Action(() =&amp;gt;&lt;br /&gt;                                {&lt;br /&gt;                                    Globals.Trader.CancelOrder(order_sell);&lt;br /&gt;                                    &lt;br /&gt;                                    order_sell = new Order&lt;br /&gt;                                    {&lt;br /&gt;                                        Portfolio = Portfolio,&lt;br /&gt;                                        Price = ....,&lt;br /&gt;                                        Security = security,&lt;br /&gt;                                        Volume = 1,&lt;br /&gt;                                        Direction = OrderDirections.Sell,&lt;br /&gt;                                    };&lt;br /&gt;                                    Globals.Trader.RegisterOrder(order_sell);&lt;br /&gt;                                }));&lt;br /&gt;                            }&lt;br /&gt;                            flag = true;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                        else if (order_sell.State == OrderStates.Done &amp;amp;&amp;amp; order_buy.State == OrderStates.Active)&lt;br /&gt;                        {&lt;br /&gt;                            if (условие)&lt;br /&gt;                            {&lt;br /&gt;                                Dispatcher.BeginInvoke(new Action(() =&amp;gt;&lt;br /&gt;                                {&lt;br /&gt;                                    Globals.Trader.CancelOrder(order_buy);&lt;br /&gt;                                    order_buy = new Order&lt;br /&gt;                                    {&lt;br /&gt;                                        Portfolio = Portfolio,&lt;br /&gt;                                        Price = ....,&lt;br /&gt;                                        Security = security,&lt;br /&gt;                                        Volume = 1,&lt;br /&gt;                                        Direction = OrderDirections.Buy,&lt;br /&gt;                                    };&lt;br /&gt;                                    Globals.Trader.RegisterOrder(order_buy);&lt;br /&gt;                                }));&lt;br /&gt;                                flag = true;&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                        else if (order_sell.State == OrderStates.Done &amp;amp;&amp;amp; order_buy.State == OrderStates.Done)&lt;br /&gt;                        {&lt;br /&gt;                         &lt;br /&gt;                            flag = false;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;            };&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Понимаю, что if else - очень замедляет switch не подойдет, анализирую несколько переменных. Думаю создать события на каждое из условий. Может есть уже какие нибудь стандартизированные методы решения такой задачи?&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/17846/</id>
    <title type="text">На будущее, используйте теги {code=csharp} {/code}, вместо {} поставьте . Без них код трудно восприн...</title>
    <published>2012-03-29T20:40:48Z</published>
    <updated>2012-03-29T20:40:48Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">На будущее, используйте теги {code=csharp} {/code}, вместо {} поставьте []. Без них код трудно воспринять.&lt;br /&gt;&lt;br /&gt;Всю бизнес логику надо писать в классе наследованном от Strategy, а не в обработчике нажатия кнопки.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Думаю создать события на каждое из условий. Может есть уже какие нибудь стандартизированные методы решения такой задачи?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Используйте правила.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

            this
                .When()
                .Do();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>