Проект позволяет:
- создать торгового советника
- тестировать торгового советника на исторических барах
- скачивать исторические бары
- торговать советника через Quik. Мможно реализовать интерфейс IBroker для поддержки API разных брокеров.
Исходя из здравого смысла, рационального мышления и невозвратных издержках следует, что:
- торговая стратегия строит прогноз по ценам и не должна иметь состояние, зависящее не от исторических данных, а от того, что мы делали ранее.
- нет смысла делать прогноз всего из трех возможностей (кеш, лонг, шорт), как обычно для прстоты делает человек. Аналогично тому как в машинном обучении класифицируют изображения: столько то процентов собака, столько то кошка и тп. Так и мы будем строить прогноз в виде вещественного числа в отрезке [-1,+1].
- для оценки стратегии нужно анализировать отношение дневных изменений счета (или их логарифмы). Анализировать сделки, прибыль на сделку и похожие показатели бессмысленно.
Если не считать алготрейдинг алхимией, то важной его частью как и в машинном обучении является борьба с переобучением. Подобно тому как многочлен N степени хорошо умеет подстраиваться под обучающие данные, пересечение 2 скользящих средних тоже хорошо переобучается. Для борьбы с overfitting нужно:
- учитывать волатильность (иначе подгоним параметры, чтобы забрать прибыль на самом волатильном участке)
- использовать как можно меньше параметров, вообще не оптимизировать параметры или одновременно использовать диапазон параметров. Если кто-то решит, что можно использовать нейросети, то это потребует обоснования отсутствия overfitting.
- если прогноз не дискретный, а вещественный в отрезке [-1,+1], то это уже само по себе избегает самой прямолинейной переподгонки.