Не приходит событие NewMyTrades в MarketQuotingStrategy~/topic/1673/ne-prihodit-sobytie-newmytrades-v-marketquotingstrategy/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T19:25:05Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/9252/ Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт? Сделал. Нашел проблему. ...2011-07-01T13:42:28Z2011-07-01T13:42:28ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9248/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">InsiderHSE <a href="https://stocksharp.ru/posts/m/9174/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9129/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><br />Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт?</div></div><br /> Сделал.</div></div><br /><br />Нашел проблему. Ситуация следующая. MyMarketQuotingStrategy успешно отработало и было удалено. Сделки приходят чуть с запозданием, поэтому оно то успевало вызвать событие, то нет. Решается проблема так:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
public VolumeDiffStrategy(Security sec)
{
this.Security = sec;
base.RemoveChildStrategies = false;
}</pre>
</div></div><br /><br />Пока не знаю, насколько это правильно.</div></div><br />Спасибо, попробую так.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9248/ Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт? Сделал. Нашел проблему. ...2011-07-01T11:10:40Z2011-07-01T11:10:48ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">InsiderHSE <a href="https://stocksharp.ru/posts/m/9174/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9129/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><br />Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт?</div></div><br /> Сделал.</div></div><br /><br />Нашел проблему. Ситуация следующая. MyMarketQuotingStrategy успешно отработало и было удалено. Сделки приходят чуть с запозданием, поэтому оно то успевало вызвать событие, то нет. Решается проблема так:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
public VolumeDiffStrategy(Security sec)
{
this.Security = sec;
base.RemoveChildStrategies = false;
}</pre>
</div></div><br /><br />Пока не знаю, насколько это правильно.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9187/ Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт? Сделал. Ок, получил. Буд...2011-06-28T18:22:32Z2011-06-28T18:22:32ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">InsiderHSE <a href="https://stocksharp.ru/posts/m/9174/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9129/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><br />Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт?</div></div><br /> Сделал.</div></div><br /><br />Ок, получил. Буду разбираться.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9174/ Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт? Сделал.2011-06-28T13:41:59Z2011-06-28T13:41:59ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9129/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><br />Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт?</div></div><br /> Сделал.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9129/Меня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от д...2011-06-24T07:54:31Z2011-06-24T07:54:31ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">InsiderHSE <a href="https://stocksharp.ru/posts/m/9125/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9118/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Меня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от дочерней. А так быть не может. Потому что родительская подписывается последней строчкой в Action1 (неявно при добавлении в ChildStrategies).</div></div><br />Мхаил, а в какую сторону копать не подскажете? Не знаю, может это поможет, логика работы робота такая - базовая тратегия подписывается на событие новой свечки, и если есть условия на вход, вызывает кастомное событие. Есть кастомное правило, которое подписывается на это событие и активируется по его приходу, именно в тот момент вызывается Action1.</div></div><br /><br />Можете выкинуть все люгику работы, и прислать пример мне на mika сбк сайт?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9125/Меня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от д...2011-06-24T06:21:10Z2011-06-24T06:21:10ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/9118/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Меня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от дочерней. А так быть не может. Потому что родительская подписывается последней строчкой в Action1 (неявно при добавлении в ChildStrategies).</div></div><br />Мхаил, а в какую сторону копать не подскажете? Не знаю, может это поможет, логика работы робота такая - базовая тратегия подписывается на событие новой свечки, и если есть условия на вход, вызывает кастомное событие. Есть кастомное правило, которое подписывается на это событие и активируется по его приходу, именно в тот момент вызывается Action1.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9118/Меня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от д...2011-06-23T17:20:33Z2011-06-23T17:20:33ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruМеня в логе напрягает один момент. Сначала он выводит запись от родительской стратегии, а затем от дочерней. А так быть не может. Потому что родительская подписывается последней строчкой в Action1 (неявно при добавлении в ChildStrategies).Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9111/Есть базовая стратегия, которая при срабатывании кастомного правила вызывается Do(Action1): private ...2011-06-23T12:28:31Z2011-06-23T12:28:31ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruЕсть базовая стратегия, которая при срабатывании кастомного правила вызывается Do(Action1):<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void Action1()
{
Debug.WriteLine(DateTime.Now.ToLongTimeString() + " - Запускаем действие");
var order = _signalDirection == OrderDirections.Buy ? base.BuyAt(Security.LastTrade.Price) : base.SellAt(Security.LastTrade.Price);
var qstr = new MyMarketQuotingStrategy(order, 0m.Pips(order.Security), (0m).Pips(order.Security)) { PriceType = MarketPriceTypes.Middle, MaxErrorCount = 1 };
qstr.NewMyTrades += t =>
{
MyTrade tr = t.FirstOrDefault();
Debug.WriteLine("Котирование: Пришла новая сделка - " + DateTime.Now.ToLongTimeString() + " " + tr.ToString());
};
this.ChildStrategies.Add(qstr);
}
</pre>
</div></div><br />код MyMarketQuotingStrategy приведен выше.<br />Сама базовая стратегия вызывается следующим образом:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void LounchStrat()
{
var cm = new CandleManager(Trader);
var cf = new VolumeTimeFrameCandleFactory();
cm.UnRegisterCandleFactory<TimeFrameCandle>();
cm.RegisterCandleFactory(cf);
var strategy = new VolumeDiffStrategy(Security, SignalSecurity, 18000, (-5.08).Percents(), 0.03.Percents(), 0.03.Percents())
{
Volume = 1,
Portfolio = Portfolio_FORTS,
Trader = this.Trader,
IsShortEnabled = true,
CandleManager = cm,
};
cm.RegisterCandles<TimeFrameCandle, TimeSpan>(SignalSecurity, TimeSpan.FromSeconds(25));
if (!Trader.Terminal.IsQuotesOpened(Security)) Trader.Terminal.OpenQuotes(Security);
Trader.RegisterQuotes(Security);
strategy.NewMyTrades += t =>
{
MyTrade tr = t.FirstOrDefault();
Debug.WriteLine("Базовая стратегия: Пришла новая сделка - " + DateTime.Now.ToLongTimeString() + " " + tr.ToString());
};
var fileLogger = new FileStrategyLogger("log.txt");
fileLogger.Strategies.Add(strategy);
strategy.Start();
}
</pre>
</div></div><br /><br />Вывод дебаггера (после первой сделки все события вызвались, потом нет):<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
16:19:25 - вызван OnRunning
16:19:38 - Запускаем действие
Базовая стратегия: Пришла новая сделка - 16:19:40 StockSharp.BusinessEntities.MyTrade
Котирование: Пришла новая сделка - 16:19:40 StockSharp.BusinessEntities.MyTrade
Котирование внутри: Пришла новая сделка - 16:19:40 StockSharp.BusinessEntities.MyTrade
The thread '<No Name>' (0xc90) has exited with code 0 (0x0).
16:20:00 - Запускаем действие
Базовая стратегия: Пришла новая сделка - 16:20:01 StockSharp.BusinessEntities.MyTrade
16:20:29 - Запускаем действие
Базовая стратегия: Пришла новая сделка - 16:20:34 StockSharp.BusinessEntities.MyTrade
</pre>
</div></div><br /><br />лог:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
VDS 23.06.2011 16:19:26.313 Стратегия запущена.
VDS 23.06.2011 16:19:38.359 [MMQS] Стратегия запущена.
VDS 23.06.2011 16:19:38.566 [MMQS] Регистрация новой заявки на Buy с ценой 9622 и объемом 1.
VDS 23.06.2011 16:19:38.577 [MMQS] Заявка 58736846 на Buy отправлена с ценой 9622 объемом 1.
VDS 23.06.2011 16:19:38.678 [MMQS] Заявка 58736846 не имеет состояния.
VDS 23.06.2011 16:19:40.297 [MMQS] Цена текущей 9622 и лучшей 9621.
VDS 23.06.2011 16:19:40.297 [MMQS] Котирование заявки 58736846 на Buy с ценой 9622 объемом 1.
VDS 23.06.2011 16:19:40.301 [MMQS] Перекотирование зарегистрировано для заявки 58736847 на Buy с ценой 9621 объемом 1.
VDS 23.06.2011 16:19:40.336 [MMQS] Позиция изменилась на 1.
VDS 23.06.2011 16:19:40.336 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 23.06.2011 16:19:40.336 [MMQS] Стратегия останавливается.
VDS 23.06.2011 16:19:40.340 [MMQS] Стратегия остановлена.
VDS 23.06.2011 16:20:00.823 [MMQS] Стратегия запущена.
VDS 23.06.2011 16:20:00.889 [MMQS] Регистрация новой заявки на Buy с ценой 9618 и объемом 1.
VDS 23.06.2011 16:20:00.889 [MMQS] Заявка 58736848 на Buy отправлена с ценой 9618 объемом 1.
VDS 23.06.2011 16:20:01.091 [MMQS] Заявка 58736848 не имеет состояния.
VDS 23.06.2011 16:20:01.659 [MMQS] Позиция изменилась на 1.
VDS 23.06.2011 16:20:01.659 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 23.06.2011 16:20:01.659 [MMQS] Стратегия останавливается.
VDS 23.06.2011 16:20:01.659 [MMQS] Стратегия остановлена.
VDS 23.06.2011 16:20:30.155 [MMQS] Стратегия запущена.
VDS 23.06.2011 16:20:30.302 [MMQS] Регистрация новой заявки на Buy с ценой 9619 и объемом 1.
VDS 23.06.2011 16:20:30.302 [MMQS] Заявка 58736849 на Buy отправлена с ценой 9619 объемом 1.
VDS 23.06.2011 16:20:34.764 [MMQS] Позиция изменилась на 1.
VDS 23.06.2011 16:20:34.764 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 23.06.2011 16:20:34.764 [MMQS] Стратегия останавливается.
VDS 23.06.2011 16:20:34.764 [MMQS] Стратегия остановлена.
</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9095/Версия 3.2.2, проблема осталась. Использую следующий код Событие не приходит. Молный лог можете прив...2011-06-22T20:27:51Z2011-06-22T20:27:51ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">InsiderHSE <a href="https://stocksharp.ru/posts/m/9088/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Версия 3.2.2, проблема осталась.<br />Использую следующий код<br /><br /> Событие не приходит.</div></div><br /><br />Молный лог можете привести котирования? Плюс как используется стратегия? Куда-то добавляется или сама по себе работает? Как создается?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9088/Версия 3.2.2, проблема осталась. Использую следующий код class MyMarketQuotingStrategy : MarketQuoti...2011-06-22T17:53:49Z2011-06-22T17:53:49ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruВерсия 3.2.2, проблема осталась.<br />Использую следующий код<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
class MyMarketQuotingStrategy : MarketQuotingStrategy
{
public MyMarketQuotingStrategy(Order order, Unit betsPriceOffset, Unit priceOffset) : base(order, betsPriceOffset, priceOffset) { }
protected override void OnRunned()
{
base.NewMyTrades += t =>
{
MyTrade tr = t.FirstOrDefault();
Debug.WriteLine("Котирование внутри: Пришла новая сделка - " + DateTime.Now.ToLongTimeString() + " " + tr.ToString());
};
base.OnRunned();
}
}
</pre>
</div></div><br /> Событие не приходит.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/8980/сабж. Причем по родительской стратегии событие приходит. Я так понимаю, стратегия успевает остановит...2011-06-17T13:40:23Z2011-06-17T13:40:23ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruсабж. Причем по родительской стратегии событие приходит. Я так понимаю, стратегия успевает остановиться перед вызовом этого события. Это так задумано или баг?<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var strategy = new MyStrategy(Security)
{
Volume = 1,
Portfolio = Portfolio_FORTS,
Trader = this.Trader,
};
strategy.NewMyTrades += t =>
{
MyTrade tr = t.FirstOrDefault();
Debug.WriteLine("Родительская стратегия: Пришла новая сделка - " + DateTime.Now.ToLongTimeString() + " " + tr.ToString());
};
</pre>
</div></div><br />В коде стратеги при получении сигнала прописываю:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
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 =>
{
MyTrade tr = t.FirstOrDefault();
Debug.WriteLine("Котирование: Пришла новая сделка - " + DateTime.Now.ToLongTimeString() + " " + tr.ToString());
};
base.ChildStrategies.Add(qstr);
</pre>
</div></div><br />Получаю:<br />Родительская стратегия: Пришла новая сделка - 17:07:56 StockSharp.BusinessEntities.MyTrade<br />Родительская стратегия: Пришла новая сделка - 17:08:17 StockSharp.BusinessEntities.MyTrade<br /><br />Причем иногда сделка по котированию все-таки приходит, иногда с третьего раза, бывает позже.Copyright @ StockSharp Platform LLC 2010 - 2024