﻿<?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">Форум. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=219</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-07-02T15:39:56Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=219" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/1688/</id>
    <title type="text">База стаканов</title>
    <published>2011-06-23T15:48:00Z</published>
    <updated>2011-06-23T15:48:00Z</updated>
    <author>
      <name>vslaykovsky</name>
      <uri>https://stocksharp.ru/users/28159/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Добрый день.&lt;/p&gt;
&lt;p&gt;Кто-нибудь может поделиться базой стаканов, сохраненных в Гидре?
Можно небезвозмездно.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1687/</id>
    <title type="text">Стратегия некорректно вычисляет текущую позицию</title>
    <published>2011-06-23T07:33:42Z</published>
    <updated>2011-06-23T07:33:42Z</updated>
    <author>
      <name>Alex Ander</name>
      <uri>https://stocksharp.ru/users/710/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Стратегия корректно работает, но иногда некорректно вычисляет текущую позицию.
Иногда сбивается через несколько часов работы, иногда (крайне редко) - уже на первой сделке.
Ордер выставляется, сделка совершается, подсчет PnL идет верно, а позиция - нулевая (реже - удвоенная).&lt;/p&gt;
&lt;p&gt;Используется QuikTrader. Дочерних стратегий нет. В работу PnLManager и PositionManager не вмешивался.&lt;/p&gt;
&lt;p&gt;Stock# 3.1.10.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1686/</id>
    <title type="text">[FIXED] TakeProfitStrategy отправляет неправильный ордер</title>
    <published>2011-06-23T07:18:48Z</published>
    <updated>2011-06-23T07:18:48Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Разобравшись с &lt;a href="http://stocksharp.com/forum/1684/-BUG--BatchStrategy---Value-cannot-be-null--Parameter-name--security/"&gt;http://stocksharp.com/forum/1684/-BUG--BatchStrategy---Value-cannot-be-null--Parameter-name--security/&lt;/a&gt;
наткнулся на другую проблему:&lt;/p&gt;
&lt;p&gt;var takeProfit = new TakeProfitStrategy(t, this.TakeProfitThreshold);&lt;/p&gt;
&lt;p&gt;в момент срабатывания посылает в QUIK заявку с Price = this.TakeProfitThreshold что существенно ниже лимитов рынка и заявка отвергается:&lt;/p&gt;
&lt;p&gt;23.06.2011 11:11:00.667 [BS] [BS] [SLS] System.ArgumentException: Транзакции 'ACCOUNT=SPBFUT00al8; CLIENT_CODE=S#; TRANS_ID=40036888; CLASSCODE=SPBFUT; SECCODE=LKU1; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=6;' не была зарегистрирована. Причина 'Ошибка создания заявки. [FORTS] &amp;quot;Цена сделки вне лимита&amp;quot;.'.
Parameter name: transactionTxt
at #=q3C5AM$iq8NbweFUGFWK_sU7Vcw7Z$U4vlB2Hc50kdH4=.#=qLgL84qMEfuN5KhECfgmmVtmEjdZHFTZu$WkBCYieTcI=(String #=qgclQ_YrKOL8W24OU8dAXtQ==, OrderStatus&amp;amp; #=q_xaMqAhWgI5tV2SZaQTgUw==, UInt32&amp;amp; #=q9f$NCAgNEA2P_dgSYQX4ag==, Int64&amp;amp; #=qwVmYFYP0ooLLxsTPLQePQg==, String&amp;amp; #=qR6gf_ntTXrn2yuZ9RSMZLQ==)
at StockSharp.Quik.QuikTrader.#=q4vcoB7VlrVy4GatAp8_nMJ6AYLGi58dOpiGwxMBn6UQ=(Order #=qbn0ghccP_Nk8KrwPARMMqA==, TransactionBuilder #=qxOobaox1SG$xe4kqR2_8ZA==)
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.#=qFNjSJ7N1u5acr$1keu3nHg==()
at StockSharp.Algo.Strategies.QuotingStrategy.#=qeubD$wKedi$ApPCf6cLO3rlmhGW$ZeerQHKTqhIth$w=.#=qEsRZe$IDBR8A0j$0apLQ$Q==()
at StockSharp.Algo.Strategies.StrategyRule.#=qm8VBf4GDpEbeabai3WtCE_YuhOxfkovbmj6wDnrDrR0=.#=q0OgKPN9vlMKZZIjBhTnAcw==(Object #=q0xxkRlvbFaZQkdN1O3pBCA==)
at StockSharp.Algo.Strategies.StrategyRule.#=qwurDVpnPEgnquLK$nRLn9OHeSuX4XtP79q8cEhLyYMI=.#=qTxwzPP4CbQG2ITMlWDV$_nA93xIudHPYiyO3YFbU4x4=()
at StockSharp.Algo.Strategies.Strategy.#=qIHDBOzkYlc1Ka0H4Q5rQnQ==(StrategyRule #=qsRkj9dGU3TX31YwcXiQefQ==, Action #=qREJnLkxJR0fsGiLETZNSBg==)&lt;/p&gt;
&lt;p&gt;Environment: S# v3.2.2, QUIK&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1685/</id>
    <title type="text">Ошибки в 3.2.X</title>
    <published>2011-06-22T17:24:39Z</published>
    <updated>2011-06-22T17:24:39Z</updated>
    <author>
      <name>Roman0</name>
      <uri>https://stocksharp.ru/users/6034/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Похоже в версии 3.2.2 в Security.BestBid\BestAsk Volume и Price поменялись местами&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1684/</id>
    <title type="text">[BUG] BatchStrategy - Value cannot be null. Parameter name: security</title>
    <published>2011-06-22T16:22:45Z</published>
    <updated>2011-06-22T16:22:45Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;пытаюсь использовать TakeProfitStrategy и StopLossStrategy.
ловлю событие OnNewTrades и для трейдов которые принадлежат стратегии вызываю метод:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;		private void CoverTrades(IEnumerable&amp;lt;MyTrade&amp;gt; trades)
		{
			var batch = new BatchStrategy(BatchFinishModes.All); // { IsParallel = true };

			// для каждой сделки добавляем для защиты по пакетной стратегии
			foreach (MyTrade t in trades)
			{
				var s = new BatchStrategy(BatchFinishModes.First);

				var takeProfit = new TakeProfitStrategy(t, this.TakeProfitThreshold);
				//takeProfit.BestPriceOffset = 0m.Pips(t.Order.Security);
				//takeProfit.PriceOffset = 0m.Pips(t.Order.Security);
				//takeProfit.MaxErrorCount = 2;
				//takeProfit.UseMarketQuoting = true; 
				
				var stopLoss = new StopLossStrategy(t, this.StopLossThreshold);
				//stopLoss.BestPriceOffset = 0m.Pips(t.Order.Security);
				//stopLoss.PriceOffset = 0m.Pips(t.Order.Security);
				//stopLoss.MaxErrorCount = 2;
				//stopLoss.UseMarketQuoting = true;

				this.AddInfoLog(&amp;quot;Trade is protected. trade price was: {0}&amp;quot;, t.Trade.Price);

				s.ChildStrategies.Add(takeProfit);
				s.ChildStrategies.Add(stopLoss);
				batch.ChildStrategies.Add(s);
			}

			this.ChildStrategies.Add(batch);
		}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;в последней строчке возникает эксепшн:
Message	&amp;quot;Value cannot be null.\r\nParameter name: security&amp;quot;	string
StackTrace	&amp;quot;   at StockSharp.Algo.Strategies.StrategyRuleConditionHelper.#=q5t20hZ5NhMsnLhhoVmupPA==..ctor(Security #=qyOMCKzzXfCVNZ_GTO6s6Mw==)\r\n   at StockSharp.Algo.Strategies.StrategyRuleConditionHelper.#=qE_i7$K1H6gPzl54YI1f60g22aN8KJNIzpQoV8M31CwU=..ctor(Security #=qZ_BCqXMY5Y$FSVkvqc$gSQ==)\r\n   at StockSharp.Algo.Strategies.StrategyRuleConditionHelper.MarketDepthChanged(Security security)\r\n   at StockSharp.Algo.Strategies.QuotingStrategy.OnRunning()\r\n   at StockSharp.Algo.Strategies.Strategy.#=qF80M91vO$wL4Q_hdDt07aGyTnplCad9glUG6su24s3s=(StrategyProcessStates #=qVD6DbfnzbeUZEh8lM7LurA==)\r\n   at StockSharp.Algo.Strategies.Strategy.#=qXB1Yax1xNzLXbDjRPCi7tCznkY9B4AmNwgAE8teNSnbLKOZ7pea69ymbJ6ftrBi8(Strategy #=qrdDj0efX3T7$tYfaMwHvSQ==)\r\n   at Ecng.Collections.CollectionHelper.ForEach(IEnumerable&lt;code&gt;1 source, Action&lt;/code&gt;1 action)\r\n   at StockSharp.Algo.Strategies.Strategy.#=q3VsDgMm8EXknr4XwbQrzykk558DdB7AhrA0MenkIG4mOslFGa0jsUnoLXmPep_w$(IStrategyChildStrategyList #=qc8MS2wPBl0aYmiPlK7OPpw==)\r\n   at Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action&lt;code&gt;1 action)\r\n   at StockSharp.Algo.Strategies.Strategy.#=qqFxvsG_qDTMVCsiaiuO627TvkpI1QdJuWpQNBvO9AJ4=()\r\n   at StockSharp.Algo.Strategies.Strategy.#=qF80M91vO$wL4Q_hdDt07aGyTnplCad9glUG6su24s3s=(StrategyProcessStates #=qVD6DbfnzbeUZEh8lM7LurA==)\r\n   at StockSharp.Algo.Strategies.Strategy.#=qXB1Yax1xNzLXbDjRPCi7tCznkY9B4AmNwgAE8teNSnbLKOZ7pea69ymbJ6ftrBi8(Strategy #=qrdDj0efX3T7$tYfaMwHvSQ==)\r\n   at Ecng.Collections.CollectionHelper.ForEach(IEnumerable&lt;/code&gt;1 source, Action&lt;code&gt;1 action)\r\n   at StockSharp.Algo.Strategies.Strategy.#=q3VsDgMm8EXknr4XwbQrzykk558DdB7AhrA0MenkIG4mOslFGa0jsUnoLXmPep_w$(IStrategyChildStrategyList #=qc8MS2wPBl0aYmiPlK7OPpw==)\r\n   at Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action&lt;/code&gt;1 action)\r\n   at StockSharp.Algo.Strategies.Strategy.#=qqFxvsG_qDTMVCsiaiuO627TvkpI1QdJuWpQNBvO9AJ4=()\r\n   at StockSharp.Algo.Strategies.Strategy.#=qF80M91vO$wL4Q_hdDt07aGyTnplCad9glUG6su24s3s=(StrategyProcessStates #=qVD6DbfnzbeUZEh8lM7LurA==)\r\n   at StockSharp.Algo.Strategies.Strategy.#=qsJWnJ8ZS9kSeAG1NqJcSp94tYPTlnBSEn47C45iDRy4=.OnAdding(Strategy #=qqSQo0oCIzWI6DLEPymMnJw==)\r\n   at Ecng.Collections.BaseCollection&lt;code&gt;1.Add(T item)\r\n   at Ecng.Collections.SynchronizedCollection&lt;/code&gt;1.Add(T item)\r\n   at MyTrading.StrategiesLib.LimitStatArb.CoverTrades(IEnumerable&lt;code&gt;1 trades) in C:\\MyProjects\\MyTrading\\StrategiesLib\\LimitStatArb.cs:line 69\r\n   at MyTrading.StrategiesLib.LimitStatArb.Trader_NewMyTrades(IEnumerable&lt;/code&gt;1 trades) in C:\MyProjects\MyTrading\StrategiesLib\LimitStatArb.cs:line 37\r\n   at System.Action&lt;code&gt;1.Invoke(T obj)\r\n   at Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;/code&gt;1 handler, T arg)\r\n   at StockSharp.Algo.Testing.RealTimeEmulationTrader&lt;code&gt;1.#=qhrvZySd33X_Q1SUCxf9oHwTQM__bQsMfo6Ro$Vha9u8=(IEnumerable&lt;/code&gt;1 #=q4cgjILI8t5UOKN9_Pe_4AA==)\r\n   at Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;code&gt;1 handler, T arg)\r\n   at StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable&lt;/code&gt;1 trades)\r\n   at StockSharp.Algo.Testing.MarketEmulator.#=qEs$l0LvYhUYco3GGJLa5Eg==(Order #=qyVorZok67K51uOTgGrDkZg==, Int32 #=qBpUMVYqCJzL6R934ZM7bfw==, Decimal #=q5IDE$gbf5rRP8Otn1c4lGg==)\r\n   at StockSharp.Algo.Testing.MarketEmulator.#=q09JR5JSudo6W2SF8rRogNaemQQj9SvO8f6qfU4UJ6X0=(MarketDepth #=qkR4xVruXydpTJT6goOjVUA==, Order #=qOLTChJHz0$_wWdGKO8a6bg==, Quote #=qc62acyKRiEqBWmUljTXhkw==, Boolean #=qYlKiojNUC81EB4Oszvgf62Y9Z_OzVquViVi0HzEnfNk=)\r\n   at StockSharp.Algo.Testing.MarketEmulator.#=qY7ZKrEE2PZZbw_nJENCeJITZxF4l1pc9UH2JbVicIcI=(Order #=qsv6eKFrooFYED5AtXg3W5Q==, MarketDepth #=qrb3r5_EyE_lzdjYf1MQESQ==)\r\n   at StockSharp.Algo.Testing.MarketEmulator.#=qeAmKRIl9XhEvkcdH_dOhbg==(SynchronizedDictionary&lt;code&gt;2 #=q41csUsfkEwhy5_L12UKUFw==)\r\n   at Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action&lt;/code&gt;1 action)\r\n   at StockSharp.Algo.Testing.MarketEmulator.Emulate()\r\n   at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable&lt;code&gt;1 marketDepths)\r\n   at StockSharp.Algo.Testing.RealTimeEmulationTrader&lt;/code&gt;1.#=qMpi1M1KJMzur45zCCnhMeb0RCRP7LJozIcjoJQn_TZE=(IEnumerable&lt;code&gt;1 #=qK1FO3nQWTP8MUVNFADz9nA==)\r\n   at Ecng.Common.DelegateHelper.SafeInvoke(Action&lt;/code&gt;1 handler, T arg)\r\n   at StockSharp.Algo.BaseTrader.#=qCShKTbqJTVmmfu48SmdzkIqhq_f$ljv1HDBVbsnofCQ=.#=qoxhUX87tcowE4b51IGMQCg==(IEnumerable`1 #=qhBbuGOwsDBAEQciofJ5UXg==)&amp;quot;	string&lt;/p&gt;
&lt;p&gt;PS. возможно это как-то связано с &lt;a href="http://stocksharp.com/forum/1683/TraderHelper-ShrinkPrice---Instrumient-imieiet-nulievoi-shagh-tsieny/"&gt;http://stocksharp.com/forum/1683/TraderHelper-ShrinkPrice---Instrumient-imieiet-nulievoi-shagh-tsieny/&lt;/a&gt; ?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1683/</id>
    <title type="text">[SOLVED] TraderHelper.ShrinkPrice -&amp;gt; Инструмент имеет нулевой шаг цены</title>
    <published>2011-06-22T15:29:21Z</published>
    <updated>2011-06-22T15:29:21Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;В версии 3.2 кусок кода выполнялся нормально:
TraderHelper.ShrinkPrice(security, price);&lt;/p&gt;
&lt;p&gt;а в версии 3.2.2 выдает исключение:
&amp;quot;Инструмент имеет нулевой шаг цены.
Parameter name: security&amp;quot;&lt;/p&gt;
&lt;p&gt;и под дебаггером видно что: MinPrice = 0, MinStepPrice=null, MinStepSize=0
в Quik в таблице &amp;quot;Инструменты&amp;quot; &amp;quot;Шаг цены&amp;quot; = 1 (инструмент - LKU1@RTS)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1682/</id>
    <title type="text">Не работает StopLossStrategy - CurrentBestPrice = 0</title>
    <published>2011-06-22T13:30:12Z</published>
    <updated>2011-06-22T13:30:12Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Никак не могу разобраться со стоп-лосс стратегией. Цена инструмента в стакане опускается ниже поога, а стратегия не срабаывает. Посмотрел дебаггером - метод GetNewPrice() все время возвращает 0,  CurrentBestPrice также всегда 0, хотя массив из 20 лучших оферов присутствует. У кого-нибудь стратегия работает? Прошу подсказать, в какую сторону копать, замучался уже(&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1681/</id>
    <title type="text">Изменения в версии 3.2.1</title>
    <published>2011-06-21T22:16:31Z</published>
    <updated>2011-06-21T22:16:31Z</updated>
    <author>
      <name>l-way</name>
      <uri>https://stocksharp.ru/users/16565/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Добрый день&lt;/p&gt;
&lt;p&gt;Подскажите, пожалуйста, есть ли где то описание всех изменений и когда будет обновление хелпа?&lt;/p&gt;
&lt;p&gt;Например, интересует - куда пропал strategymanager и как работать без него?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1680/</id>
    <title type="text">Фундаментальный вопрос по использованию</title>
    <published>2011-06-21T16:31:39Z</published>
    <updated>2011-06-21T16:31:39Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Михаил,&lt;/p&gt;
&lt;p&gt;почитав темы про стратегии, и в частности &lt;strong&gt;ActionStrategy&lt;/strong&gt;, я понял, что новичкам сложно понять use cases.&lt;/p&gt;
&lt;p&gt;Если использовать &lt;strong&gt;TimeFrameStrategy&lt;/strong&gt;, то &lt;strong&gt;OnProcess()&lt;/strong&gt; вызывается с частотой согласно значению &lt;strong&gt;Interval&lt;/strong&gt;.
Если использовать &lt;strong&gt;ActionStrategy&lt;/strong&gt;, то условие &lt;strong&gt;When()&lt;/strong&gt;  проверяется  с частотой согласно значению &lt;strong&gt;Interval&lt;/strong&gt;.
Т.о. в обоих случаях мы зависим от значения &lt;strong&gt;Interval&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Допустим, я хочу совершать заявки по событию &lt;strong&gt;ITrader.NewTrades&lt;/strong&gt;. Но это событие никак не коррелирует с фиксированным &lt;strong&gt;Interval&lt;/strong&gt;'ом,
и может возникать как каждую миллисекунду (напр. RI), так и раз в 5 мин. (второй эшелон)
И получается, что мне не подходит ни &lt;strong&gt;OnProcess()&lt;/strong&gt;, ни &lt;strong&gt;When()&lt;/strong&gt;, и свои активности мне надо писать прямо в обработчике &lt;strong&gt;ITrader.NewTrades&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Можно конечно &lt;strong&gt;Interval&lt;/strong&gt;выставить в одну миллисекунду, но это как-то не красиво...&lt;/p&gt;
&lt;p&gt;Правильно ли я все понимаю или где-то есть ошибки в моих рассуждениях?
Или можно все-таки обернуть в &lt;strong&gt;When()&lt;/strong&gt; событие &lt;strong&gt;ITrader.NewTrades&lt;/strong&gt;, так чтобы время проверки не зависело от &lt;strong&gt;Interval&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;P.S. еще раз спасибо за отличную библиотеку и великолепную поддержку!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1679/</id>
    <title type="text">round trip подачи заявки через stock# + plaza2</title>
    <published>2011-06-20T11:43:53Z</published>
    <updated>2011-06-20T11:43:53Z</updated>
    <author>
      <name>vslaykovsky</name>
      <uri>https://stocksharp.ru/users/28159/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Здравствуйте.&lt;/p&gt;
&lt;p&gt;Подскажите, пожалуйста, какой средний round-trip подачи заявки стоит ожидать сейчас при использовании plaza2+stock# в течение дня на forts при торговле фьючерсом на индекс rts?
Quik, подключенный через брокера, показывает ~500ms, что совершенно не устраивает&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1678/</id>
    <title type="text">Поменял урл у проекта на CodePlex</title>
    <published>2011-06-19T17:34:54Z</published>
    <updated>2011-06-19T17:34:54Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Новости" />
    <content type="html">&lt;p&gt;&lt;a href="http://stocksharp.codeplex.com/" rel="nofollow" target="_blank"&gt;http://stocksharp.codeplex.com/&lt;/a&gt; По-моему, проще набивать.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1677/</id>
    <title type="text">Проблема при тестировании примера SampleGUI</title>
    <published>2011-06-19T11:21:47Z</published>
    <updated>2011-06-19T11:21:47Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.ru/users/6053/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">&lt;p&gt;Тестирую пример SampleGUI, при нажатии кнопки подключится выдается следующая ошибка:
{&amp;quot;Не удалось получить фабрику класса COM для компонента с CLSID {43FB494A-620B-4588-A9DD-DB0BE4B6694A} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).&amp;quot;}&lt;/p&gt;
&lt;p&gt;Протрассировал, ошибка исходит из конструктора PlazaTrader, внутрь зайти не получается. Такое ощущение, что какая-то библиотечка должна была быть зарегана в GAC, но в исходниках никакая библиотека с таким CLSID не фигурирует. Что это может быть??&lt;/p&gt;
&lt;p&gt;З.Ы. Буду искать способ зайти в конструктор PlazaTrader, чтоб выудить доп информацию.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1676/</id>
    <title type="text">Стратегия работающая с несколькими инструментами и портфелями</title>
    <published>2011-06-18T19:46:17Z</published>
    <updated>2011-06-18T19:46:17Z</updated>
    <author>
      <name>President</name>
      <uri>https://stocksharp.ru/users/510/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Добрый день.&lt;/p&gt;
&lt;p&gt;Стратегия работает с несколькими инструментами и портфелями.
Как иделологически это правильнее реализовывать на Stock#?&lt;/p&gt;
&lt;p&gt;Вижу два варианта:
1.
В MyStrategy добавляется нужное количество полей для содержания всех security и portfolio
Вся логика в MyStrategy.OnProcess()
При этом поля Strategy.Security и Strategy.Portfolio не используются.&lt;/p&gt;
&lt;p&gt;2.
В MyStrategy добавляются child-стратегии - по одной на каждый инструмент.
Вся логика по-прежнему в MyStrategy.OnProcess(), при этом если нужно что-то купить-продать - имплементация этого делается в ChildStrategy.СвойМетод(). А ChildStrategy.OnProcess() насколько я понимаю тут не используется.
Алгоритм самой стратегии тут  усложняется (лишние сущности без которых можно обойтись) но преимуществом тут наверное может быть использование PnLManager и других классов до изучения которых я еще не добрался.&lt;/p&gt;
&lt;p&gt;Я пока пользуюсь первым вариантом - но наличие неиспользуемых полей Strategy.Security и Strategy.Portfolio смущает.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1675/</id>
    <title type="text">Важное изменение портфелей Stock# для биржи ММВБ</title>
    <published>2011-06-18T10:47:03Z</published>
    <updated>2011-06-18T10:47:03Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Разбираясь с &lt;a href="http://stocksharp.com/forum/1633/Svoistvo-Portfolio-u-position-v-sobytiiakh/"&gt;этой проблемой&lt;/a&gt; наткнулся на следующее:
у нас сейчас портфель на ММВБ характеризуется Фирмой (для портфеля по бумагам) и Счётом депо (для позициям по бумагам).&lt;/p&gt;
&lt;p&gt;Судя по документации квика:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;mark&amp;gt;Фирма&amp;lt;/mark&amp;gt; - Код участника торгов в торговой системе&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сейчас загрузил 2 разных квика в Открытии - в обоих квиках фирма одинаковая - MC01396000000.
Т.е. это действительно код брокера как участника, а не различный счёт клиентов.&lt;/p&gt;
&lt;p&gt;Портфели, как мне кажется, должны создаваться по коду клиента - именно они разные для каждого клиента.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;mark&amp;gt;Код клиента&amp;lt;/mark&amp;gt; - Идентификатор клиента в системе QUIK - говорится в документации Квика.
Т.е. портфель по ссылке выше должен быть один - OPEN408.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Именно по этому коду клиента можно сопоставить позицию с текущим портфелем, именно из-за этого приходят портфели, которые приходить не должны.&lt;/p&gt;
&lt;p&gt;Собственно возникли вопросы:
Вопрос к тем кто торгует на мамбе - правильно ли я понял сущность портфелей на бирже ММВБ в квике (сам не торговал акциями с 2008)?
Если да, то кто-нибудь кроме Ивана сталкивался с этой проблемой?&lt;/p&gt;
&lt;p&gt;И если действительно необходимо надо будет создавать портфели по коду клиента, а не по фирме - нужны ли кому-нибудь поля Фирма в таблице Портфель по бумагам и поле Счёт депо в таблице Позиции по бумагам (они, повторюсь, судя по всему характеризуют именно код брокера)?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1674/</id>
    <title type="text">Предложение по таблице &amp;quot;Портфель по деривативам&amp;quot;</title>
    <published>2011-06-18T09:43:49Z</published>
    <updated>2011-06-18T09:43:49Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;В настоящее время у нас в Портфель по деривативам выводится предыдущий лимит открытых позиций (записывается в Portfolio.BeginAmount).
По документации квика:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;mark&amp;gt;Предыд. лимит откр. поз.&amp;lt;/mark&amp;gt; - Лимит открытых позиций по всем инструментам &lt;strong&gt;предыдущей торговой сессии&lt;/strong&gt; в денежном выражении.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Portfolio.BeginAmount же:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Размер денежных средств &lt;strong&gt;на начало торговой сессии&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В результате одно получается - на начало предыдущей торговой сессии, другое - на начало текущей торговой сессии.
В квике есть замечательный столбец лимит открытых позиций:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;mark&amp;gt;Лимит откр. поз.&amp;lt;/mark&amp;gt; - Текущий лимит открытых позиций по всем инструментам в денежном выражении. Для рынка RTS Standard отображается лимит на покупку спотовых активов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;От себя добавлю - я с самой первой версии у себя заменил пред. лимит откр. поз. на просто лими откр. поз.
Он действительно показывает средства на начало текущей сессии - то что и надо.
Правда за исключением одного - если на начало текущей сессии было X, а потом с данного счёта вывели или добавили Y, то лимит откр. поз. изменится до &amp;lt;mark&amp;gt;X +(-) Y&amp;lt;/mark&amp;gt;&lt;/p&gt;
&lt;p&gt;Что тоже, на мой взгляд, не далеко от истины. К примеру, у вас на начало сессии было 0 рублей, но в течение сессии поступило переведённые вами 100 тысяч рублей - лимит откр. поз. изменится на 100 тысяч.&lt;/p&gt;
&lt;p&gt;Поэтому у меня предложение - заменить столбец по умолчанию в Портфеле по деривативам с Пред. лимит откр. поз. на Лимит откр. поз.
Деньги на начало предыдущей сессии, если они действительно нужны, могут быть выведены в отдельном столбце и получены через ExtensionInfo - всё согласно документации.&lt;/p&gt;
&lt;p&gt;Как? Возражающих нет?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1673/</id>
    <title type="text">Не приходит событие NewMyTrades в MarketQuotingStrategy</title>
    <published>2011-06-17T13:40:23Z</published>
    <updated>2011-06-17T13:40:23Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;сабж. Причем по родительской стратегии событие приходит. Я так понимаю, стратегия успевает остановиться перед вызовом этого события. Это так задумано или баг?&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt; var strategy = new MyStrategy(Security)
            {
            	Volume = 1,
            	Portfolio = Portfolio_FORTS,
            	Trader = this.Trader,
            };

			strategy.NewMyTrades += t =&amp;gt;
			{
				MyTrade tr = t.FirstOrDefault();
				Debug.WriteLine(&amp;quot;Родительская стратегия: Пришла новая сделка - &amp;quot; + DateTime.Now.ToLongTimeString() + &amp;quot;   &amp;quot; + tr.ToString());
			};

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;В коде стратеги при получении сигнала прописываю:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
var order = base.BuyAt(Security.LastTrade.Price);
var qstr = new MyMarketQuotingStrategy(order, 0m.Pips(order.Security), 0m.Pips(order.Security)) { PriceType = MarketPriceTypes.Middle, MaxErrorCount = 1 };
	qstr.NewMyTrades += t =&amp;gt;
	{
		MyTrade tr = t.FirstOrDefault();
		Debug.WriteLine(&amp;quot;Котирование: Пришла новая сделка - &amp;quot; + DateTime.Now.ToLongTimeString() + &amp;quot;   &amp;quot; + tr.ToString());
	};
base.ChildStrategies.Add(qstr);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Получаю:
Родительская стратегия: Пришла новая сделка - 17:07:56   StockSharp.BusinessEntities.MyTrade
Родительская стратегия: Пришла новая сделка - 17:08:17   StockSharp.BusinessEntities.MyTrade&lt;/p&gt;
&lt;p&gt;Причем иногда сделка по котированию все-таки приходит, иногда с третьего раза, бывает позже.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1672/</id>
    <title type="text">Полезные функции</title>
    <published>2011-06-17T13:36:23Z</published>
    <updated>2011-06-17T13:36:23Z</updated>
    <author>
      <name>Артем_2</name>
      <uri>https://stocksharp.ru/users/27723/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Всем доброго времени суток!
Ради интереса и для обмена опытом написания роботов/приводов под Stock# решил открыть небольшую темку на форуме. Сюда  выложу некоторые процедуры и функции, которые использую в своем приводе. Возможно, кто-то почерпнет для себя нечто интересное или готов предложить свои варианты. Программирую на C# не так давно, поэтому код не претендует на нобелевскую премию...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Процедура для запска Квика с последующей автризацией StartQuikConnection()&lt;/li&gt;
&lt;li&gt;Функция для проверки настроек таблиц&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
#region QUIK CONNECTION

        public static Ecng.Trading.Quik.QuikTrader Trader;

        private static Ecng.Trading.Algo.Strategies.StrategyManager StrategyManager;

        public delegate void Connected_EventHandler(Boolean IsOK);
        public static event Connected_EventHandler Connected;

        public static Boolean IsTraderConnected
        {
            get
            {
                if (Trader == null || !Trader.IsConnected)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }


        private static System.Threading.AutoResetEvent _OnTerminalConnectedWaitHandle;
        public static void StartQuikConnection()
        {
            if (IsTraderConnected)
            {
                Globals.Сообщить(&amp;quot;Подключение уже активно!&amp;quot;, Globals.СтатусСообщения.Инфо);
            }
            else
            {
                //System.Threading.ManualResetEvent waitHandle_ЗапускТерминала = new System.Threading.ManualResetEvent(false);

                if (!StartTerminal())
                { return; }

                //waitHandle_ЗапускТерминала.WaitOne(60000);
                /////////////////////////////////////////////////
                try
                {
                    if (!IsTraderConnected)
                    {
                        _OnTerminalConnectedWaitHandle = new System.Threading.AutoResetEvent(false);

                        if (Trader == null) //Если null, регистрируем новый trader
                        {
                            Trader = new Ecng.Trading.Quik.QuikTrader(_QuikPath);
                            Trader.IsAsyncMode = false;

                            Trader.ConnectionError += OnTraderConnectionError;

                            //подписываемся на событие успешного подключения
                            //все действия необходимо производить только после подключения
                            Trader.Connected += OnTraderConnected;

                            Trader.Connect();

                        }
                        else
                        {
                            Trader.Reconnect();

                        }

                        _OnTerminalConnectedWaitHandle.WaitOne(10000);
                    }

                }
                catch (Exception e)
                {
                    OnConnect(false);

                    if (Trader != null)
                    {
                        Trader.Dispose();
                        Trader = null;
                    }
                    MessageBox.Show(&amp;quot;Ошибка при подключении к Quik: &amp;quot; + '\n' + e.Message, &amp;quot;Подключение к QUIK!&amp;quot;, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private static Boolean StartTerminal()
        {
            try
            {
                Ecng.Trading.Quik.QuikTerminal terminal = QuikTerminal.DefaultTerminal;

                if (terminal == null || !terminal.IsConnected)
                {
                    Globals.Состояние(&amp;quot;Подключение к Quik...&amp;quot;);

                    terminal = QuikTerminal.Get(_QuikPath);

                    if (!terminal.IsLaunched)
                    {
                        Globals.Сообщить(&amp;quot;Запускаем Quik &amp;lt;&amp;quot; + DateTime.Now.ToString(&amp;quot;dd.MM.yyyy HH:mm:ss&amp;quot;) + &amp;quot;&amp;gt;&amp;quot;, Globals.СтатусСообщения.Инфо);

                        terminal.Launch();

                        Globals.Сообщить(&amp;quot;Quik запущен &amp;lt;&amp;quot; + DateTime.Now.ToString(&amp;quot;dd.MM.yyyy HH:mm:ss&amp;quot;) + &amp;quot;&amp;gt;&amp;quot;, Globals.СтатусСообщения.Инфо);
                    }

                }
                else
                {
                    Globals.Сообщить(&amp;quot;Найден запущенный Quik&amp;quot;, Globals.СтатусСообщения.Инфо);
                }

                if (terminal == null)
                {
                    return false;
                }

                if (!terminal.IsConnected)
                {
                    terminal.Login(_QuikLogin, _QuikPassword);

                    Globals.Сообщить(&amp;quot;Авторизация произведена&amp;quot;, Globals.СтатусСообщения.Инфо);
                }

                Globals.Состояние(&amp;quot;&amp;quot;);

                return true;

            }
            catch (Exception e)
            {
                Globals.Состояние(&amp;quot;&amp;quot;);

                Globals.Сообщить(&amp;quot;Ошибка запуска QUIK: &amp;quot; + e.Message, Globals.СтатусСообщения.Важное);

                return false;
            }
        }

        private static void OnConnect(Boolean IsOK)
        {
            if (Connected != null) Connected(IsOK);

        }

        public static Boolean CheckDDE()
        {
            StartQuikConnection();
            if (IsTraderConnected)
            {
                return CheckDDE_OnConnected();
            }
            else
            {
                return false;
            }
        }
        private static Boolean CheckDDE_OnConnected()
        {
            Boolean _resault = true;
            Trader.ProcessDataError += OnTraderProcessDataError;
            try
            {
                var _errors = Trader.Terminal.GetTableSettings();

                foreach (var _err in _errors)
                {
                    Globals.СтатусСообщения _статус = Globals.СтатусСообщения.Обычное;

                    if (_err.IsCritical)
                    {
                        _статус = Globals.СтатусСообщения.Важное;
                        _resault = false;
                    }

                    Globals.Сообщить(_err.Error.Message, _статус);
                }
            }
            catch
            {
                _resault = false;
            }
            finally
            {
                Trader.ProcessDataError -= OnTraderProcessDataError;
            }

            return _resault;
        }

        #region STATIC ОБРАБОТЧИНИК СОБЫТИЙ

        private static void OnTraderConnected()
        {
            _OnTerminalConnectedWaitHandle.Set();
            Globals.Сообщить(&amp;quot;Подключение было произведено успешно!&amp;quot;, Globals.СтатусСообщения.Инфо);
            OnConnect(true);
        }

        private static void OnTraderConnectionError(Exception e)
        {
            Globals.Сообщить(&amp;quot;Ошибка при подключении к Quik: &amp;quot; + e.Message, Globals.СтатусСообщения.Важное);
            OnConnect(false);
        }

        private static void OnTraderProcessDataError(Exception e)
        {
            Globals.Сообщить(&amp;quot;Ошибка при получении/обработке данных с сервера Quik: &amp;quot; + e.Message, Globals.СтатусСообщения.Важное);
        }
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1671/</id>
    <title type="text">вывод через dde не стартует для таблицы &amp;quot;портфель по деривативам&amp;quot;</title>
    <published>2011-06-16T07:23:54Z</published>
    <updated>2011-06-16T07:23:54Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Вызываю StartExport. Для всех остальных таблиц экспорт стартует, для &amp;quot;Портфель по деривативам&amp;quot; не хочет. Для того, чтобы пришел портфель приходится стартовать вывод руками.
S# 3.1.10.0&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1670/</id>
    <title type="text">3.2 и сериализация свечей</title>
    <published>2011-06-15T22:17:12Z</published>
    <updated>2011-06-15T22:17:12Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Не получается сериализовать свечи, пишет что CandleToken не помечен соответствующим атрибутом. Может, в 3.2 реализован штатный способ сохранения свечей на диск?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1669/</id>
    <title type="text">Индикатор - рефакторинг</title>
    <published>2011-06-15T20:02:44Z</published>
    <updated>2011-06-15T20:02:44Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Первый существенный рефакторинг. Произвести нужно, различий уже много в каждом из индюков. Что бросилось в глаза:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Класса нужно объявлять public. Иначе их не будет видно с наружи (в роботе).&lt;/li&gt;
&lt;li&gt;Предлагаю все воспользоваться R# и применить выложенные настройки (применять через аддон к R# - rsm.codeplex.com). Файл должен быть &amp;quot;зеленым&amp;quot;, в идеале вообще без меток.&lt;/li&gt;
&lt;li&gt;Давайте разнесем индюки по разным папкам. Я создал 2 - для тренд и волатильность. Подозреваю, что их недостаточно. При переносе файла так же нужно менять и namespace чтобы было правильнее с точки зрения C#.&lt;/li&gt;
&lt;li&gt;Есть 2 класса - SingleValueIndicator и LengthIndicator. Предлагаю свои индюки отнаследовать именно от них (какой именно подойдет можно понять по коду).&lt;/li&gt;
&lt;li&gt;Имена. Будем делать длинными? Посмотрите как получилось со скользящими. Нормально? Если да, то давайте и свои так же переделаем.&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
</feed>