﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Правило помечено как Once, но иногда вызывается дважды</title>
  <id>~/topic/1846/pravilo-pomecheno-kak-once-no-inogda-vyzyvaetsya-dvazhdy/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-06T03:10:14Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1846" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/10667/</id>
    <title type="text">Пришлите минимальный проект, где это воспроизводится.</title>
    <published>2011-08-28T12:08:06Z</published>
    <updated>2011-08-28T12:08:06Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Пришлите минимальный проект, где это воспроизводится.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/10661/</id>
    <title type="text">Правило создается каждый раз при регистрации новой заявки. Зачем 2 раза free = false? - забыл удалит...</title>
    <published>2011-08-28T05:29:04Z</published>
    <updated>2011-08-28T05:29:04Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Правило создается каждый раз при регистрации новой заявки.&lt;br /&gt;Зачем 2 раза free = false? - забыл удалить нижнию.&lt;br /&gt;&lt;br /&gt;Не вижу где здесь делается вывод того, что в первом сообщении. - происходит в методе ,вызываемом при исполнении правила - RecalculateVolume.&lt;br /&gt;Также неясно что с 3.2.10 - Пока мало тестировал, определённо сказать не могу.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/10655/</id>
    <title type="text"> if(_free){ _free = false; _order = new Order { Portfolio = this.Portfolio, Volume = vol, Price = pr...</title>
    <published>2011-08-27T20:05:49Z</published>
    <updated>2011-08-27T20:05:49Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vader &lt;a href="https://stocksharp.com/posts/m/10610/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

if(_free){
						_free = false;
						_order = new Order
						{
							Portfolio = this.Portfolio,
							Volume = vol,
							Price = price,
							Security = this.Security,
							Direction = OrderDirections.Sell,
						};
						
						WrapRegisterOrder();
					}

private void WrapRegisterOrder()
		{
			_ruleMatched = this
				.When(StrategyRuleConditionHelper.Matched(_order))
				.Do(RecalculateVolume)
				.Once();
			_ruleMatched.EnableLog(true);
Register(_order);
_free = false;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Не вижу где здесь делается вывод того, что в первом сообщении.&lt;br /&gt;Также неясно что с 3.2.10&lt;br /&gt;&lt;br /&gt;Зачем 2 раза free = false?&lt;br /&gt;И сколько раз правило создаётся?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/10610/</id>
    <title type="text"> if(_free){ _free = false; _order = new Order { Portfolio = this.Portfolio, Volume = vol, Price = pr...</title>
    <published>2011-08-25T08:56:23Z</published>
    <updated>2011-08-25T08:56:23Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

if(_free){
						_free = false;
						_order = new Order
						{
							Portfolio = this.Portfolio,
							Volume = vol,
							Price = price,
							Security = this.Security,
							Direction = OrderDirections.Sell,
						};
						
						WrapRegisterOrder();
					}

private void WrapRegisterOrder()
		{
			_ruleMatched = this
				.When(StrategyRuleConditionHelper.Matched(_order))
				.Do(RecalculateVolume)
				.Once();
			_ruleMatched.EnableLog(true);
Register(_order);
_free = false;
}
&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.com/posts/m/10607/</id>
    <title type="text">Покажите где и как создаёте правило. Также проверьте данное поведение на 3.2.10</title>
    <published>2011-08-24T21:49:16Z</published>
    <updated>2011-08-24T21:49:16Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Покажите где и как создаёте правило.&lt;br /&gt;Также проверьте данное поведение на 3.2.10</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/10601/</id>
    <title type="text">При исполнении сделки вызывается метод, где пересчитывается позиция. Правило помечено как Once, но и...</title>
    <published>2011-08-24T19:28:39Z</published>
    <updated>2011-08-24T19:29:22Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">При исполнении сделки вызывается метод, где пересчитывается позиция. &lt;br /&gt;Правило помечено как Once, но иногда вызывается дважды. &lt;br /&gt;Вот вывод изменения текущей позиции и TransactionId &lt;br /&gt;1 61947599 &lt;br /&gt;2 61947600 &lt;br /&gt;11 61947601 &lt;br /&gt;12 61947602 &lt;br /&gt;19 61947603 &lt;br /&gt;25 61947604 &lt;br /&gt;26 61947605 &lt;br /&gt;27 61947606 &lt;br /&gt;28 61947606 &lt;br /&gt;33 61947607       &lt;br /&gt;36 61947608 &lt;br /&gt;&lt;br /&gt;3и 4 с конца списка - дважды посчитано по одной сделке.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>