Один из самых частых вопросов, который начинающие программисты-трейдеры задают мне в почту или скайп это — «Как написать бэктестер?». Глобализовать задачу не хочется, дабы она не умерла из-за потери концентрации и мотивированности, поэтому пойдем поступательно, от простейшего, к простому и за несколько итераций реализуем набор алгоритмов, которые позволят тестировать торговые стратегии, базирующиеся на свечках (Bar). Первый бэктестер должен будет уметь исполнять рыночные заявки, по цене закрытия самого последнего бара, присутствующего в контексте торговых данных, для нашего финансового инструмента. Примерный план действий такой:
- Реализуем класс, который эмулирует сделки для наших заявок.
- Реализуем класс, который последовательно читает свечки из текстового файла и добавляет их в контекст торговых данных.
- Реализуем к примеру пробойный обработчик на открытие позиции.
- Реализуем обработчик на закрытие позиции.
- Реализуем консольное приложение, которому можно будет передавать имя текстового файла с историческими данными и которое будет выполнять бэктест для этих данных.
Видео по первому пункту: