Seconds Tick and Range Charts MT5

Секундные бары (от 1 до 30 секунд), тиковые бары и рейндж-бары для MetaTrader 5, построенные по реальной тиковой истории брокера в виде пользовательского символа и обновляемые на каждом тике. На графике может работать любой индикатор, шаблон или EA. Помощник на графике показывает реальное время каждого бара. EA никогда не торгует на графике.

Что он делает

Прикрепите EA к графику символа брокера. Он:

  • создаёт пользовательский символ, например EURUSD_S5, со спецификациями исходного символа
  • строит его историю по реальным тикам брокера, по умолчанию за последние 3 дня, порциями (в тестах 3 дня BTCUSDm, 376 095 тиков, заняли 2,0 с)
  • открывает пользовательский график, с вашим шаблоном, если вы его укажете
  • добавляет на пользовательский график каждый новый тик исходного символа сразу по его поступлении
  • несколько раз в секунду считывает обратно из терминала каждый новый бар (измерено в MetaTrader 5 билд 6230: бары, которые терминал строит из живых тиков, могут пропадать, если их не читает ни один график или программа; регулярное чтение это предотвращает)
  • каждые 60 секунд сверяет бары с тиковой историей брокера и подсчитывает тики, которые пользовательский символ хранит для этих баров
  • при повторном запуске на уже существующем пользовательском графике (например, после перезапуска терминала) перед продолжением проверяет, что все бары последней части истории на месте
  • если бар остаётся неверным, заново строит весь пользовательский символ по тиковой истории, начиная с того же первого тика: это единственный способ исправления, который был точным во всех тестах (измерено в билде 6230: запись отдельных баров или удаление части пользовательского символа, получающего живые тики, может привести к тому, что терминал потеряет другие бары или тики)

Типы графиков

  • Секундные бары (Seconds bars): 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 или 30 секунд. Бар содержит тики одного интервала. У интервала без тиков нет бара, так же как у минуты без тиков нет бара на M1.
  • Тиковые бары (Tick bars): новый бар каждые N тиков.
  • Рейндж-бары (Range bars): новый бар открывается, когда следующая цена сделала бы диапазон бара (от минимума до максимума) больше N пунктов, поэтому ни один бар не бывает больше N пунктов. Когда цена делает скачок, новый бар открывается по новой цене; заполняющие бары для скачка не рисуются.

Бары строятся по цене Bid. Тиковый объём бара равен числу тиков в нём.

Одновременно может работать несколько копий, по одному EA на пользовательский символ: например, 5-секундные бары EURUSD на одном графике и рейндж-бары по 200 пунктов XAUUSD на другом. Второй EA для того же пользовательского символа не запускается и сообщает причину на своей панели.

Каждый тик ровно в одном баре

Пользовательский символ получает сами тики брокера, а не копию баров. В тестах бары сравнивались с независимым повторным построением по тиковой истории брокера:

  • сумма тиковых объёмов равна числу исходных тиков
  • каждый бар (открытие, максимум, минимум, закрытие и тиковый объём) совпадает с повторным построением
  • для секундных баров в каждом интервале без бара не было ни одного исходного тика

В 75-минутном тесте с 10 пользовательскими символами одновременно (бары по 1, 2 и 5 секунд, бары по 20, 50 и 100 тиков, рейндж-бары по 200 и 1000 пунктов; всего 2 537 558 тиков) все три условия выполнились для каждого символа, в том числе для символов, построенных заново после того, как терминал был заморожен на 2 минуты.

Пропуски на секундных графиках: на BTCUSDm (около одного тика в секунду в субботу) 1-секундный график содержал 81 920 баров на 121 859 тиков. Каждый 1-секундный интервал без бара был сверен с тиками брокера, и тиков в нём не было. Пропуск на секундном графике означает время, в которое брокер не прислал ни одного тика, а не потерянный бар.

Шкала времени (пожалуйста, прочтите)

В MetaTrader 5 нет таймфрейма меньше одной минуты, а пользовательский график всегда рисуется на шкале времени M1. Поэтому каждый бар пользовательского графика занимает один минутный слот, а даты под графиком отсчитывают эти слоты с января 1971 года: это не время по часам. Только так бары короче минуты могут существовать на графике MetaTrader 5.

EA добавляет на пользовательский график небольшой помощник, который показывает реальное время (везде в этом описании реальное время означает серверное время брокера, как на собственном графике символа брокера):

  • Last bar: (последний бар) время начала с точностью до миллисекунды, длительность и число тиков
  • Cursor bar: (бар под курсором) то же самое для бара под указателем мыши
  • вторая шкала времени с реальным временем над собственной шкалой графика
  • обновляется ли график: «Live: updated on every tick of EURUSD», «Building history from real ticks: 40.0%», «Waiting for the connection to the trade server», «Checking the bars after the start (up to 60 s)», «Not updating for 12 s: check the EA on the EURUSD chart» или «Not updating: no EA builds EURUSD_S5 now»

Держите пользовательский график на M1: один бар M1 соответствует одному секундному, тиковому или рейндж-бару. Более старший таймфрейм объединяет несколько баров.

Скорость

Измерено в 75-минутном тесте с 10 EA и 8 пользовательскими графиками одновременно в одном терминале: время от момента, когда индикатор на исходном графике увидел тик, до момента, когда его увидел индикатор на пользовательском графике. BTCUSDm шёл в реальном времени на демо-счёте. Золото и индекс Nasdaq были закрыты (суббота), поэтому на их графики подавались реальные пятничные тики в их реальном темпе, до 61 тика в секунду.

Пользовательский график Тиков в секунду Медиана 99% тиков в пределах Самый медленный
BTCUSDm, 5-секундные бары (реальное время) 1 0,2 мс 30 мс 262 мс
BTCUSDm, 1-секундные бары (реальное время) 0,9 0,3 мс 35 мс 262 мс
BTCUSDm, бары по 50 тиков (реальное время) 1 0,2 мс 32 мс 281 мс
Золото, 1-секундные бары (воспроизведение) 12 0,4 мс 65 мс 173 мс
Золото, бары по 100 тиков (воспроизведение) 12 0,3 мс 111 мс 140 мс
Nasdaq, 5-секундные бары (воспроизведение) 61 0,6 мс 40 мс 1,7 с (*)
Nasdaq, рейндж-бары по 1000 пунктов (воспроизведение) 61 0,8 мс 41 мс 2,5 с (*)

(*) В течение 2 минут после того, как терминал был заморожен на 2 минуты: задержанные тики пришли все сразу, и EA построил символ заново. Во всё остальное время самый медленный тик занял 142 мс и 156 мс. За 75 минут терминал в сумме использовал около одного ядра CPU и от 680 до 703 МБ памяти, без замедления от первых к последним 10 минутам.

Панель на исходном графике во время работы показывает собственное время записи EA на одно тиковое событие: медиану и 99-й процентиль (в тесте медиана 0,03 мс).

Потеря связи, перезапуск и изменения

Измерено в том же 75-минутном тесте, при перезапусках терминала после него и в отдельном тесте изменения входных параметров:

  • Терминал заморожен на 2 минуты: после возобновления он сообщил о потере и восстановлении связи с торговым сервером. В течение 15 секунд EA нашли 4 пользовательских символа с недостающими барами или тиками и построили их заново (от 0,2 до 2,4 с каждый). После этого все 10 символов прошли описанную выше проверку. Обрыв сети на несколько минут не тестировался.
  • Изменён таймфрейм исходного графика (с M1 на M5 и обратно): EA продолжил с последнего бара, без перестроения.
  • Изменены входные параметры через шаблон с другими параметрами: EA продолжил с последнего бара.
  • Изменён тип графика у работающего EA (с 5-секундных баров на бары по 50 тиков и обратно): он построил новый пользовательский символ и оставил старый график на месте; вернувшись к 5-секундным барам через 91 с, он продолжил старый символ и добавил тики этих 91 с. Оба символа прошли описанную выше проверку.
  • Исходный график закрыт на 3 минуты: помощник показывал «Not updating: no EA builds BTCUSDm_S1 now». Когда график снова открыли с EA, он продолжил с последнего бара, и тики этих 3 минут появились на графике через 0,34 с.
  • Терминал закрыт и запущен снова 7 раз (закрыт от 3 секунд до примерно 1,5 минуты): 40 из 51 запуска EA продолжили со своих последних баров. 11 обнаружили недостающие бары (удалённые терминалом, см. ограничения), подождали эти 60 секунд (в финальной версии помощник в это время показывает «Checking the bars after the start») и построили свои символы заново (от 0,2 до 1,3 с каждый). После 5 из 7 запусков терминал через несколько минут удалил бары символа без открытого графика; EA обнаружил это при следующей проверке и построил символ заново (в 2 тестах тест закончился раньше этой проверки).
  • Второй EA для того же пользовательского символа не запустился, в том числе при 7 запусках терминала, когда все EA терминала стартуют одновременно.

При удалении EA пользовательский символ и его график остаются на месте. Прикрепите EA снова с теми же настройками, и он продолжит с последнего бара, предварительно проверив, что все бары до него на месте (если нет, он сам построит историю заново).

Входные параметры

Параметр По умолчанию Описание
Chart type Seconds bars Seconds bars, Tick bars, Range bars
Seconds bars: seconds per bar 5 seconds 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 или 30
Tick bars: ticks per bar 100 От 1 до 100 000
Range bars: range of a bar in points 100 Пункты исходного символа
Source symbol пусто Пусто = символ графика, к которому прикреплён EA
Days of real tick history to build 3 От 0,01 до 60, используется при построении пользовательского символа. Тиковая история брокера может быть короче. Новое значение не перестраивает существующий пользовательский символ: для этого один раз установите следующий параметр в true
Build the history again at start false Иначе EA продолжает с последнего бара, если тип графика, его настройка и исходный символ те же
Custom symbol name пусто Пусто = автоматически, например EURUSD_S5, EURUSD_T100, EURUSD_R100
Open the custom chart true
Template for the custom chart пусто Шаблон из MQL5\Profiles\Templates, применяется при открытии графика
Show the real time of the bars on the custom chart true Помощник, описанный выше
Close the custom chart when the EA is removed false
Tester only: open and close sample positions true См. ниже

Тестер стратегий

MetaTrader 5 не допускает пользовательские символы и новые графики в тестере стратегий (измерено: и то и другое отклоняется с ошибкой 4014). Поэтому в тестере EA строит те же бары в памяти, тем же кодом, из тиков, которые подаёт ему тестер, а в визуальном режиме рисует их в подокне под графиком тестера. В конце прогона он записывает, сколько баров построил и что каждый тик находится ровно в одном баре. Используйте режим «Каждый тик на основе реальных тиков», чтобы увидеть бары, построенные из реальных тиков брокера.

Только в тестере стратегий EA также открывает и закрывает короткую серию пробных позиций, потому что Маркет проверяет, что советник совершает сделки:

  • минимальный объём, одна позиция за раз, до 30 позиций
  • перед каждой новой позицией проверяется свободная маржа; если денег недостаточно, EA записывает сообщение и ничего не отправляет

Пробные позиции не являются торговой стратегией, и их результаты ничего не говорят о прибыли. На графике реального или демо-счёта EA никогда не отправляет, не изменяет и не закрывает ордера.

Ограничения (пожалуйста, прочтите перед покупкой)

  • Шкала времени отсчитывает слоты, а не время по часам. См. «Шкала времени» выше. Индикаторы, использующие время бара (сессии, дневные пивоты, фильтры по времени), видят на пользовательском графике время слотов, а не реальное время.
  • Котировка пользовательского символа отстаёт на один тик. Измерено: когда индикатор или EA на пользовательском графике вызывается для нового тика, бары и тиковая история пользовательского символа уже содержат этот тик, но котировка пользовательского символа (Обзор рынка, SymbolInfoTick, линия Bid на графике) показывает предыдущий тик, пока не будет добавлен следующий. В MetaTrader 5 билд 6230 было опробовано семь способов обойти это, и ни один не сработал. Индикатору или EA на пользовательском графике следует читать цены из баров (закрытие последнего бара и есть самый новый тик).
  • Пользовательскими символами нельзя торговать. EA, работающий на пользовательском графике, должен отправлять свои ордера по символу брокера.
  • Только графики по Bid. Символы, которые брокер строит по цене Last (биржевые акции и фьючерсы), отклоняются с сообщением на панели.
  • Глубина истории определяется брокером. Первое построение загружает тиковую историю брокера; брокеры хранят её ограниченное время. Длинная история коротких баров может превысить настройку терминала «Макс. баров в окне» («Max bars in chart»; Сервис, Настройки, Графики); тогда график показывает только самые новые бары. Собственные проверки EA считывают не более половины этого значения, поэтому низкое значение лишь заставляет их просматривать меньше баров (проверено со значением 5 000 и 1-секундным графиком примерно из 80 000 баров: никаких лишних перестроений за 8 минут).
  • Для секундных баров места хватает на ограниченное время. Слоты должны оставаться в прошлом: у 1-секундного графика есть место примерно на 339 дней баров после его начала, у 5-секундного графика примерно на 4,6 года. Когда место исчерпано, EA сам строит историю заново.
  • Держите EA запущенным, пока пользуетесь пользовательским графиком. Измерено в билде 6230: когда EA удаляли или терминал перезапускался, терминал иногда удалял бары самой новой части пользовательского символа (до одного дня слотов, 1 440 баров), сохраняя при этом тики. График, оставленный открытым без EA, затем показывает пропуск. Когда EA запускается снова, он это обнаруживает и строит символ заново. После перезапуска график может показывать такой пропуск примерно до минуты: EA ждёт до 60 секунд, пока терминал загрузит бары (помощник в это время показывает «Checking the bars after the start»), и если бары всё ещё отсутствуют, строит символ заново (от 0,2 до 1,3 с в тестах). В тестах терминал также удалял бары через несколько минут после перезапуска при работающем EA: EA обнаруживал это своими проверками (каждые 60 секунд; в трёх тестах исправление произошло через 74 секунды после того, как собственный верификатор теста увидел пропуск) и строил символ заново; символ без открытого графика может сохранять пропуск до этой проверки или до следующего запуска. Чаще всего это происходило с пользовательским символом без открытого графика.
  • Исправление очищает и заново заполняет весь пользовательский символ. Когда проверка находит неверный или отсутствующий бар, EA удаляет тики и бары пользовательского символа и записывает их заново с того же первого тика (от 0,2 до 2,4 с в тестах). Индикаторы и EA на пользовательском графике видят, как в это время история исчезает и появляется снова.
  • Один EA на пользовательский символ, и он занимает слот EA своего графика: прикрепляйте его к свободному графику исходного символа, а не к графику торгового EA.
  • Тестер стратегий на пользовательском символе не работает. Измерено в билде 6230: тестер подаёт тики пользовательского символа, но строит лишь часть его баров или ни одного (1 324 и 0 из 4 316 баров M1 в двух тестах), поэтому EA, которому нужны бары, нельзя протестировать на нём. Тестируйте такой EA на символе брокера.
  • Тестовая среда:
    • только MetaTrader 5 билд 6230, Windows 10, экран 3840 x 2160 при 288 dpi
    • демо-счёт у розничного CFD-брокера: BTCUSDm и ETHUSDm в реальном времени, пятничные тики XAUUSDm и USTECm, воспроизведённые в их реальном темпе (субботние тесты); история EURUSDm, XAUUSDm и USTECm для скриншотов
    • тестер стратегий: неттинговый и хеджинговый демо-счета демо-сервера платформы, EURUSD, GBPUSD, XAUUSD
    • самый длинный тест 75 минут; не тестировалось у других брокеров, на реальных счетах и на MQL5 VPS
  • Пожалуйста, сначала попробуйте бесплатную демоверсию в тестере стратегий. Демоверсия показывает бары только в подокне тестера (см. «Тестер стратегий» выше); для пользовательского графика на реальном или демо-счёте нужна полная версия.
Другие продукты этого автора
Repaint Inspector измеряет, перерисовывает ли индикатор, вместо того чтобы принимать это утверждение на веру. Вы прикрепляете его к графику, указываете любой пользовательский индикатор и список его параметров, и он повторно считывает буферы этого индикатора на уже закрытых барах, подсчитывая каждое значение, которое изменяется, каждое значение, которое появляется, и каждое значение, которое исчезает, а также то, насколько далеко в истории это всё ещё происходит. Это измерительный инструмент. На
FREE
Symbol Spec Auditor выводит на одну панель на графике ту часть спецификации контракта символа, от которой зависят размер позиции и торговые издержки: стоимость пункта, стоимость спреда, маржу, своп, правила исполнения и торговые сессии. Сырые значения спецификации пересчитываются в деньги на 1,00 лот в валюте счёта, а настройки брокера, которые незаметно ломают код расчёта лота, перечисляются как предупреждения. Одна кнопка экспортирует такой же аудит для каждого символа из Обзора рынка в CSV-фа
FREE
Spread Profile by Hour строит распределение спреда одного символа для каждого часа серверных суток по тиковой истории вашего собственного брокера и отображает его в виде 24 столбцов. Сплошная часть столбца — медианный спред этого часа, более светлая верхняя часть доходит до 90-го процентиля. Введите размер стопа, которым вы обычно пользуетесь, и каждый столбец получит подпись с его медианным спредом в виде доли от этого стопа, так что издержки выражены в той же единице, что и ваш риск. Это измер
FREE
Локальный копировщик сделок для MetaTrader 5. Он копирует позиции между терминалами MT5 на одном ПК с Windows или VPS и рассчитывает объём каждой копии по спецификациям контрактов обоих брокеров (размер контракта, стоимость тика, валюта счёта), так что копия несёт ту же экспозицию, даже если у двух брокеров лот определён по-разному. Он никогда не открывает вторую копию одной и той же позиции мастера. Что он делает Один и тот же EA прикрепляется к одному графику в каждом терминале: В терминале ма
Журнал учёта счёта для MetaTrader 5: разбивает ваши результаты по магическому номеру, символу, дню недели и часу, показывает P/L по цене, комиссию, своп и сборы в отдельных колонках и измеряет спред, уплаченный при каждом исполнении, и проскальзывание относительно запрошенной вами цены. Итоги сверяются с балансом счёта при каждом обновлении. На графике он никогда не торгует. Что он делает Прикрепите его к одному графику. Он читает историю сделок счёта, восстанавливает каждую позицию из её сделок
Фильтр:
Нет отзывов
Ответ на отзыв