Привет всем
Никак не могу разобраться что не так делаю, не работает трейлинг стоп хоть убейся, вот код:
В иделае функция должна двигать уровень стоп лосса на расстоянии заданном переменной SL
По части кода трудно что-либо сказать. Вот у Вас, например, при наличии BUY-позиции уровень стоп-лосса проверяется по показателю Ask. Почему? Так задумано по стратегии?
Ask - лучшее предложение на покупку, или я неправильно понимаю документацию...
Хотя сути это не меняет, разница между Ask и Bid равна спреду, т.е. даже если бы стоп-лосс был на 2-5 пунктов выше или ниже, то был бы уже второй вопрос, а он просто не выставляется
ITeXPert:
Вот у Вас, например, при наличии BUY-позиции уровень стоп-лосса проверяется по показателю Ask. Почему? Так задумано по стратегии?
Ask - лучшее предложение на покупку, или я неправильно понимаю документацию...
:) Ну, если у Вас BUY-позиция, то каким образом она должна закрываться: покупкой или продажей ("лучшим предложением на покупку" или "лучшим предложением на продажу")?
Хотя сути это не меняет, разница между Ask и Bid равна спреду...
Просто ошибка может крыться в мелочах, которые в приведённом коде не видны. Например, не ясно используемое значение SL, не понятно, почему не используется проверка на
SYMBOL_TRADE_STOPS_LEVEL и т.д.
... даже если бы стоп-лосс был на 2-5 пунктов выше или ниже, то был бы уже второй вопрос, а он просто не выставляется
Вы учитываете, что котировки у МТ5 трёх- и пятизначные? А то вполне может оказаться, что стоп-лосс типа "Ask-SL*_Point" выставляется "слишком близко к рынку".
Кстати, разработчикам -А работает ли NormalizeDouble?
А то на Иене она мне вот это порой возвращает - 76.67100000000001
Я бы еще на один момент обратил внимание - не понятно нормализованы ли цены или нет...
Кстати, разработчикам -А работает ли NormalizeDouble?
А то на Иене она мне вот это порой возвращает - 76.67100000000001
Конечно работает.
В качестве доказательства проверочный скрипт. Отгадайте с трёх раз, что будет напечатано
void OnStart() { Print(76.671); }Кстати, в описании функции NormalizeDouble есть характерный пример, иллюстрирующий нормализацию числа ПИ с точностью 3 знака после запятой
Я бы еще на один момент обратил внимание - не понятно нормализованы ли цены или нет..
Если используется метод PositionModify() из Стандартной библиотеки, то цены не нормализованы.
- www.mql5.com
Если используется метод PositionModify() из Стандартной библиотеки, то цены не нормализованы.
Interesting:
Я их обычно сам нормализую.
Судя по содержимому класса CTrade, так надо делать всегда при его применении, так как метод нормализации цен там не предусмотрен.
Судя по содержимому класса CTrade, так надо делать всегда, так как метод нормализации цен там не предусмотрен.
Вот и зря что не предусмотрен.
Так Ренат как-то говорил на тему, что нормализация цен - это компетенция программиста, а не разработчиков.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет всем
Никак не могу разобраться что не так делаю, не работает трейлинг стоп хоть убейся, вот код:
В иделае функция должна двигать уровень стоп лосса на расстоянии заданном переменной SL