Доброго времени суток, уважаемое сообщество! Хочу поделиться с вами своей разработкой. Во время своего знакомства с биржевой торговлей (2010 год), пытаясь создать некоторое подобие торговой системы, я столкнулся почти с полным отсутствием программ-симуляторов для ручной торговли. В наличии был только скрипт для metatrader, позволявший вручную вносить ордеры. Хотя в настоящее время работаю исключительно с механическими системами, полагаю, что вопрос ручного тестирования может быть актуален для многих участников торгов, особенно, если возникает необходимость проверить какую-либо неокончательно формализованную идею, а также в случае, когда критерии изначально трудно описать машинным языком.
Специально для подобного рода тестов я написал программу, симулирующую торговлю на исторических котировках. Интерфейс приложения выглядит следующим образом:
Перед началом работы необходимо загрузить котировки в формате csv или txt в папку Quotes приложения. Программа считывает котировки следующего формата:
Date (dd/mm/yyyy), time (hh:mm), open, high, low, close
Например:
19/09/2011,00:50:00,1216.01,1216.01,1216.01,1216.01,1
19/09/2011,00:55:00,1216.01,1216.01,1216.01,1216.01,0
19/09/2011,01:00:00,1216.01,1216.01,1216.01,1216.01,0
19/09/2011,01:05:00,1216.01,1216.01,1216.01,1216.01,0
В случае, если формат котировок отличается от вышеописанного, строки необходимо привести в соответствие.
После загрузки котировок их можно увидеть в списке Quotes в меню программы. Выбрав нужный файл, Вы увидите график на экране.
Для начала симуляции необходимо нажать кнопку «Start». После того, как процесс имитации торговли начат, есть два способа обновления цен на экране: ручной, путем клика по кнопке «Next», каждое нажатие которой продвинет график на одну свечу вперед, а также автоматический (при включенной опции «Auto Scroll»). В автоматическом режиме можно выбрать скорость обновления графика.
Масштаб графика можно изменять, увеличивая или уменьшая количество свечей на экране. Масштаб будет увеличен, если с момента начала прошло достаточно свечей для отображения.
Программа имитирует вход/закрытие позиции рыночными ордерами (кнопки «Buy» & «Sell»), а также вход отложенным стоп и лимит приказом (для этого необходимо снять галочку «At market» и вписать цену входа). Также поддерживается имитация stop-loss и take-profit ордеров.
По окончании симуляции (кнопка «Finish») приложение представляет развернутую статистику торговли на вкладке Performance.
Можно ознакомиться с основными показателями эффективности торговой методики, такими как profit-factor, winnig percent, max. drawdown и др. Также выводится график прироста капитала (Equity) в соотношении с изменением цены актива за аналогичный промежуток времени.
Помимо этого, можно оценить наличие/отсутствие фактора сезонности в совершенных сделках (вкладка Seasonals):
На данном экране показано распределение чистой прибыли по месяцам, числам месяца и дням недели.
Каждая совершенная сделка записывается в журнал трейдов, посмотреть который можно на вкладке Trades. При необходимости, данные можно скопировать для переноса в Excel или аналогичную программу.
Приложение полностью бесплатное/без рекламы, не требует установки, необходимо лишь наличие .Net Framework версии 4.5.2.
Скачать можно по ссылке
www.sourceforge.net/projects/trading-simulator/
Вместе с программой приложен пример используемого формата котировок.
Просьба сообщить в случае обнаружения багов/сбоев в работе.
P. S. Если возникнет интерес в дальнейшей совместной разработке (добавить индикаторы, расширенную статистику/методы оптимизации, прикрутить тестер МТС), буду рад сотрудничеству.