Цитатаdouble CandleHigh = iHigh(Symbol(), 0, 0);
Nikavl, ну вы же неправильно используете эти функции - нуля в конце там не должно быть, получается, что Вы берете значение High на нулевой (текущей) свече, как только пришел первый тик на свечу, у вас High=Low=Close=Open, поэтому и ноль выходит. Лучше конечно второй вариант, но тут опять же, хотите получать правильные данные, нужно брать High[1] и Low[1].
Еще, я далее не знаю как Вы считаете, ищете среднее значение вашего АТР, или нет, но в котировках часто проскакивают неполноценные свечи, поэтому для правильной работы нужно сравнивать if(CandleATR==0) break; если вы используете цикл, если вы используете только значения одной свечи, то либо return, либо берем следующую - High[2] и Low[2] и так далее, пока не будут нормальные значения



