Подскажите, в чем может быть проблема?
Замените одну строку, проблема практически пропадет:
double STVariation = MarketInfo(LotSymbol,MODE_STOPLEVEL)*Point+Point;"Практически" - потому что на быстром рынке и это не поможет.
Уже не раз говорили, что минимальный уровень установки стопов - стоплевел+1.
т.е. правильно я понимаю, что кардинального решения нет, а можно только бороться с этим эмпирически завышая минимальные Сл-Тп или увеличивая слипаж?
Неправильно понимаете.
Вот здесь обо всём подробно: Учебник по MQL4 - Торговые операции - Характеристики ордеров и правила проведения торговых операций
Это уже в прошлом. С некоторых пор в этой области всё приведено в соответствие. Теперь - полноценный StopLevel.
Спасибо, буду знать.
т.е. правильно я понимаю, что кардинального решения нет, а можно только бороться с этим эмпирически завышая минимальные Сл-Тп или увеличивая слипаж?
Неправильно понимаете.
Вот здесь обо всём подробно: Учебник по MQL4 - Торговые операции - Характеристики ордеров и правила проведения торговых операций
Поэтому в торговых приказах для открытия рыночных ордеров не рекомендуется использовать значения стоп-приказов, максимально приближенные к заявленной цене открытия ордера. Напротив, рекомендуется иметь некоторый запас, т.е. указывать такие значения стоп-приказов, которые удалены от заявленной цены открытия ордера на 1-2 пункта дальше, чем на величину минимально допустимой дистанции.
Или я чего не понимаю, или все так эмпирически и делается :) В приведенной статье читаю:
Поэтому в торговых приказах для открытия рыночных ордеров не рекомендуется использовать значения стоп-приказов, максимально приближенные к заявленной цене открытия ордера. Напротив, рекомендуется иметь некоторый запас, т.е. указывать такие значения стоп-приказов, которые удалены от заявленной цены открытия ордера на 1-2 пункта дальше, чем на величину минимально допустимой дистанции.
Я же писал уже вторым постом в этой ветке:
Вы пытаетесь открыть ордер на грани дозволенного, поэтому иногда это удается (если текушая цена Ask не изменилась к моменту обработки приказа сервером), но иногда отфутболивается (если текущая в момент обработки ордера цена Ask отстоит от заявленного уровня StopLoss ближе чем на StopLevel пунктов ). Почитайте ветку Некорректный возврат ошибки №130 при установке ордера, погоняйте тот скрипт. Есть об этом информация в учебнике - Требования и ограничения при проведении торговых операций
Я же писал уже вторым постом в этой ветке:
Вы пытаетесь открыть ордер на грани дозволенного, поэтому иногда это удается (если текушая цена Ask не изменилась к моменту обработки приказа сервером), но иногда отфутболивается (если текущая в момент обработки ордера цена Ask отстоит от заявленного уровня StopLoss ближе чем на StopLevel пунктов ). Почитайте ветку Некорректный возврат ошибки №130 при установке ордера, погоняйте тот скрипт. Есть об этом информация в учебнике - Требования и ограничения при проведении торговых операций
.. я могу сделать вывод что для устранения ошибки нужно увеличивать слипаж и все равно, полностью ее избыть не удастся. Если я чего-то не понял, поясните пожалуйста подробнее.
Если бы все операции осуществлялись "моментально" (подобно тому, как это происходит в рамках одного ПК), то проблема бы не возникала. Однако, нужно принимать во внимание, что реальные торговые приказы обрабатываются в режиме реального времени. Это никому не нравится, но это реалии жизни. Сами посудите: кто может гарантировать, что с момента образования торгового приказа на Вашем ПК до момента принятия решения на сервере не произойдут новые критические события? Например, курс может резко измениться или в ту же секунду сотни других трейдеров тоже захотят поторговать, в результате чего торговые приказы на сервере выстроятся в очередь (а за время движения очереди могут произойти новые события).
Посмотрите ещё Учебник по MQL4 - Торговые операции - Общий порядок проведения торговых операций .
В целом какой-либо одной отдельно взятой цифрой проблема не
решается в принципе. Нужно анализировать события, отслеживать
курсы и вообще использовать интеллектуальный алгоритм обработки
ситуации.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Создаю ордера на покупку так, как показано в коде, периодически создание ордера не проходит, возвращается ошибка 130 (неправильные Сл-Тп). Причем создание ордера то проходит, то не проходит, закономерности отловить не удается.
Подскажите, в чем может быть проблема?