Надо расставить скобки. Прочти комментарии к твоему коду.
void OpenSell() { if(BarHigh > PrevBarHigh) // Если условие не выполнено if(BarLow > PrevBarLow) // то эта строка не выполняется if(BarClose < (BarLength/2+BarLow)) // а эта уже будет выполняться. И дальше так-же, если это условие выполнено if(BarClose < BandCenter) // эта строка выполняется и условие не выполнено то if(BarHigh > Band1Low) // эта строка не выполняется if((Bid+(BarHigh+DeviationSL*Point))>MaxSL*Point) // и соответственно это условие может проверяться, а может и нет. { TiketSell=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SellSL,0,"Gambit",123123,0); Print("Открыт ордер SELL №"," ",TiketSell); Terminal(); } }
Надо расставить скобки. Прочти комментарии к твоему коду.
void OpenBuy() { if(BarHigh < PrevBarHigh) { if(BarLow < PrevBarLow) { if(BarClose > (BarLength/2+BarLow)) { if(BarClose > BandCenter) { if(BarLow > Band1Up) { if((Ask-(BarLow-DeviationSL*Point))<MaxSL*Point) { TiketBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,BarLow-DeviationSL*Point,0,"Gambit",123123,0); Print("Открыт ордер BUY №"," ",TiketBuy); Terminal(); } } } } } } }
Вы проверяли все ли условия выполняются? И какие ошибки выдает терминал?
Доброго дня!
Прошу сильно не пинать! Это мой первый эксперт!
И у меня возникла проблема с вложенными if (возможно после последнего обновления mql4 т. к. до него данное вложение работало).
Вот собственно код которые не работает, а работал:
void OpenSell()
{
if(BarHigh > PrevBarHigh)
if(BarLow > PrevBarLow)
if(BarClose < (BarLength/2+BarLow))
if(BarClose < BandCenter)
if(BarHigh > Band1Low)
if((Bid+(BarHigh+DeviationSL*Point))>MaxSL*Point)
{
TiketSell=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SellSL,0,"Gambit",123123,0);
Print("Открыт ордер SELL №"," ",TiketSell);
Terminal();
}
}
А в таком виде работает:
if((DaysDecr==10)&&(PrevBarHigh<BarHigh)&&(PrevBarLow<BarLow)&&(BarClose<(BarLength/2+BarLow))&&(BarClose<BandCenter)&&(BarLow>=Band1Low)&&((Bid+(BarHigh+DeviationSL*Point))>MaxSL*Point))
{
SellOpen=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SellSL,0,"Gambit",123123,0); //Band2Low-100*Point
Print("SellOpen"," ",SellOpen);
}
Подскажите пож. в чем может быть проблема!???
Заранее Спасибо!
Проблема в том, что условия сформулированы по-разному.
По крайней мере 2 отличия
Видимо, неважное отличие
(DaysDecr==10)
А вот это кардинальное отличие. Условие
if(BarHigh > Band1Low)
отличается от
&&(BarLow>=Band1Low)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго дня!
Прошу сильно не пинать! Это мой первый эксперт!
И у меня возникла проблема с вложенными if (возможно после последнего обновления mql4 т. к. до него данное вложение работало).
Вот собственно код которые не работает, а работал:
void OpenSell()
{
if(BarHigh > PrevBarHigh)
if(BarLow > PrevBarLow)
if(BarClose < (BarLength/2+BarLow))
if(BarClose < BandCenter)
if(BarHigh > Band1Low)
if((Bid+(BarHigh+DeviationSL*Point))>MaxSL*Point)
{
TiketSell=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SellSL,0,"Gambit",123123,0);
Print("Открыт ордер SELL №"," ",TiketSell);
Terminal();
}
}
А в таком виде работает:
if((DaysDecr==10)&&(PrevBarHigh<BarHigh)&&(PrevBarLow<BarLow)&&(BarClose<(BarLength/2+BarLow))&&(BarClose<BandCenter)&&(BarLow>=Band1Low)&&((Bid+(BarHigh+DeviationSL*Point))>MaxSL*Point))
{
SellOpen=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SellSL,0,"Gambit",123123,0); //Band2Low-100*Point
Print("SellOpen"," ",SellOpen);
}
Подскажите пож. в чем может быть проблема!???
Заранее Спасибо!