Вещь странная и мне не понятная)
Т.е. Есть стратегия в ней постоянно обрабатывается стакан, и в этой стратегии применяются защитные стратегии в частности StopLossStrategy. При остановки одной из дочерних стратегий получение данных основной стратегией да и вообще
PlazaTrader останавливается...
Я думал это из за ошибки внутри самой StopLossStrategy. создал свою защитную стратегию. Все равно эффект тот же. Притом если останавливать мою стратегию вот так
this.When(Security.LastTradePriceLessAbsolute(stopPrice))
.Do(() =>
{
...
Stop();
})
.Once();
Данные не перестают поступать. А если так
this.When(this.StrategyNewOrder())
.Do(Stop)
.Once();
То перестают) В чем проблема может быть не знаете?
Комментарии (11)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Правда во внешней стратегии так же навешано правило на StopLossStrategy.StrategyNewOrder(). Может из за этого че то?
Не вызывайте Stop для дочерней стратегии. Там делается Once()
Хм... Оставить ее запущенной.. Хм.. Ресурсы ни как кушать не будет?
Once - от английского слова единожды. Остановится само.
Остановиться правило а не стратегия. Я вот о чем.
Вы вызываете метод Stop(); и останавливаете сами стратегию. Своими руками. Внутри правила.
Да. Я так и делаю. Как я и описывал ранее:
this.When(Security.LastTradePriceLessAbsolute(stopPrice)) .Do(() => { ... Stop(); }) .Once();
Только останавливаю я дочернею стратегию. А данные перестают поступать вообще. Т.е. передача данных встает на ITrader
Пробуйте 4.0.1 dll с codeplex и новую плазу.
Вот сейчас собираю как раз)
Раз у вас таких проблем не наблюдается знач пойду руки себе выпрямлять...