Торговый советник работает по тикам, таймфрейм, на котором работает эксперт не важен. По мере изменения цены формируются паттерны определяющие текущую рыночную ситуацию. Формируется несколько паттернов японских свечей с разными параметрами. Количество паттернов задается переменной Nidelt. Для первого паттерна используется параметр dstop, для второго dstop*2 и т.д. до dstop*N, где N — количество паттернов. Если цена изменилась на величину dstop*N, фиксируется новая точка паттерна, самая старая точка удаляется, таким образом, паттерн всегда имеет длину Nidelt точек. Чем больше значение параметра паттерна, тем на большую глубину он охватывает историю. Получается, что рынок одновременно отслеживается на разную глубину истории.
При изменении какого-то паттерна (изменении рыночной ситуации), открывается виртуальная позиция. Здесь стоит задача связать позицию с определенной рыночной ситуацией. Это делается следующим образом: паттерн выраженный последовательностью ценовых значений перекодируется в бинарную последовательность, если значение одной точки больше значения предыдущей точки, это 1, иначе — 0. По такой последовательности вычисляется уникальный номер паттерна (по сути — перевод двоичного числа в десятичное).
Может открываться от одной до трех виртуальных позиций с различными стоп лоссом/тейк профитом, значение стоп лосс и тейк профит одинаковое. Величина стоп лосса/тейк профита определяется параметром dstop, для одной позиции dstop*1, для другой dstop*2 и т.д. Если цена пойдет вверх на величину стоп лосса/тейк профита, это добавит величины к вероятности движения вверх для этого паттерна, если вниз — то повысит значение вероятности вниз. Открываются свои виртуальные позиции для каждого сочетания трех параметров: параметр паттерна, номер паттерна (его форма) и для каждого из значений стоп лосса/тейк профита. Так же, для каждого из этих сочетаний, по результатам виртуальной торговли, вычисляется вероятность движения вверх или вниз.
Если по какому-то сочетанию трех параметров (параметр, номер, стоп лосса/тейк профита) произведено не менее 10-ти виртуальных сделок, то при появлении на рынке такой же ситуации (выявлен паттерн определенного параметра и номера) может открываться позиция с направлением соответствующим вероятности вычисленной на основе этой статистики и соответствующей величиной стоп лосса/тейк профита.
Для накопления статистики может потребоваться значительное время, как пишет автор эксперта, может потребоваться несколько недель. Процесс сбора статистики можно ускорить за счет использования тестера. Однако, изменения цены в тестере и реальном рынке могут значительно отличаться, автор рекомендует поступить следующим образом: обучить эксперта в тестере, затем запустить на демо-счете примерно на неделю. Если на демо-счете эксперт покажет положительные результаты (при этом он еще немного подучится), то использовать его на реальном счете.
Подготовка эксперта:
Первым этапом подготовки эксперта к работе будет оптимизация его параметров: Nidel, Nstop, dstop, forg, Probab, NN, delta. На этом этапе оптимизация выполняется с выключенными параметрами ReadHistory и SaveHistory. После того, как будет найдено приемлемое сочетание параметров, следует провести одно тестирование с SaveHistory=true. Затем, запустить эксперта на счете с ReadHistory=true — эксперт сразу начнет работу, так как накопил достаточное количество статистики в тестере. При работе на счете рекомендуется включать SaveHistory, что бы по мере переучивания эксперта данные сохранялись автоматически и эксперт всегда был готов к работе в случае его перезапуска.
При SaveHistory в тестере, по окончанию тестирования данные обучения сохраняются в файл, файл имеет имя FD_[Symbol], если эксперт работал на EURUSD, файл будет иметь имя «FD_EURUSD», если на GBPUSD – «FD_GBPUSD» и т.д. Файлы сохраняются в папке Files — общей папке данных всех терминалов. Найти общую папку данных можно через главное меню MetaEditor’а – Открыть общую папку данных. Из этой же папки данные считываются при ReadHistory.
Кроме сохранения результатов обучения, эксперт сохраняет еще два файла, которые нужны ему в процессе торговли. Файлы имеют имена: FDlast_buy[Symbol][TimeFrame], и FDlast_sell[Symbol][TimeFrame]. На эти файлы не следует обращать внимания.
Единственная зависимость от таймфрейма у эксперта – периодичность сохранения данных обучения и минимальное время между виртуальными сделками, оно равно длительности двух баров, так что, вероятно некоторое различие в результатах работы эксперта на разных таймфреймах.
Параметры советника:
ReadHistory — Чтение сохраненной истории обучения.
SaveHistory — Сохранять историю обучения. При работе в тестере история сохраняется по завершению тестирования, при работе на счете — регулярно, по мере переобучения.
Lots — Объем позиции.
Nidelt — Количество различных паттернов, не более 30.
Nstop — Количество параметров виртуальных позиций (различных значений стоп лосса и тейк профита, стоп лосс и тейк профит равны), 1, 2 или 3.
dstop — Шаг изменения параметров виртуальной позиции (стоп лосса и тейк профита).
forg — Скорость забывания результатов обучения, значение должно быть немного больше 1.
Probab — Уровень вероятности определенный по результатам обучения при котором выполняется открытие позиции.
NN — Размер паттерна, не более 12.
delta — Шаг изменения параметра паттерна.
ReplaceStops — Модифицировать стоп лосс/тейк профит при новых сигналах открытия. Перенос стоплосса/тейкпрофита выполняется только по направлению позиции.
Trailing — Уровень трейлинг стопа, при значении 0 трейлинг стоп выключен.