Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 37
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Перед тем как радоваться результату бэктеста, полезно узнать, сколько вы на самом деле платите за сделку. Терминал хранит спред в каждом баре истории, но эта информация обычно проходит мимо: в тестере выставляется "текущий" спред, а решения принимаются по красивой кривой эквити.
Что делает скрипт
SpreadAudit проходит по истории M1 за указанное число дней, берёт поле spread каждого бара и считает:
- медиану, 90-й и 99-й перцентили спреда - в единицах цены и в пунктах;
- те же величины в долях ATR(H1), чтобы сравнивать инструменты между собой;
- средний и максимальный спред по каждому часу суток - выгружает в CSV в папку MQL5\Files.
Входные параметры
- InpDays - сколько дней истории M1 анализировать (1..3650, по умолчанию 60);
- InpAtrPeriod - период ATR на H1 для нормировки (по умолчанию 24);
- InpSaveCSV - сохранять ли почасовую таблицу в CSV.
Пример вывода
=== SpreadAudit: XAUUSD | actual range 2026.05.30 ... 2026.07.29 | 86397 bars (0 without spread) === median bar spread: 0.37 (37.0 pts) p90 bar spread: 0.42 (42.0 pts) p99 bar spread: 0.45 (45.0 pts) H1 ATR(24) = 6.41 -> median spread = 0.058 ATR, p90 = 0.066 ATR

На приложенном рисунке - почасовая картина по XAUUSD за 60 дней. Средний спред держится около 0.40, но в час дневного ролловера максимум подскакивает почти до 1.80, то есть более чем в четыре раза выше обычного. Стратегия, которая входит именно в это окно, платит совсем не ту цену, которую видит в среднем по счёту.
Зачем это нужно на практике
Простой пример. Допустим, ваш паттерн на M5 даёт в среднем 0.28 единицы цены на сделку - статистически значимо, эффект реальный. Если медианный спред инструмента 0.37, система убыточна на реальном счёте при том, что на истории без издержек выглядит прекрасно. Разница между "эффекта нет" и "эффект есть, но меньше издержек" принципиальна: в первом случае идею выбрасывают, во втором ищут таймфрейм или геометрию сделки, где эффект переживёт спред.
Почасовая таблица показывает, в какие часы спред расширяется. Обычно это ролловер и первые минуты после открытия сессий - если ваша стратегия входит именно там, стоит поставить фильтр по спреду, причём задавать его лучше в долях ATR, а не в пунктах: абсолютный порог устаревает при смене режима волатильности.
Важная оговорка
MetaTrader сохраняет в баре МИНИМАЛЬНЫЙ спред за этот бар. Значит, все полученные числа - оптимистичная нижняя граница того, что вы платите в реальности. Логика простая: если стратегию убивает даже нижняя граница издержек, обсуждать больше нечего.
Если у вашего брокера поле spread в истории M1 не заполнено (у некоторых там нули), скрипт честно сообщит об этом и не станет считать статистику по пустым данным.
V1N1 LONNY MT5
Эксперт-консультант для дневной торговли «Asian Range Breakout». Поддерживает несколько инструментов, таймфреймы M15/M30/H1. Размещает отложенные стоп-ордера во время лондонской сессии за пределами азиатского диапазона, предшествующего лондонской сессии, на основе сигналов PSAR + MACD + Стохастика, с автоматической корректировкой на переход на летнее и зимнее время в Лондоне и Нью-Йорке, а также с использованием структурных стопов, трейлинга и брейк-ивена.
SteepMA — советник для торговли по крутым скользящим средним
SteepMA V0.7 — это советник для следования за трендом, в основе которого лежит «крутизна скользящей средней» как основное критерий входа в рынок. Он отбирает рынки с высокой степенью определенности путем количественной оценки силы тренда и фиксирует прибыль с помощью системы динамических стоп-лоссов, постепенно сужающихся по уровням. Кроме того, встроенная база данных SQLite обеспечивает отслеживаемость данных по всему цепочке торговых операций.(Код был частично сокращён для прохождения проверки)
Result - type-safe error handling for MQL5 without exceptions
Небольшая библиотека с минимальным количеством зависимостей, которая вводит в MQL5 тип Result в стиле Rust. Функции возвращают единый объект, содержащий либо значение, либо ошибку, вместо того чтобы полагаться на глобальное состояние GetLastError(), благодаря чему сбои отображаются явно и их невозможно игнорировать. Включает в себя ResultValue (типы значений) и Result (объекты, хранящиеся в указателях), структуру Error, макросы раннего возврата (TRY, RETURN_ON_ERROR и т. д.) и опциональные обратные вызовы Then/Match/MapError.
Pip Value Calculator
Текущее значение пипса, определение размера лота с учетом риска, индивидуальный анализ риска по объему и прибыль/убыток по открытым позициям — всё на одной панели.