Блог им. grepan

Тестирование стратегий

    • 01 октября 2021, 11:53
    • |
    • grepan
  • Еще
Поделюсь своим подходом к тестированию стратегий. Может кому будет полезно.

Сначала я разрабатываю стратегию в среде бэктестинга на питоне, с частотой 1мин, данные система автоматически забирает с финама или mfd. Если требуется оптимизация параметров, то здесь же применяю оптимизацию и форвардный тест.
Если стратегия показывает хорошее матожидание, то следующим шагом я реализую код на луа. Раньше я использовал тестовый сервер, предоставляемый arqa technologies, но с недавних пор отказался от этого подхода, уж больно сильная разница котировок на тестовом и реальном серверах. Сейчас я делаю скрипт сразу для боевого сервера, эмулируя выставление ордеров, закладывая проскальзывание.
Какие преимущества я нашел при таком подходе:
1. Тестируется торговая стратегия на основании данных реальных стаканов котировок.
2. Одновременно тестируются механизмы мани-менеджмента и риск-менеджмента (обрывы соединения, пустые стаканы, резкие выбросы данных)
3. Частота данных при тестировании соответствует частоте данных прома.
4. Трансформация тестового скрипта в боевой занимает минуты.
5. Техническая поддержка на боевом сервере и поддержка на тестовом сервере со стороны брокера+разработчика терминала это небо и земля).

Заодно именно на боевом сервере крутится агент, который пишет тиковые данные в логи для дальнейшего скармливания нейросети. Почему так а не выкачивать в оффлайне тики? Потому что сразу получаешь синхронные по времени данные по разным инструментам и источникам (стакан, сделки). И сразу с предобработкой это кладется в нужном формате для дальнейшего использования.

А какие подходы у вас?
★4
75 комментариев
Где вот данные по опционам забрать не подскажешь?!
avatar
Свой Мужик, а разве на финаме нет?
avatar
grepan, да блин сорян не смотрел даже :( гляну
avatar
Свой Мужик, я не нашел на финаме, но нашел на mfd.ru: Экспорт в метасток -> Forts Опционы
avatar
grepan, просто ахриненно! )
avatar
Свой Мужик, Кстати, в моем бэктесте есть автоматический импорт с mfd ;). Можно стратегию с опционами прогнать.
avatar
grepan, да на опционах там оно боюсь будет сложнее, там временной распад ещё работает ну и блин названия меняются чаще чем на фьючах, пока чисто посмотреть надо было )

avatar
bohemian rhapsody, )) так я и туда и туда данные скармливаю) но биологическая что-то паттернов не находит (
avatar
grepan, 
avatar
А я тестирую только на живых деньгах. Считаю что лучшего теста еще не придумали.
avatar
Ну, это следующий этап в моей парадигме
avatar
grepan, самое лучшие мин 1 лот.
и в реале.
если крипта то это 12 usd (мин 10 usd ордер)
если ммвб то это 1 лот.
если forts то это 1 фьючерс.

ведь время на тестирование это тоже рабочее время.

это ОТРЕЗВЛЯЕТ очень быстро.
реальная статистика 1 лотом гораздо ценнее чем эмуляция.

я видел клиентов которые потратили на разработку и исследования годы и тысячи долларов кодерам.

а робот в рынке у них даже не был ни разу.
avatar
Антон Б, У меня по другому, робот в рынке около 2 лет, руками не тестирую, только алго. На боевом в минуту проходят десятки сделок. При тестировании утром запустил, вечером посмотрел статистику.
avatar
Антон Б, 
на 1 плохо, лучше на 3, а еще лучше на 10. Тогда все косяки с частичным исполнением и пр. соберешь сразу, а не потом, когда в продакшн уйдет :)
Дмитрий Овчинников, я про то что нужно как можно раньше тестировать.
если вы первый раз идете.
и на как можно меньшей сумме на одного робота.
буквально 1 лот.

тогда вы быстро (а значит дешево по времени ) отсеете то, что не работает.

потому что многие с корабля на бал сразу бахают на весь счет.
робота который только вылупился.
с детскими ошибками.

или наоборот рожают мертворожденного робота годами.
с мертвой идеей.

нужен баланс)
и ребалансировка )
avatar
grepan, хочешь среднюю мувингу из синусов?
avatar
ezomm, эм, не понял, можете развернуть вопрос?
avatar
grepan, ты что тестируешь? Средние? Стохастики? Я до 2007 г все в Метастоке 7.2 перетестировал. Сам сочинял системы и индюки.Но вот попались мне средние на синусах и я ничего не понял? Что они усредняют? С ними стоит поиграться.
avatar
ezomm, стандартные индюки не использую. Больше статистические методы, фильтры частот.
avatar
ezomm, если вы про ряды Фурье и вейвлеты, то да, верю что можно найти потенциал.
avatar
grepan, «эмулируя выставление ордеров, закладывая проскальзывание.
Какие преимущества я нашел при таком подходе:
1. Тестируется торговая стратегия на основании данных реальных стаканов котировок.» — что за майндфак? Эмулирование стаканов это как?
avatar
NikolasM, а где в тексте было про эмулирование стаканов? Внимательнее ) было про эмулирование ордеров на реальных стаканах)
avatar
grepan, ну так вопрос об этом что это и как выглядит?
avatar
NikolasM, наблюдаете реальный стакан. Если стратегия даёт сигнал на вход, то выбираете не самую оптимальную цену стакана, а с заложенным проскальзывнием, и запоминаете, что по этой цене вы вошли. Далее ждёте сигнала на выход) с аналогичным подходом
avatar
grepan, а в чем главные постулаты стратегии? Опасные вы трейдеры -программисты. Сами думать не хотите, а все нейро сети мучаете.Но ведь ликвидность (объем денег и активов ) не зависят даже от лучшей стратегии.Поэтому надо быть и инвестором и спекулем, те торговать все сигналы всех таймов. А это ведь так утомительно !? Вот ведь беда какая? А нейро сеть (генетическая !) то паттернов не видит? А мой глаз видит.Ооо как?
avatar
ezomm, ну, нейросеть это лишь один из возможных подходов. Так как раз алгоритм и может анализировать одновременно кучу таймфреймов, инструментов и т.д. Я вот своей психике не доверяю) если правила торговли не могу положить в алгоритм, значит торговать ещё не готов. А если могу, значит начинаются все круги тестирования.
avatar
ezomm, если глаз видит, значит можно формализовать правила. Иначе вы сами себя обманываете, и в реале работаете на «чуйке»)
avatar
grepan, не на чуйке, а на опыте.Я уже грааль открыл.ЦЗ2УПП — это он. Но на самом деле граалей много в правилах  волновой теории и свечном анализе.Там что не правило !? а? опять грааль! У Ганна много гралей.Мой знакомый Володя Соколов(понял Ганна) цели волн на старой логарифмической линейке считает.Но не знаю жив ли он?.. Он уже пожилой… ему за 75 наверно уже.
avatar
ezomm, ну кстати волновая теория и свечной анализ прекрасно формализуются. Есть же гармонические паттерны, там все по соотношениям Фибоначчи. Ну а свечи и подавно. Про Ц32УПП ничего не знаю ( расскажете?
avatar
grepan, интересное слово- прекрасно? Как же свечной формализуется если про него нет книг? А волновой лишь на службе у свечного. ВА лишь объясняет форму свечей и только. Может и Ганн прекрасен? за ЦЗ2УПП я отдал много лет исследований. Свечной -это теория циклов(фракталов) времени. Каждая свеча забирает себе кусочки волн Эла. Чтобы понять свечной придется долго изучать волновой анализ. Я изучаю ВА 20 лет, а свечной последние 10. Сам то знаешь волновой?
avatar
ezomm, спасибо что спровоцировали) заодно поправите, если в моей картине мира есть изъяны.
Что я представляю: 
1. под свечным анализом я понимаю выявление свечных паттернов, которые вероятно (хотя это не подтверждается историей) могут привезти к развороту тренда. Это  такие свечи как солдаты, звезды, молоты и т.д. и т.п. Свечные паттерны отлично формализуются, поскольку каждый из них — это просто соотношение 4 параметров свечи OHLC.
2. После свечей идут фракталы. Эллиота и других. Фрактал тоже формализуется, поскольку каждый первооткрыватель фрактала давал ему определение: 3, 5, 7 свечей с экстремумом посередине...
3. Из совокупности фракталов складываются волновые паттерны (или известные еще как гармонические паттерны): гартли, летучие мыши, бабочки, крабы и прочий зоопарк. Тоже прекрасно формализуются, потому что каждый паттерн определяется соотношением длин сторон или удаленности вершин-фракталов. Обычно отношение длин сторон  ограничивается числами Фибоначчи. 
4. А вот далее уже идет разметка волн по Эллиоту. И вот тут я споткнулся, хотя когда-то давно сильно их вкуривал на материалах Мастерфорекса. Конкретно споткнулся на моменте, когда волна переходит из одного тайм-фрейма в другой. Это когда в Вашем определении «тренд 3 волны, коррекция 2 волны» начинает в реальности встречаться 3 и более волн в коррекции. И надо сразу мозг переключить на старший тайм-фрейм, и на нем перерисовать картину волн. 
avatar
grepan, мастер форекс тут ? 
www.forum.enerbefx.com/viewtopic.php?p=523
avatar
ezomm, нет. был раньше такой ресурс со школой трейдеров. Не знаю его судьбу сейчас. Один из преподаваемых подходов как раз был в сочетании ВА, пары индикаторов, анализа объема, коррелирующих инструментов.
avatar
grepan, смотри ролики Андрея Цветкова.Он еще не вошел в свечной анализ, но очень любит волновой. Не плохая попытка.Ни слова про индикаторы и осчилляторы.Это плюс.А разметки могут делать проги ВА.Не изобретай колесо.Тренируй глаз.На графике много точек симметрии и циклов времени.Сначала ищи циклы, а потом размечай волнами.Когда станешь видеть точки симметрии график откроется тебе полностью.
avatar
ezomm, С ВА есть один момент, который меня не устраивал: тестирование стратегии на нем надо делать вручную, пробегая глазками по графику истории.
avatar
grepan, поэтому это привилегия людей -понимать график. Но свечной формализовать легче. Я не программист . Немного играл с Вижел бейсиком в Метастоке 7.2. Даю тебе подсказку. Главный фрактал — свеча солдат. Начни с него. Попробуй формализовать его.Про циклы цены и времени есть у Ганна. Матрицу 8\8 я взял у него и немного изменил под фрактал Эллиота. Это 8 шагов времени и 8 шагов цены.
avatar
ezomm, с солдатом Я хорошо знаком, потому что из него формируются фракталы. И я прогонял разные стратегии на поиске фрактальных паттернов по числам Фибоначчи. Без впечатляющих результатов. Единственный открытый вопрос для меня — квадратичная зависимость цены от времени. Есть где почитать конкретного про этот инструмент?
avatar
grepan, если график идет под углом 45гр, то тогда и работает квадратичная зависимость. Это техники Ганна.Есть прога Ганнзилла.Она работает по его техникам.Но не берись если мозг слабый тк может потечь.Просто смотри ютуб -масштабирование графика по Ганну и… вообще про его техники.
avatar
ezomm, поясните, что такое 45 градусов на графике цены? Это при каком масштабе?
avatar
grepan, любом масштабе в смысле тайма. Диагональ квадрата это 45гр. это средний луч Эндрюса.Я не масштабирую график под 45гр, а просто рисую прямоугольник под 1ю и2ю волны.Тогда диагональ становится вектором цели для 3й волны. Тебе надо учить волновой анализ.Но этого мало.Надо копать свечной анализ с помощью волнового. Фракталы рулят по 4 в 1.Это танец цены 3-2.
avatar
ezomm, а, понял. У меня это было сформулировано чуть по другому: прямая, проведенная через основание первой и второй волны, дают линию поддержки тренда. Кстати, тоже прекрасно формализуется.
avatar
grepan, вектор цели проходит через середину 2й волны.
avatar
grepan, поддержка тоже работает.У 3й волны 4 вероятные цели ..2 по времени 2 по цене.Неплохо работает индюк уровни Мюррея.Его алгоритм я не понимаю тк там сложные формулы. Волны формализуются через зигзаг. Ноги растут через размах солдата в %.Размах в разных таймах разный. Зигзаг работает на % разворота.Он будет опаздывать, но рисовать правильные волны.Подумай… какая волна главная и поймешь пользу зигзага.
avatar
grepan, про солдата — это я тебя приколол.По одной свече замысел не увидишь тк внутри нее может быть все что угодно (надо смотреть структуру солдата).Надо как минимум 5 свечей и смотри какую работу там (во фрактале Билла) делает солдат?
avatar
ezomm, ну понятно, что солдат это полная волна на уровне тиков. Я вообще к свечам очень прохладен, потому что ну вот кто вам сказал, что правильно тики в свечи нарезать по временному критерию, а не по какому то другому?
avatar
grepan, ты задаешь умные вопросы.Время во власти объема участников охваченных одной идеей.Когда эти участники с помощью 3й волны реализуют идею… то они распадаются и формируется другая группа с другим объемом(идеей) и следовательно с другими циклами времени.Кстати свечи не ты нарезаешь, а участники торгов.
avatar
grepan, солдат — это не полная волна, а грубом виде синус 360гр.А свеча- приседающий -может быть 1й и 2й волной  для нового цикла из 3х или 5 волн.
avatar
grepan, свечи и есть = фракталы.Идеальный фрактал из 5 свечей типа Билла Вильямса. Это необходимый минимум чтобы понять замысел рынка.Далее из 8 ..13  и тд
avatar
Эт чё, нейросеть на Луа?
Что же за НС такая, суммарно сколько нейронов?
avatar
3Qu, я в одном из своих постов затрагивал тему, как можно нейросеть встроить в луа. Если в кратце, то через обёртывание предикта в dll. Но мои алгоритмы пока не на нейросетях.
avatar
grepan,  понятно, ДЛЛ + питон.
Кстати, коли уж ДЛЛ не проблема, чем логи писать, лучше БД SQLite использовать.
avatar
Возможно
avatar
grepan, Даже в базовых настройках примерно в 2 раза быстрее, чем в файлы. А со специфическими, так вообще моментально 5-10 мс. И запросами к базе обрабатывать легче.
avatar
Интересно, изучу, спасибо
avatar
3Qu, да все лучше писать в БД :), главное что бы это в табличной форме нормально смотрелось. 
Нейросеть в длл это же прошлый век! :) почему не REST или gRPC, это и удобнее и достатоно быстро. зы. против длл ничего против не имею ;)
avatar
CloseToAlgoTrading, для rest или grpc придется поднимать рядом сервис. А например для keras есть возможность обернуть обученную сеть в dll с вызовом предикта. Почему нет?
avatar
grepan, уж, кстати, НС существенно сокращает время разработки и понимание, есть ли в стратегии хоть что-то полезное.
Я вообще использую НС как обучаемую логику, и не заморачиваюсь ее созданием. Да, но примитивную логику нужно вначале создать самому, за НС уже ее уточнение.
avatar
3Qu, я правильно понимаю, что с помощью НС вы фактически либо находите новые индикаторы, которые являются комбинацией стандартных индюков, либо ищете ценовые паттерны?
avatar
grepan, Это был отчасти сарказм :). Я вполне за то, что бы использовать удобный инструмент. 
avatar
Бейсик, питон, sqlite… перестаньте уже ерундой заниматься и время тратить на программирование, сосредоточьтесь на стратегиях. В tradingview есть прекрасный тестер стратегий со всеми необходимыми инструментами и исходными данными. Есть тысячи готовых стратегий: бери, тести и адаптируй под себя.
avatar
MoonMan, ну чтобы прогнать тестирование стратегии на машках, стохастиках и прочих всем известных индикаторах, программировать не нужно. Но что-то они не работают просто из коробки. Да и потом, все эти стратегии уже тысячу раз протестированы, и ничего в них нет. А если и есть, то в обвязке с кучей правил мани-менеджмента и риск-менеджмента, что без программирования не реализовать )
avatar
grepan, про обвязку все верно. Она должна быть как часть системы. А точки входа тоже лишь часть системы и стоят на 2м месте после правильного стоп лосса.
avatar
MoonMan, Трейдингвью — дерьмо ещё то.))
avatar
MoonMan, Лучше и не скажешь
avatar
Так Вы  скармливаете  тестеру  не только цену, а еще и Бид-Аск объемы, скаченые из боевого сервера? (ведь в истории цен что в Финам или Yahoo        не хранится стакан Бид-Аск). И если Вы пишите про тест 1- минутками, то сколько примерно  минуток подаете на тест?
avatar
В бэктест я подаю скачанные свечи с финама. И длинна истории здесь не ограничена. А затем я скрипт, максимально близкий к боевому (только отключено выставление ордеров), включаю на боевом сервере, читаю стакан, эмулирую ордера. Скрипт крутится хоть неделю. Длительность запуска зависит от того сколько виртуальных сделок настроил алгоритм. Для статистики по теории достаточно свыше 50 сделок. Но можно ждать хоть 1000
avatar
Если есть сильная чувствительность к источрику котировок то скорее всего идея нерабочая
avatar
ves2010, странное утверждение. Вы встречали ситуацию, когда одна и та же идея работает на одном инструменте, и не работает на другом? И в принципе Вы анализировали различие между тестовыми котировками arqa и боевыми ММВБ?
avatar
итог какой? грааль нашли?
avatar
Alex Zebra, дело не в граале , а  в управлении рисками. Грааль простой -жарь в 5ю точку! типа в правое плечо.
avatar
Alex Zebra, в прибыли
avatar
Добрый день. Не подскажите возможно ли с финама автоматически экспортировать фьючь, но не их склейку, а каждую серию отдельно? За день до экспирации текущей, переходить на следующую.
avatar

теги блога grepan

....все тэги



UPDONW
Новый дизайн