Создание торгового робота: от А до Я

Данный цикл статей раскроет вопрос написания механической торговой системы (МТС) от момента задумки алгоритмов торговли и до оптимизации кода (с соответствующими отчетами).
Цикл начинается с этой статьи, в которой только будет намечена общая торговая система. Здесь вы пока не увидите никаких кодов, но будет намечен курс разработки торгового робота. Можно считать, что это теоретическая подготовка к написанию МТС.

Начиная со следующей, второй, статьи читателям будет представлен торговый робот, который станет отправной точкой для дальнейших изысканий. Целью нашей последующей работы будет общее улучшение торговой системы, начиная от оптимизации и заканчивая полной заменой каких-либо частей робота (при необходимости).

В заключительных статьях мы планируем разместить отчетные материалы по достигнутым результатам в создании данного робота. В идеале, это будет демонстрация прибыльной работы МТС.

После этого начнется работа над следующим роботом. Всего в каждом цикле предполагается по 6 статей:

1)    Вводная статья (предложение концепции).
2)    Представление торгового робота (с подробным описанием создания робота).
3)    Отчет за первый месяц работы программы; первая оптимизация робота.
4)    Отчет за второй месяц работы программы; вторая оптимизация робота.
5)    Отчет за третий месяц работы программы; третья оптимизация робота.
6)    Заключительная статья (подведение итогов).

Таким образом, на тестовую торговлю робота отводится ровно 4 месяца, по итогам которых будет создан подробный отчет.

Концепция алгоритмов торгового робота

Поиск торговых сигналов

В основу идеи поиска торговых сигналов положена модель оценки нескольких взаимно коррелирующих торговых инструментов. В начале исследования это будут валютные пары: GBPUSD, EURUSD, AUDUSD, USDCHF, USDJPY, USDCAD.

В качестве алгоритма непосредственной оценки отдельного инструмента взята простая средняя скользящая и цена инструмента. Иными словами, в качестве индикации повышения инструмента воспринимается положение цены выше средней скользящей, а понижения ? положение цены ниже средней скользящей. Конечный сигнал определяется как сумма сигналов по всем избранным для анализа инструментам. За сигнал для непосредственного открытия сделок принимается ситуация, когда 80% инструментов демонстрируют однонаправленное движение. Подобная оценка торговых инструментов весьма популярна как при портфельной торговле, так и при торговле одним единственным инструментом (оценка группы торговых инструментов для последующей торговли только по одному). Для данного робота избран первый вариант стратегии.

Распределение лотов в формирующемся портфеле сделок

При создании нашего робота будем отталкиваться от того, что у нас есть некоторое число лотов, которое мы можем использовать в торговле. Размер лота следует оценивать как максимально возможный по инструменту из группы, где цена пункта самая большая (среди всей группы). Максимально возможным лот следует считать исходя из допустимых потерь: в нашем случае из строго заданной величины СтопЛосс. После того, как максимально возможный лот определен, его следует поделить на минимально допустимый торговый лот (из условий торговли у данного ДЦ/Брокера). Таким образом, мы получим число долей, которые можем использовать в торговле. Далее эти доли будут распределяться между торговыми инструментами сообразно оценке весомости сигнала по каждому конкретному инструменту.

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

Закрытие сделок

В штатном режиме работы торгового робота закрытие сделок будет возможно согласно Stop Loss (в том числе и Trailing Stop Loss), Take Profit или при изменении торгового сигнала на противоположный. В последнем случае будет происходить закрытие всех открытых сделок по всем инструментам торговой группы. Открытие новых сделок будет возможно только в случае наступления нового торгового дня. Это ограничение не должно распространяться на случаи, когда закрытие сделок происходит при изменении торгового сигнала на противоположный.

Правила управления капиталом

Расчет максимально допустимого лота для портфеля

Максимально допустимый лот следует рассчитывать исходя из текущего уровня Equity, величины Stop Loss (заданной в параметрах торгового робота), величины допустимой разовой просадки (заданной в параметрах торгового робота) и  максимальной цены пункта у соответствующего торгового инструмента в торговой группе. Иными словами, оценка максимально допустимого лота происходит по тому инструменту, где минимальное изменение цены (1 пункт) имеет наибольший вес (стоимость) для уровня Equity. Само значение представляет собой ту величину торгового лота, которая обеспечит заданную просадку при закрытии сделки по уровню Stop Loss (исходя из этого, не сложно составить конкретную формулу).

Величина допустимой месячной просадки по депозиту

В случае достижения по депозиту просадки, заданной в параметрах депозита допустимой месячной, будет происходить закрытие всех открытых сделок и остановка работы робота до наступления следующего календарного месяца согласно терминальному времени. При этом просадка рассчитывается как разница величины депозита на начало текущего месяца и текущего уровня Equity. В расчете данной величины робот будет учитывать абсолютно все торговые операции по данному торговому счету, т.е. «ручная» и «автоматическая» торговля не будут различимы.

Данная мера нацелена на сохранение торгового депозита и возможности продолжения работы согласно текущей (либо измененной) системы.

Общие примечания

В случае если на момент запуска торгового робота сразу обнаружится торговый сигнал, открытие сделок происходить не будет — робот будет дожидаться формирования противоположного торгового сигнала. Это сделано для того, чтобы не происходило открытия сделок в конце ранее начатого (и, с некоторого долей вероятности, заканчивающегося) движения.

Данная версия робота будет началом исследования. Именно поэтому для критерия сигнала принят один из самых простых алгоритмов. Также этим обусловлен выбор строго определенных уровней Stop Loss и Take Profit.

Fortrader contentUrl Suite 11, Second Floor, Sound & Vision House, Francis Rachel Str. Victoria Victoria, Mahe, Seychelles +7 10 248 2640568

Ещё из этой категории


Последние образовательные статьи


Редактор рекомендует


Загружаем...