Поделюсь своим подходом к тестированию стратегий. Может кому будет полезно.
Сначала я разрабатываю стратегию в среде бэктестинга на питоне, с частотой 1мин, данные система автоматически забирает с финама или mfd. Если требуется оптимизация параметров, то здесь же применяю оптимизацию и форвардный тест.
Если стратегия показывает хорошее матожидание, то следующим шагом я реализую код на луа. Раньше я использовал тестовый сервер, предоставляемый arqa technologies, но с недавних пор отказался от этого подхода, уж больно сильная разница котировок на тестовом и реальном серверах. Сейчас я делаю скрипт сразу для боевого сервера, эмулируя выставление ордеров, закладывая проскальзывание.
Какие преимущества я нашел при таком подходе:
1. Тестируется торговая стратегия на основании данных реальных стаканов котировок.
2. Одновременно тестируются механизмы мани-менеджмента и риск-менеджмента (обрывы соединения, пустые стаканы, резкие выбросы данных)
3. Частота данных при тестировании соответствует частоте данных прома.
4. Трансформация тестового скрипта в боевой занимает минуты.
5. Техническая поддержка на боевом сервере и поддержка на тестовом сервере со стороны брокера+разработчика терминала это небо и земля).
Заодно именно на боевом сервере крутится агент, который пишет тиковые данные в логи для дальнейшего скармливания нейросети. Почему так а не выкачивать в оффлайне тики? Потому что сразу получаешь синхронные по времени данные по разным инструментам и источникам (стакан, сделки). И сразу с предобработкой это кладется в нужном формате для дальнейшего использования.
А какие подходы у вас?
а точнее — ничего общего )))
и в реале.
если крипта то это 12 usd (мин 10 usd ордер)
если ммвб то это 1 лот.
если forts то это 1 фьючерс.
ведь время на тестирование это тоже рабочее время.
это ОТРЕЗВЛЯЕТ очень быстро.
реальная статистика 1 лотом гораздо ценнее чем эмуляция.
я видел клиентов которые потратили на разработку и исследования годы и тысячи долларов кодерам.
а робот в рынке у них даже не был ни разу.
на 1 плохо, лучше на 3, а еще лучше на 10. Тогда все косяки с частичным исполнением и пр. соберешь сразу, а не потом, когда в продакшн уйдет :)
если вы первый раз идете.
и на как можно меньшей сумме на одного робота.
буквально 1 лот.
тогда вы быстро (а значит дешево по времени ) отсеете то, что не работает.
потому что многие с корабля на бал сразу бахают на весь счет.
робота который только вылупился.
с детскими ошибками.
или наоборот рожают мертворожденного робота годами.
с мертвой идеей.
нужен баланс)
и ребалансировка )
Что же за НС такая, суммарно сколько нейронов?
Кстати, коли уж ДЛЛ не проблема, чем логи писать, лучше БД SQLite использовать.
Нейросеть в длл это же прошлый век! :) почему не REST или gRPC, это и удобнее и достатоно быстро. зы. против длл ничего против не имею ;)
Я вообще использую НС как обучаемую логику, и не заморачиваюсь ее созданием. Да, но примитивную логику нужно вначале создать самому, за НС уже ее уточнение.