Форекс для начинающих с нуля

Нестандартные таймфреймы в МТ4

Приветствую уважаемых читателей блога. В своей практике я встречал системы анализа, которые рассматривают движения цен в разрезе времени подобно «матрешке». Временные уровни при этом могут быть самые различные, очень часто наиболее ясная картина складывается, когда рассматривать график периода 10 мин, или 20 мин, или даже 23 мин. Так и говорят: «Идет волна уровня М23». Такого рода нестандартные таймфреймы в МТ 4 отсутствуют. Но если обратить свой взор на биржевые терминалы, то они как правило предоставляют более гибкую настройку периодов отображения по сравнению с популярным МТ4, который предлагает всего 9 временных периодов (таймфреймов): M1 (минутный), M5 (5-минутный), M15 (15-минутный), M30 (30-минутный), H1 (часовой), H4 (4-часовой), D1 (дневной), W1 (недельный), MN1 (месячный).

Как настроить нестандартные таймфреймы в МТ4?

Нестандартные таймфреймы в МТ4 можно получить довольно простым способом, для этого не нужно искать дополнительные сторонние разработки. В комплекте поставки терминала присутствует скрипт PeriodConverter. Задача скрипта — сформировать файл данных истории из текущего графика с коэффициентом умножения, который задается в параметрах. В зависимости от того, какой нестандартный таймфрейм хотим получить, может отличаться и то, с какого таймфрейма нужно формировать данные. Например, если хотим получить период М3 (3-минутный), то за основу берем период М1 (минутный) с коэффициентов 3 (три). А период H2 (2-часовый) получаем из периода H1 (часовый) с коэффициентом 2, хотя при этом также ничего не мешает получить тот же Н2 из других периодов: поскольку 2 часа равно 120 минутам, то его также можно сформировать из минуток, указав в настройках скрипта коэффициент 120.

Итак, давайте вместе сформируем нестандартный таймфрейм в МТ4 с периодом 10 минут для валютной пары EURUSD. Для начала открываем  график EURUSD и устанавливаем для него период М1. В окне навигатора находим скрипт PeriodConverter. Бросаем его на график.

В открывшемся окне во вкладке «Общие» проверяем, что галочка «Разрешить импорт функций из DLL» установлена:

Теперь переходим на вкладку «Входные параметры» и устанавливаем для единственного параметра «InpPeriodMultiplier» значение 10.

Отлично, нажимаем кнопку «Ok» и скрипт начинает свою работу. Важно! График с работающим скриптом должен остаться, его нельзя закрывать, если вы хотите получать котировки полученного нестандартного таймфрейма в реальном времени. Далее необходимо открыть сформированный скриптом PeriodConverter файл, содержащий нестандартный таймфрейм в МТ4, в нашем случае это будет EURUSD с периодом 10. В меню «Файл» выбираем «Открыть автономно» и в появившемся окне находим строку EURUSD,M10. Выбираем ее мышкой, нажимаем кнопку «Открыть».
И вуа-ля: теперь вполне комфортно можно работать с периодом М10. Текущие котировки изменяются, можно ставить на полученный график М10 любые необходимые индикаторы:

Точно таких же результатов можно достичь, если применить скрипт на графике периода М5 и задать коэффициент 2. Также на выходе получим график с периодом М10. Вообще, рекомендуют в качестве исходного брать такой период графика, чтобы коэффициент умножения получился минимальным. Например, нестандартный таймфрейм М45 лучше получить из М15, применив коэффициент 3, а не из М1 с коэффициентом 45. Хотя, жесткого правила на этот счет нет, можно делать так, как это будет удобно.

Как установить советник на нестандартный таймфрейм в МТ4?

Как будет работать советник, установленный на нестандартный таймфрейм в МТ4? На первый взгляд, всё должно быть нормально — котировки меняются, индикаторы работают, установленный советник «улыбается». Как установить советник на терминал МТ4 — об этом я писал ранее. Но потом выясняется, что установленный советник не торгует. В чем причина? Всё дело в том, что терминал МТ4 не посылает в открытое автономно окно сигнала о приходе нового тика, а подавляющее большинство советников работают по приходу нового тика. Как быть? Есть несколько путей решения вопроса. Можно попросить программиста доработать советник, чтобы он запускался не по тикам, а от сигналов встроенного таймера или использовать другой алгоритм запуска, не зависящий от приходов тика.

Однако, в большинстве случаев, добраться до программиста просто невозможно, а хотелось бы иметь решение для любого советника. И такое решение есть. Всё, что надо сделать — заставить терминал МТ4 эмулировать тики на конкретно выбранном графике. Хоть бы и на автономно открытом.

Для этой цели я написал скрипт, которым любезно поделюсь с читателями. Просто кидаем скрипт на график, в параметрах устанавливаем нужную периодичность следования тиков (от 200 мс и выше) и установленный на нестандартный таймфрейм советник будет отрабатывать тики по сигналам скрипта. Так же, как и с вышеупомянутым скриптом PeriodConverter, обязательно проверяем, что DLL разрешены. Для остановки скрипта нужно нажать на любом месте графика правой клавишей мыши и из контекстного меню выбрать пункт «Удалить скрипт».

Для скачивания скрипта эмуляции тиков для терминала МТ4 нажмите на кнопку ниже:

Всем пока!
Виталий Прядко.
31 марта 2016г.