расставляйте Print по коду и анализируйте выполнение.
//--------------------------------------------------------- 4 -- // previos значение ATR1, ATR2 prev_atr1 = iATR(Symbol(),0,ATRPeriod_1,2); prev_atr2 = iATR(Symbol(),0,ATRPeriod_2,2); // текущее значение ATR1, ATR2 curr_atr1 = iATR(Symbol(),0,ATRPeriod_1,1); curr_atr2 = iATR(Symbol(),0,ATRPeriod_2,1);
может оно и не имеет отношения к делу, но почему у вас текущее значение 1, а предыдущее 2, когда оно 0 и 1
Как раз в том месте где сравнивается условие изменения стопа, вы сравниваете не совсем те вещи. Его надо маленько расширить. я так понял у Вас сравниваются текщее и предъидущее значение ATR умноженное на множитель. То есть фактически размер стопа. А если вы будете сравнивать уровень стопов (цена при которой должно произойти закрытие). Уровень на который будет выставлен новый расчитанный стоп (Bid-atrXmul_curr) должен быть больше уровня стопа который на данной момент имеется по данной позиции (с помощю MarketInfo()) это по Buy, и соответственно наоборот по Sell. Проблема будет решена.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте! Всем доброго времени суток! Не первый день бьюсь над ситуацией, хотя понимаю, что заблудился в трех соснах, вроде все прописываю правильно, просто существуют какие-то особенности... Код по 2-м ATR-ам переделал из стандартного кода трейлинг-стопа учебника (трейлинг на строго определенное количество пунктов). В итоге получилось, что при возвращении курса против ордера - SL модифицируется. Допустим, при бай цена вверх трейлинг - стоп - за ценой на расстоянии АТР*множитель также вверх - все нормально, цена вниз и трейлинг - стоп за ценой на расстоянии АТР*множитель также вниз - не нормально, т.к. противоречит понятию трейлинг-стопа (строго по тренду и стоп-лосс не более установленного при открытии ордера при сопровождении позиции), т.е. трейлинг-стоп должен двигаться только в направлении позиции - если бай - то вверх, селл - вниз, а здесь он движется как вверх так и вниз на расстоянии АТР*множитель. Вроде все правильно делаю... Возможно необходимо еще прописать дополнительные условия перемещения ордера в 4-ом блоке... Подскажите... От души благодарю...
Вместо 0-го и 1-го бара использовал 1-ый и 2-ой, хотя все равно. Возможна ошибся где-то в 4-ом, 5-ом блоке...
При использовании стандартного трейлинга кода учебника - на определенное количество пунктов - все работает... При модификации кода - по 2-м АТР - нет...