RandomWalkTradeGenerator не хранятся сделки~/topic/2214/randomwalktradegenerator-ne-hranyatsya-sdelki/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T14:03:59Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/15535/так у вас памяти не хватает, ведь написано. очищайте этот список, не держите в нём абсолютно все сде...2012-01-10T19:22:58Z2012-01-10T19:22:58ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruтак у вас памяти не хватает, ведь написано.<br />очищайте этот список, не держите в нём абсолютно все сделки.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15534/Создание шлюза: _trader = new EmulationTrader( new { security }, new { portfolio }) { MarketTimeChan...2012-01-10T19:03:44Z2012-01-10T19:04:20Zproftshttps://stocksharp.ru/users/6174/info@stocksharp.ruСоздание шлюза:<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />_trader = new EmulationTrader(<br /> new[] { security },<br /> new[] { portfolio })<br /> {<br /> MarketTimeChangedInterval = timeFrame,<br /> Storage = storage,<br /> WorkingTime = Exchange.Rts.WorkingTime,<br /> DaysInMemory = 1,<br /> };<br /> _trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security)<br /> {<br /> Interval = TimeSpan.FromSeconds(1),<br /> };<br /></div></div><br /><br /> из Strategy:<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />protected override void OnStarting()<br /> {<br /> sdelki = new ThreadSafeObservableCollection<Trade>();<br /> <br /> this<br /> .When(Security.SecurityNewTrades())<br /> .Do(raschet);<br /> base.OnStarting();<br /> }<br />private void raschet()<br /> {<br /> sdelki.Add(Security.LastTrade);<br /> <br /> MainWindow.Instance.GuiAsync(() => sum_vol_riz010 = sdelki.Where(p => p.Time > Security.LastTrade.Time.AddSeconds(-10) &&<br /> p.Security == Security).Sum(tr => tr.Volume));<br /> }<br /></div></div><br /><br />Пытаюсь сделать, чтобы заработал данный элементарный расчет.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15533/Без стэк трэйса невозможно сказать. Но похоже что да, проблема с потоками у вас возникает в алгоритм...2012-01-10T18:40:35Z2012-01-10T18:40:35ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruБез стэк трэйса невозможно сказать.<br />Но похоже что да, проблема с потоками у вас возникает в алгоритме.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15531/Для тестирования также нужны сделки. Пытался обойти данную проблему созданием собственной ThreadSafe...2012-01-10T16:20:19Z2012-01-10T16:20:39Zproftshttps://stocksharp.ru/users/6174/info@stocksharp.ruДля тестирования также нужны сделки.<br />Пытался обойти данную проблему созданием собственной ThreadSafeObservableCollection<Trade> sdelki, столкнулся со следующим:<br /><br />по событию<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />this<br /> .When(Security.SecurityNewTrades())<br /> .Do(raschet);<br /></div></div><br />сначала идет добавление последней сделки в мою коллекцию, а затем уже необходимый расчет на основе моей коллекции:<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />private void raschet()<br /> {<br /> sdelki.Add(Security.LastTrade);<br />...<br />/// Расчет<br />...<br /> }<br /></div></div><br /><br />Если перед запуском делаю остановку на строке добавления сделки в коллекцию и далее прогоняю с пом F11, то сделки сохраняются в коллекцию и расчет идет. Без остановки в коллекцию добавляется только одна сделка, хотя тики продолжают генерироваться и событие срабатывает и через некоторое время вылетает Win32Exception. Так понимаю что-то с потоками...Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/14524/ В самой стратегии пробую считать объем сделок за период, но: Int32 count = base.Trader.Trades.Count...2011-12-11T10:06:30Z2011-12-11T10:06:30ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">russ <a href="https://stocksharp.ru/posts/m/14518/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />В самой стратегии пробую считать объем сделок за период, но:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Int32 count = base.Trader.Trades.Count();</pre>
</div></div> всегда = 0.</div></div><br /><br />Да, в эмуляции сделки не попадают в Trader.Trades.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/14522/Народ, так должны хранится сделки или нет? В примерах аналогичная ситуация.2011-12-11T08:03:12Z2011-12-11T08:03:12Zrusshttps://stocksharp.ru/users/567/info@stocksharp.ruНарод, так должны хранится сделки или нет? В примерах аналогичная ситуация.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/14518/Версия 4.0.8 Генерирую данные и стакан. var security = new Security { Id = "RIU9@RTS", Code = "RIU9"...2011-12-10T19:45:43Z2011-12-10T20:37:42Zrusshttps://stocksharp.ru/users/567/info@stocksharp.ruВерсия 4.0.8<br />Генерирую данные и стакан.<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var security = new Security
{
Id = "RIU9@RTS",
Code = "RIU9",
Name = "RTS-9.09",
MinStepSize = 5,
MinStepPrice = 2,
Decimals = 0,
Exchange = Exchange.Test,
};
_trader = new EmulationTrader(
new[] { security },
new[] { portfolio })
{
MarketTimeChangedInterval = timeFrame
};
_trader.TradeGenerators[security] = new RandomWalkTradeGenerator(security, 155000);
_trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security);</pre>
</div></div><br /><br />В самой стратегии пробую считать объем сделок за период, но:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Int32 count = base.Trader.Trades.Count();</pre>
</div></div> всегда = 0.<br />Хотя в <div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Trade tr = base.Security.LastTrade;</pre>
</div></div> есть информация по сделке.<br />Приход новых сделок в стратегии обрабатываю вот так:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
protected override void OnStarting()
{
this
.When(base.Security.SecurityNewTrades())
.Do(CalcVolume);
base.OnStarting();
}</pre>
</div></div><br /><br />В чем может быть проблема?Copyright @ StockSharp Platform LLC 2010 - 2024