и если у вас в правилах открытия EMA > EMA и EMA < EMA замените на пересекает вверх и пересекает вниз и всё заработает.
а ещё важно какой таймфрейм, если у вас H1 или выше на роботе, то
BarTime() на 23 часах выдаст 23:00:00, а это меньше вашего условия и правило не сработает, а на следующем баре будет уже 00:00:00 и правило так же не сработает, т.к. условие не выполняется.
Код: Выделить всё
/**
Стратегия на пересечении 2х ЕМА.
Developed by Alfadirect;
Algorithm = ТРЕНД;
Hash code CF943F470615A836BD6B1073B46C0714
**/
function Initialize()
{
StrategyName = "Alfa_EE";
AddParameter("P1", 1, "", 1);
AddParameter("P2", 100, "", 0);
AddInput("Input1", Inputs.Candle, 60, true, "GAZP=МБ ЦК");
LongLimit = 0;
ShortLimit = 0;
}
function OnUpdate()
{
/// ПРАВИЛО 1
if ( (CrossAbove(EMA(Input1.Close, P1), EMA(Input1.Close, P2)) == true) )
{
EnterLong();
}
/// ПРАВИЛО 2
if ( (CrossBelow(EMA(Input1.Close, P1), EMA(Input1.Close, P2)) == true) )
{
EnterShort();
}
/// ПРАВИЛО 5
if ( (BarTime() > AsTime(23, 28, 0)) )
{
ClosePosition();
}
}