Бывают случаи, когда спред внезапно увеличивается, и в зависимости от вашей торговой стратегии вы можете остановить торговлю советника, когда это произойдет. В этой статье мы разберем пример простого кода на MQL4, который поможет нам в этом.
Как вы знаете, спред — это разница между ценой Ask и ценой Bid. Это своего рода комиссия, которую вы платите брокеру за торговлю. В MetaTrader4 вы можете увидеть спред в окне «Обзор рынка», щелкнув по нему правой кнопкой мыши и выбрав «Спред».
Обычно брокеры используют узкие спреды для привлечения трейдеров. Низкие спреды будут означать меньшие торговые издержки для трейдеров, поэтому это в большей степени маркетинговый инструмент.
Каждая валютная пара имеет свой собственный средний спред. Например, спред для пары EURUSD обычно составляет от 1 до 1,5 пункта. Однако существуют рыночные ситуации, которые могут привести к внезапному увеличению спреда и, как следствие, увеличению стоимости торговли. Это могут быть:
- Низкая ликвидность.
- Высокая волатильность.
- Ролловер или продлевание срока экспирации контракта.
- Неожиданные новости.
- Экономические отчеты.
Вы можете прекратить торговлю, когда размер спреда превысит определенный порог. Этот порог зависит от вашего стиля торговли, поэтому он может отличаться у разных трейдеров.
Как получить значение спреда в MQL4?
MQL4 предоставляет очень простую функцию для получения спреда:
MarketInfo(Symbol(), MODE_SPREAD)
Эта функция будет возвращать текущий спред торгового инструмента, выраженный в пипсах. Если мы запустим следующий скрипт:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Alert("Спред торгового инструмента ",Symbol()," составляет ",MarketInfo(Symbol(), MODE_SPREAD)," пунктов"); } //+------------------------------------------------------------------+
Мы получим:
Нам нужно добавить всего лишь несколько строчек кода:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ #property strict #property show_inputs extern int MaxSpread=20; //Максимальный спред в пипсах. void OnStart() { //--- if(MarketInfo(Symbol(), MODE_SPREAD)<MaxSpread){ Alert("Торговля возможна."); } else{ Alert("Торговля невозможна."); } } //+------------------------------------------------------------------+
Здравствуйте я поставил код в свой советник но он вообще сделки не открывает
Нет заработал как-то сам страны м образом но работает
Спасибо что поделились кодом
Очень полезная функция. У меня советник Scanner Bot Martin , там такое есть. Полезно по ночам , когда обычно спред пляшет .