Это происходит потому, что вы торгуете золотом (XAUUSD) на Pro/ECN-счете. Жесткая правда (почему это не работает): ECN-брокеры игнорируют Slippage=0: На счетах ".pro" OrderClose использует рыночное исполнение. Брокер игнорирует ваш запрос на "нулевое проскальзывание" и исполняет ордер по первой доступной цене. Природа стоп-лосса: Стоп-лосс — это рыночный ордер. Как только цена достигает вашего уровня, он запускает команду "Продать СЕЙЧАС по любой цене". Если цена подпрыгивает (образует гэп) в течение этой доли секунды, вы получаете проскальзывание. Волатильность золота: В ваших логах вы видите гэпы от 0,02 до 0,45. Для золота это нормальное рыночное поведение.
«Что ещё можно сделать?» (Опасное решение)
Чтобы действительно принудительно закрыть позицию по лимитному ордеру, вы должны отказаться от закрытия по рыночной цене и дождаться отскока цены. Это логика «лимитного отката».
ВНИМАНИЕ: КРАЙНИЙ РИСК
Если цена рухнет и больше не отскочит, этот советник НИКОГДА не закроет сделку. Вы можете потерять весь свой счёт.
Если вы принимаете этот риск, вот код, который пытается закрыть позицию только в том случае, если цена вернётся к вашему конкретному уровню (имитируя выход по лимитному ордеру):
Краткое описание вариантовИспользуйте прикрепленный код: он борется за каждый пункт, но если рынок обвалится на 1000 пунктов, вы будете удерживать его до самого падения, потому что он ждет «лучшей цены», которая никогда не появится.Перейдите на MetaTrader 5: MT5 имеет встроенные ордера STOP LIMIT. Они безопаснее и быстрее, но даже их можно пропустить при обвале.Примите реальность: на XAUUSD проскальзывание в 0,45 — это «издержки ведения бизнеса». Профессиональные трейдеры учитывают это проскальзывание в своей стратегии, а не пытаются устранить его технически (что часто невозможно).