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