У меня похожая проблема.
Переворотный скрипт торгует в лаборатории, а в реале только первый вход срабатывает, а дальше переворот не делает(в менеджере команд ничего не появляется).
Переворот, по идее, производится при пересечении моего индикатора с ценой. Вот так:
...
int barsCount = source.Bars.Count;
for (int i = ctx.TradeFromBar + 1; i < barsCount; ++i)
{
IPosition le = source.Positions.GetLastActiveForSignal("LE");
IPosition se = source.Positions.GetLastActiveForSignal("SE");
if (le == null && my_indicator_result[i - 1] > source.ClosePrices[i - 1] && my_indicator_result[i] < source.ClosePrices[i])
{
if (se != null)
se.CloseAtMarket(i + 1, "SX");
source.Positions.BuyAtMarket(i + 1, 1, "LE");
}
if (se == null && my_indicator_result[i - 1] < source.ClosePrices[i - 1] && my_indicator_result[i] > source.ClosePrices[i])
{
if (le != null)
le.CloseAtMarket(i + 1, "LX");
source.Positions.SellAtMarket(i + 1, 1, "SE");
}
}
...
индикатор на графике в реале успешно рисуется и выглядит как надо.
Пробовал запускать другой переворотный скрипт "две скользящие средние" сделанный на кубиках - там всё прекрасно работает.
Как заставить скрипт нормально торговать?