Я пытаюсь написать чрезвычайно простой советник на MQL5, который должен следовать только одному условию if.Существует массив, в котором хранятся последние 5 цен закрытия.Идея состоит в том, чтобы открыть позицию ПОКУПКИ, когда последние 4 цены закрытия (исключая текущую свечу) находятся в восходящем тренде.Однако советник начинает открывать позиции ПОКУПАТЬ одну за другой, даже не заботясь об этом условии.Я публикую полный код.
Я попытался создать новый метод Uptrend (), который имеет абсолютно то же условие - все еще не работает.
#include <Trade\Trade.mqh>
CTrade trade;
void OnTick()
{
double tpoint = Point();
double ClosePriceArray[];
ArraySetAsSeries(ClosePriceArray, true);
CopyClose(Symbol(), PERIOD_CURRENT, 0, 5, ClosePriceArray);
double Ask = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits);
double Bid = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits);
if ((ClosePriceArray[4] < ClosePriceArray[3] < ClosePriceArray[2]< ClosePriceArray[1]) && PositionsTotal() < 1) {
trade.Buy(0.10, NULL, Ask, (Ask-50*tpoint), (Ask+150*tpoint), NULL);
}
}
Я хочу, чтобы советник открывал позицию ПОКУПКИ только при выполнении условия.Нет сообщений об ошибках или ошибок компиляции.