Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 20
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
График «Профиль спреда по часам» формирует реальную картину распределения спреда за каждый час работы сервера на основе собственной истории тиков вашего брокера и отображает медиану и 90-й процентиль в виде 24 столбцов. Введите свой типичный размер стопа, и каждый столбец покажет, какую долю от 1R занимает спред в данном часе, благодаря чему с первого взгляда становятся заметны самые «дорогостоящие» часы дня.

EURUSD, количество тиков, стоп в 50 пунктов: 6 пунктов (12% от стопа) в течение большей части дня, 34 пункта (68%) во время переноса позиций в 21:00
Проблема
Для внутридневных и скальпинговых систем именно спред, а не сигнал входа, часто определяет, сохранится ли преимущество. Терминал показывает текущий спред, но не то, как он ведет себя в течение дня. Стратегия, протестированная в спокойные часы, может провалиться при тех же правилах во время переката, в начале сессии или во время новостей просто потому, что там спред в несколько раз шире.
История баров хранит только одно значение спреда на каждый бар, что скрывает его распределение. Этот индикатор считывает сами тики: каждую котировку «бид/аск» за последние N дней, сгруппированную по часам суток по серверному времени. В результате вы получаете почасовую медиану и 90-й процентиль, которые можно напрямую сравнивать с вашим стопом и ожидаемым движением.
Особенности
- Часовая медиана, 90-й процентиль, среднее значение и максимальный спред в пунктах, рассчитанные на основе CopyTicksRange за последние N календарных дней. Сегодняшний день исключается, чтобы картина не смещалась в течение сессии.
- Два режима выборки:
- По количеству тиков: каждая котировка учитывается один раз.
- Взвешенный по времени: каждая котировка учитывается в течение времени, пока она оставалась действительной (до следующей котировки, максимум 60 секунд). Подсчёт тиков завышает показатели на быстро меняющихся рынках, а именно на таких рынках спреды часто бывают самыми широкими. Взвешивание по времени отвечает на вопрос: «Какой спред я бы заплатил в произвольный момент времени в течение этого часа?».
- Фильтр по дням недели: все дни или отдельно с понедельника по пятницу.
- Просмотр стоимости: введите размер вашего стопа в пунктах, и каждый бар будет помечен медианным спредом в процентах от этого стопа. В заголовке отображаются медиана и 90-й процентиль текущего часа в виде доли от стопа.
- Средняя стоимость спреда в валюте счёта за 1,00 лот за текущий час, рассчитанная на основе стоимости тика и размера тика данного символа.
- Самые дешёвые и самые дорогие часы по медиане, до трёх в каждой категории. Часы с одинаковой медианой перечисляются вместе или обобщаются, например, «Самые дешёвые: 23 часа по 6 пунктов», поэтому одинаковые значения никогда не отображаются в виде рейтинга. Если у всех часов одинаковая медиана, это указывается в заголовке.
- Текущий час по серверному времени выделен, спред в реальном времени отображается пунктирной линией. Если окно слишком узкое для размещения подписи над каждым столбцом, подпись сохраняется только у самого высокого столбца.
- Дополнительная возможность экспорта почасовой статистики в формат CSV в папку MQL5\Files (UTF-8, открывается непосредственно в Excel).
- Загружает тики за один день за один шаг таймера и сразу же освобождает память, поэтому график остается отзывчивым даже при работе с золотом или криптовалютами (100 000 и более тиков в день). Дни, данные по которым терминал ещё загружает, повторно запрашиваются в течение нескольких секунд, а день, тики которого не покрывают его бары M1, повторно запрашивается перед использованием. Для дней, более старых, чем история M1 терминала (максимальное количество баров на графике), полнота данных не может быть проверена по барам; пока терминал загружает данные, такой день используется только после того, как количество тиков перестает меняться.
- Сначала считываются самые последние дни. Если в течение трёх торговых дней подряд не поступает тиков (или в течение трёх дней подряд выбранного дня недели), либо в течение десяти дней подряд отсутствуют как тики, так и бары M1 (что превышает продолжительность любого рыночного выходного), эти дни считываются повторно после короткой паузы, и если тики по-прежнему отсутствуют, загрузка останавливается; пробел в хранилище тиков брокера приводит к тому же результату. Для символа, не имеющего истории тиков, в течение примерно 20 секунд отображается четкое сообщение, а история тиков, короче выбранной глубины, используется до самого её начала. При самом первом проходе по большой глубине терминал может ещё находиться в процессе загрузки; если загрузка прерывается раньше времени, подключитесь заново после завершения загрузки (второй проход считывает данные с диска). В журнале экспертов для каждого расчёта выводится одна сводная строка.
- Работает на графике: фон по умолчанию берет цвет из графика, цвета текста и сетки адаптируются к темному или светлому фону, а макет масштабируется в зависимости от DPI экрана. На одном графике может работать несколько экземпляров.
- Не требуется никаких торговых функций, DLL-библиотек или внешних файлов.
Входные данные
| Входные данные | По умолчанию | Описание |
|---|---|---|
| Глубина истории, календарные дни (без учета сегодняшнего дня) | 20 | Количество календарных дней до сегодняшнего дня, за которые необходимо прочитать данные (от 1 до 365). Выходные дни учитываются как дни, поэтому 20 календарных дней соответствуют 14–17 торговым дням. |
| Частота выборки | Количество тиков | По количеству тиков или по времени (см. раздел «Функции»). |
| Фильтр по дням недели | Все дни | Ограничивает профиль одним днем недели. Увеличьте также глубину истории, так как в 20 календарных днях содержится только 2 или 3 дня данной недели. |
| Диапазон гистограммы, пунктов (более широкие спреды = переполнение) | 5000 | Распределения, превышающие это значение, попадают в ячейку переполнения. Статистические данные, попавшие в ячейку переполнения, отображаются как «>5000». |
| Минимальное количество тиков за час для отображения | 100 | Часы с меньшим количеством тиков отображаются как «-», например, дневной перерыв. |
| Размер стопа, пунктов (0 = выключено) | 0 | Ваш типичный стоп. Значение 0 отключает отображение меток в процентах и вместо этого показывает медиану в пунктах. |
| Высота окна при масштабировании 100%, пикселей (0 = с изменяемым размером) | 240 | Фиксированная высота окна индикатора, масштабируемая в соответствии с DPI экрана. Значение 0 позволяет свободно изменять размер окна. |
| Фон (Нет = фон графика) | Нет | При значении «Нет» используется фон графика. |
| Средняя полоса | Синий | Цвет полосы медианы. |
| Верхняя граница 90-го процентиля (Нет = более светлый цвет полосы) | Нет | При значении «Нет» используется более светлый оттенок цвета полосы. |
| Текущий час | Оранжевый | Цвет выделения текущего часа сервера. |
| Линия реального спреда | Красный | Цвет линии реального спреда. |
| Текст (Нет = автоматически) | Нет | При выборе параметра «Нет» выбирается цвет, хорошо читаемый как на тёмном, так и на светлом фоне. |
| Сетка (Нет = автоматически) | Нет | При значении «Нет» выбирается цвет сетки, соответствующий цвету фона. |
| Размер шрифта, пт | 9 | Базовый размер шрифта. |
| Сохранять почасовую статистику в папке MQL5\Files (CSV) | false | После каждого расчёта создаёт файл MQL5\Files\SpreadProfile_<symbol>_<yyyymmdd>.csv. |
Как читать график
Каждый столбец соответствует одному часу суток по серверному времени. Заполненная часть — это медианный спред: у половины котировок или половины времени в режиме, взвешенном по времени, спред был равен или ниже этого значения. Более светлая верхняя граница соответствует 90-му процентилю: одна из десяти котировок имела более широкий спред. Пунктирная линия — это реальный спред, а выделенная колонка — текущий серверный час. Приведенные ниже примеры взяты со скриншотов, сделанных на демо-счете в течение 20 календарных дней (17 из которых с тиками).
- EURUSD, тиковый режим, стоп в 50 пунктов: медиана составляет 6 пунктов в 23 из 24 часов. В 21:00 по серверному времени, во время ежедневного ролловера, он составляет 34 пункта с 90-м процентилем 58. Медианный спред занимает 12 % от 1R в течение большей части дня и 68 % в этот час.
- GBPUSD, взвешенный по времени: 7 пунктов в течение 23 часов, медиана 46 и 90-й процентиль 94 в 21:00. В режиме подсчёта тиков показатели за тот же час составляют 54 и 100, поскольку самые активные моменты котирования вокруг момента переноса позиций также сопровождаются самыми широкими спредами.
- XAUUSD, подсчёт тиков, стоп 1500 пунктов: медиана составляет 182 пункта (12% от стопа, 18,20 доллара США за лот) в каждый час, по которому имеются данные, поэтому в заголовке указано именно это, а не ранжирование равных значений. Ежедневный перерыв в 21:00 не содержит тиков и отображается как «-».

GBPUSD, взвешенное по времени, стоп не указан: 7 пунктов за 23 часа, медиана 46 и 90-й процентиль 94 в 21:00

XAUUSD, подсчёт по тикам, стоп 1500 пунктов: 182 пункта в каждый час, по которому есть данные, тиков нет в ежедневном перерыве в 21:00
Практический вывод: если ваша система торгует в часе, когда медианный спред составляет значительную долю вашего стопа, либо пропустите этот час, либо расширьте стоп, либо убедитесь, что ожидаемое движение окупит это. 90-й процентиль показывает, как выглядит неудачное, но не редкое исполнение ордера.
Примечания и ограничения
- Глубина истории тиков зависит от вашего брокера и от того, что терминал уже загрузил. Первый запуск на длительный период может занять некоторое время, поскольку терминал загружает тики с сервера. Если история тиков заканчивается до выбранной глубины, в заголовке отображается надпись «тиков до этого нет» с датой самого раннего использованного дня. На тестовом сервере, например, история тиков начиналась 1 января 2026 года, в то время как бары M1 охватывали несколько лет назад.
- Все часы указаны по серверному времени. В зависимости от часового пояса сервера брокера и правил перехода на летнее и зимнее время такое событие, как ежедневный ролловер, может сдвигаться на один серверный час между летним и зимним временем. В окне истории, охватывающем такой переход, событие отображается разделенным между двумя соседними часами.
- На демо- и реальных счетах, а также на счетах разных типов (стандартный, raw, zero) спреды по одному и тому же символу могут значительно различаться. Оценивайте данные на том счете, на котором вы торгуете.
- История спредов не гарантирует будущих значений спредов. Новости, праздничные дни и периоды низкой ликвидности могут приводить к спредам, значительно превышающим показанный здесь 90-й процентиль.
- Стоимость за лот рассчитывается на основе текущей стоимости тика, которая для кросс-пар изменяется в зависимости от обменного курса.
- Профиль пересчитывается один раз за каждый новый серверный день, а также при каждом изменении входных данных, символа или таймфрейма.
- На тестовой машине данные за 20 дней по XAUUSD (4,3 млн тиков) загружались примерно за 1–3 секунды, 90 дней (19 млн тиков) — примерно за 8 секунд, а 365 дней данных по паре EURUSD (9,4 млн тиков за 232 дня с тиками) — примерно за 30 секунд, включая повторное считывание данных за дни, предшествующие началу истории тиков, после того как тики оказались на диске. Ваше время зависит от плотности тиков вашего брокера и от того, находятся ли тики уже на диске.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/77815
iFVG Indicator With Signals
Индикатор iFVG с сигналами
ZoneUS30 — Разворот и положительный своп на вашей стороне в US30
ZoneUS30 — это простой советник для индекса US30, ориентированный на поиск возможностей для продажи после восходящих ценовых разворотов. Стратегия сочетает в себе концепцию возврата к среднему значению с идеей кэрри-трейда: когда короткие позиции приносят положительный своп за ночь, советник может извлечь выгоду как из коррекции цены, так и из удержания позиции в течение определенного времени. Разработан для индекса US30 и предназначен для экспериментального и образовательного использования. Торговля против тренда сопряжена со значительным риском, особенно при использовании больших размеров лотов.
Symbol Spec Auditor
Панель диаграмм, на которой отображаются подробные характеристики контракта, определяющие размер позиции и торговые издержки (стоимость пункта, стоимость спреда, маржа, своп, правила исполнения) в валюте счета, предупреждает о настройках брокера, которые незаметно нарушают правила определения размера лота, а также экспортирует отчет по каждому символу из панели «Market Watch» в формат CSV.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.