<HELP> for explanation

Блог им. SenSoR

Как я тестирую и оптимизирую свои алгоритмы.

Для примера возьму одного из торгующих в трансляции роботов. 

 Как писал ранее, на этом полигоне у меня, на данный момент, торгуются трендовые торговые системы на фьючерсе доллар-рубль (Si). Вот один из них:
Как я тестирую и оптимизирую свои алгоритмы. 

Работает на настройках оптимизации 12-13 годов. Именно такую выборку сделал для того, что бы в нее влезало достаточное кол-во сделок + что бы Эти года показали разные ситуации на рынке — От классного тренда, до жуткого флета. Желательно что бы флета было побольше — эдакий стресс тест)

Как я тестирую и оптимизирую свои алгоритмы. 

Как видно из периода «слепой» торговли 10,11 и 14 годов, алгоритм показывал хорошую устойчивость. Но что если поэкспериментировать, и сделать оптимизацию на других периодах? Пожалуйста:

Как я тестирую и оптимизирую свои алгоритмы. 

И:

Как я тестирую и оптимизирую свои алгоритмы. 

Как видно из зон «слепой» торговли, результаты уже похуже, но всеравно торговля в плюс с нормальный профит фактором и коэфф. шарпа)

О кей. А что если взять этого же бота, с текщими боевыми настройками для фьючерса Si, и протестировать торговлю на других ликвидных фьючерсах, не меняя эти настройки? Пожалуйста: 

Как я тестирую и оптимизирую свои алгоритмы. 

Конечно, результаты трендовика намного хуже, а на малотрендовом газпроме вообще весь 14й год слив, но это не говорит о том, что система не будет работать на том инструменте, для которого она писалась, так ведь? А Вы как думаете? 

  Что еще можно сделать? А, ну да, поменять местами лонг и шорт) 

Как я тестирую и оптимизирую свои алгоритмы. 
Мда, слив! Ну оно и понятно, логика системы рассчитана на взятие трендовых движений или трендовых импульсов. А этот слив означает, что в системе нет фактора подгонки под историю, а значит системе жить!)

 Ну и покажу некоторые сделки, совершенные данным роботом в первые дни нового контракта Si:

Как я тестирую и оптимизирую свои алгоритмы. 

Видно, что с импульсами нормально справляется. И думаю тянет на 100% годовых.

Еще есть идея расклонировать данного робота на частей 10 с разными параметрами, полученными от оптимизаций прошлых годов. Как думаете, рабочая идея? Поможет сгладить эквити в будущем?

Всем спасибо за внимание. Ставьте лайк, выводите на главную, думаю данный пост поможет начинающим алготрейдерам правильно тестировать ТС) Буду писать еще. Удачных торгов!)
 

лайк!
avatar

undefined

Лишь бы в будущее не заглядывал.В какой программе тестируете?
avatar

Mr_Noname

Mr_Noname, В будущее не заглядывает. Торгуется уже полгода — полет нормальный) Тестирую в Амиброкере.
SenSoR, тогда круто. Амиброкер платный или бесплатный?
Mr_Noname, Брал лицензию, когда еще курс был не такой кусачий)
SenSoR, понял вас. Спасибо за ответ.
обычная канальная пробойка с реверсом
avatar

silentbob

silentbob, нет — совсем холодно)
успехов, Вам.
avatar

SMA

SMA, Спасибо)
SenSoR, идея с клонированием вполне рабочая, диапазон приемлемых параметров оптимизации возьмите и засуньте в портфель стратегий каждую из них и посмотрите на разницу эквити ( 10 лотов для одной системы или по 1 лоту для каждой из 10)
avatar

Press

Press, Спасибо, потестирую)
так и не осилил нормально тестирование в Ami((
WL оказался роднее что ли ))
avatar

Press

Press, Ну… кто к чему привык. WL тоже хорошая штука)
и кстати тестировать надо одним лотом. или это одним лотом просадки по 10 (десять) ГО — 25тыс пунктов?
avatar

silentbob

silentbob, Все нормально. В алгоритм вшита система управлением размером позиции, в зависимости от текущей ситуации на рынке, т.е. сайз динамический. Если матожидание в сделке получше, то вход бОльшим сайзом, если матожидание сделки хуже, то взод меньшим сайзом
SenSoR, сколько контрактов использовалось в момент просадки 25тыс пунктов?
одной замены шорта на лонг недостаточно, нужно поменять и выполнить оптимизацию, потом прогнать.
avatar

bstone

bstone, там не намного лучше ситуация)
bstone, Провел оптимизацию с перевернутым лонг-шорт:
SenSoR, нормуль, внушает оптимизм
bstone, вы считаете, что риск в сделке почти 100% внушает оптимизм?
Max trade % drawdown 99,50%
Сергей cms, Нет, такого небыло. Макс потери в одной сделке были 8000 руб из начального депо 100 тыс.
SenSoR, Параметр Max. trade % drawdown — The largest peak to valley percentage decline experienced in any single trade. The lower the better.
В Ваших отчетах Max. trade % drawdown под 100%.
Странно как-то...

Как Вы Решаете вопрос с роллированием контрактов в бэк-тесте? Имеются в виду спреды, связанные с контанго/бэквордацией фьючерсов (просто новичок в этом деле).
avatar

Murad Sh.

Murik, Да просто в квике, руками закрываю сделки на старом контракте и открываю на новом. Роботы ведут свою позицию в амиброкере вне зависимости от квика. Таким образом кол-во ботов может быть любым на одном счете квика.
SenSoR, а Вы переносите Ваши позиции черезь ночь или только интрадей?
Murik, Да, переношу. И через выходные переношу
SenSoR, так как Вы решаете вопрос, когда Ваши позиции приходятся на даты роллирования контрактов? Si например всегда в контанго.
Murik, не всегда, бывает контанго бывает бэквордация, на длительных промежутках эти влияния могут быть как положительные, так и отрицательные, поэтому это влияние можно приравнять 0 и все)
avatar

Aero

Murik, есть склеенные контракты…
ves2010, но склеенные контракты не решают вопрос с гэпами, связанными с контанго/бэквордацией (насколько я знаю). И если автор торгует только интрадей, тогда проблем нет, а если переносит овернайт, вот тут хотелось бы узнать.
Murik, Да, будут конечно погрешности в реале. Что тут поделаешь, главное, что бы логика системы была рабочей
Murik, есть разные типы склейки… даже если и будет гэп, то некоторая зашумленность данных только на пользу боту
ves2010, Да, верно. Есть гепы как за бота, так и против. Случайность)
SenSoR, согласен. А Можно узнать, Вы объемы используете в Вашей торговой ситеме? Или только все, что связано с ценой.
Murik, В этом варианте нет. Но тестирую брата-близнеца, с объемными фильтрами.
SenSoR, ясно, спасибо. А вот с пользучей оптимизацией не пробовали? То есть, скажем за последние N месяцев, а по прошествии недели, этот оптимизационный период смещается на неделю вперед.
Murik, Форвард-тест? Можно и неделю, но будет большая погрешность, т.к. сделок мало в выборке. Мне нужно хотя бы 200-300 сделок за выборку. И то этого мало(
Murik, когда переносишь позу, нужно закрывать позу в текущем контракте, и смотреть когда у робота закроется сделка, и только тогда запускать его вновь уже на новом контракте, опять же эти влияния могут быть как положительные так и отрицательные.
avatar

Aero

Андрей Ерохин, Дело в том, что когда я запускаю график нового контракта, в амиброкере автоматом этот график меняется со старого контракта на новый. А позы у роботов внутри ами остаются те же, т.к. динамика цены та же. Короче боты в ами ведут свою позицию автономно от квика)
ves2010, интересует ваше мнение, а насколько хорошо Финам их склеивает? Слышал нарекания. Где-то написано вкратце как они это делают?
Тебе макс просадка в 25% жить не мешает? я не подкалываю, а просто спрашиваю, ибо для каждого своя «болевая точка». Ну и попробуй поиграйся с тем, что количество контрактов в каждой сделке будет зависеть от волатильности — кривая доходности по-красивее должна стать
avatar

Cheshirscy

Cheshirscy, ой, извиняюсь, не прочитал коммент, о том, что и так есть динамическое определение количества контрактов.
Cheshirscy, 25% нет, не мешает. Да и это тесты без реинвестирования. Если в уме держать макс просадку 25% и реинвестировать, например раз в квартал, то покрасивше эквити будет) Кол-во контрактов в сделке и так зависит от волатильности + система матожидания сделки)
SenSoR, а ты ее на 14 году прогони:) вот где КОЦМАСС :)
Cheshirscy, Да ну, и так видно что космас))
SenSoR, зависит от системы. От цикличности серий плюсов и минусов. Иногда, лучше наоборот сайз уменьшать.
Alex Hurko, Конечно, когда на рынке неблагоприятный период — сайз лучше уменьшать и такую систему я вшил в роботов)
Cheshirscy, Подскажите, а как рассчитывать текущую волатильность для Бота, кто как ее считает?
avatar

iuiu

iuiu, по волатильности инструмента, но это нужно стопы делать от волы, и на них уже завязывать рм.
avatar

Aero

iuiu, ATR
avatar

Aero

Андрей Ерохин, т.е. просто берете индикатор ATR, как я только не выкручивался. сейчас сделал, что в 12:00 дня рассчитываю волатильность, но это как-то кривова-то получается и очень тупо. Попробую с ATR поработать, спасибо.
avatar

iuiu

iuiu, Можно использовать дневной ATR, можно внутридневной. Простой метод нормализации зайса по волатильности, например для фРТС: 10000/дневной ATR(10) = Сайз на сделку на сегодняшний день. А завтра опять ведем расчет нормализации. И так каждый день)
SenSoR, да, спасибо. у меня от волатильности уровни просчитываются и все остальное, стопы, профиты и тд. такой важный показатель, робот же, тупой же.
avatar

iuiu

и чо?
1 ты б написал в каком режиме тестишь… было бы понятнее...
2 начальную сумму увеличь до 1мио не жлобься… а то 100к как то маловато для контракта в стоимостью в 70к
3 си настолько трендовый что можно торговать скользящими средними… вот еслиб этот же бот показал достойный результат в ри то я был бы удивлен
avatar

ves2010

ves2010, а чего для того, что бы слыть реальным трейдером обязательно на ri торговать? если на других инструментах — то получается игрушечный трейдер? :)
Cheshirscy, На Ri у меня тоже есть роботы, не волнуйтесь)
SenSoR, да я не волнуюсь, у самого примерно такая же :)
Cheshirscy, На Ri скоро сделаю обзор банального пробойщика. Хотя, не совсем банального)
Cheshirscy, идея в диверсификации… си очень легок для алготрейдинга… но торговать только си — весьма безрассудно
ves2010, На данный момент у меня около 10 ботов, торгующих Si и Ri. Как трендовики, так и возвратчики к средней
ves2010, согласен, просто диверсификация может и без Ри быть, тем более, что он с Си «одной крови»
ves2010,
1. Что именно хотите что бы я написал?
2. В чем смысл увеличения стартового депо? Увеличу депо — увеличу лимиты)
3. Дык я ничего не имею против скользяшек. Пусть народ торгует Si ими и стабильно зарабатывает себе на жизнь, а не ноют, что с трейдинга невозможно зарабатывать на содержание себя любимого и своей семьи) На РТС тоже норм результаты. Но не все сразу — позже расскажу)
SenSoR, кароче ты уже ответил, что меняешь размер лота динамически… давай бота в ри… нама интереснее в разы
ves2010, Ну естественно, всю подноготную бота на Ri не смогу рассказать, но напишу скоро пост, где-то в таком же формате)
ves2010, по второму пункту — плечи…
SenSoR, Идея с клонированием конечно же хороша, но тут есть свои подводные камни, такие как корреляция доходности этих роботов, и ни кто не застрахован от одновременного распила этими роботами, как в пример приведу тебе страховой бизнес который цветет и пахнет, хотя шанс того что твой дом сгорит ограбят или машина не очень то и высок)
avatar

Aero

Андрей Ерохин, Конечно. Раскорреляция у клонов будет по времени, а не по типу. Если тренд вверх, то и все клоны встанут вверх, но в разное время. Тут для страховки нужны боты по типу.
SenSoR, нужно смотреть как они ведут себя на не трендовых участках все вместе.
avatar

Aero

Андрей Ерохин, Скажу что по тем типам ботов, что у меня уже есть — одна половина пытается входить в надежде на тренд и ловят лося, вторая половина стоит курит в сторонке. Потом они меняются. Т.е. во флете обязательно кто-то курит, кто-то лезет на рожон. Но в тренде участвуют все)
ves2010, там пробойка лучше отрабатывает чем средние)
avatar

Aero

Press, Склееный фьюч с финама.
Здравствуйте, так как тут много спецов по торговым роботам, расскажите пожалуйста с чего начать обучение а главное на каких платформах и программах пишутся алгоритмы? Торгую руками в данный момент и хотелось бы освоить это ремесло.Спасибо! (и если можно то поподробнее)
avatar

Андрей

Андрей, Здравствуйте. Зависит от уже имеющихся знаний в области программирования. Если они есть, то можно начать с платформ: Amibroker, Wealth LAb, TS lab и проч. Если нет навыков программирования, то TS lab — Ваш выбор, т.к. там можно строить системы посредством логических кубиков)
Андрей, на велсе тоже можно строить системы и при этом не писать код)
avatar

Aero

высылайте мне ваш скрипт… прогоню на инструментах..
и только тогда смогу ответить на ваши вопросы )
в слепую сложно что то советовать
avatar

astray

Молодец! Уважаю алгоритмистов!
ЭЭЭЭЭдик, Спасибо!)
Автору респект… ты на правильном пути!
avatar

AlexD

AlexD, Благодарю)
а каков размер позиции или % от депозита при тестировании?
avatar

Ivor

Ivor, Размер позиции всегда динамический, в зависимости от текущей волатильности инструмента и матожидания сделки. Но даже если все боты зайдут с повышенным сайзом — ГО не будет превышать 50% депозита.
SenSoR, а мат ожидание как вычисляете? чем сильнее сигнал, тем больше мо?
avatar

Ivor

Ivor, Да, типа того)
SenSoR, а много параметров у системы?
avatar

Ivor

Ivor, 4
SenSoR, это многа очень…
ves2010, что поделаешь, таковы реалии сложной системы)
SenSoR, спасибо за интересный пост!
Меньше 1000 сделок за 5 лет со статистической точки зрения маловато… И, мне кажется, или на последнем скриншоте трейды сильно не в рынке?
SenSoR, Вы не хотите поучавствовать в закрытом тестировании нового ПО? Наша специализация это как раз бектест и оптимизация. Присутствуют мощные инструменты для анализа, высокая скорость тестов как на тиках так и на свечках и т.д. Перенести стратегию на наше API мы Вам поможем.
Картины оптимизации примерно такие:
www.softalgotrade.com/wp-content/uploads/2015/01/Selection.png
avatar

SoftAlgoTrade

SoftAlgoTrade, я могу поучаствовать. Что нужно делать?
avatar

Ivor

Ivor, нужен реальный опыт алготорговли, владение C#, так как стратегии пишутся на нем и непреодолимое желание ломать программное обеспечение)
Работа не простая как может показаться на первый взгляд, но в итоге вы получите мощный пакет программ со значительной скидкой, который уделает велс и амиброкер вместе взятых.
SoftAlgoTrade, c# как раз то, что нужно, я на нем и работаю. А есть возможность связки с квиком?
avatar

Ivor

Ivor, проторговщик через Квик еще в разработке, сам коннектор через lua уже имеется, допиливаем.
Сейчас нужно протестировать готовый софт.
Напишите на info@softalgotrade.com. Обсудим сотрудничество.
SoftAlgoTrade, отличный сайт с картинками животных и цветов!
avatar

Press

Press, мне тоже нравится) Мы еще не начали, сайт еще в разработке) Одноко 3 из 4 программ уже готовы! Сейчас занялись Проторговщиком.
Как доведем до ума, так заменим зверюшек и цветочки на соответствующий контент)
SoftAlgoTrade, На данный момент амиброкер одна из самых быстрых платформ общего пользования для тестирования ТС. Вы уверяете, что Ваша разработка будет намного быстрей?)
SenSoR, с амиброкер по скорости еще не сравнивали, но уверен, что точно сможем конкурировать! Проведена колосальная оптимизация процессов — многопоточное тестирование(процессор загружен на 90%-95%), низкое потребление оперативной памяти. Например, исторические данные подгружаются только один раз.
Так что даже на тиках очень хорошие показатели.
SoftAlgoTrade, Сейчас придет SECRET и раскритикует вашу платформу))
SenSoR, имеет на то полное право!) Время покажет) Надеюсь, мы скоро закончим и сможет открыть для общего доступа. Тогда уже пользователи сами скажут чего она стоит.
SoftAlgoTrade, Да, с одной стороны маловато, но с другой, ТС очень избирательна к сделкам и ищет только оптимальные точки входа. Меньше сделок — меньше комиссии, меньше выходов по стопу — меньше проскальзываний. А по поводу тестирвоания — подумаю. Пишите в личку если что.
SoftAlgoTrade, Я оптимизирую ТС только генетикой
SenSoR, Нет генетики, нет монте карло, нет методов отжига и прочих. Есть нелинейная стохастическая оптимизация. Все эти алгоритмы близкие родственники и бессмысленно говорить кто из них лучше, а кто хуже. Вопоос в том как их правильно применить к конкретной задаче...
Наш алгоритм это гибрид генетики и монте карло с высокой степенью гибкости.
Вот описание настройки:
www.softalgotrade.com/settings-discoverer/
Может показаться сложным, но это только кажется)
SoftAlgoTrade, Понятно, посмотрим)
SoftAlgoTrade, прочитал инфу по Вашей ссылке.
Не понятно, какую целевую функцию Вы максимизируете. Она одна или их несколько. Есть ли несколькокритериальная оптимизация. Также не увидел анализа устойчивости найденных экстремумов.
Такое ощущение, что Ваш метод недостаточно проторгован, и Вы решаете задачу скорее абстрактную, чем реальную.
SergeyJu, По вышеуказанной ссылке инструкция по настройке параметров оптимизации. Я ее выложил для коллег участвующих в тестировании. Она, конечно, не дает никакого представления об оптимизаторе в целом.
Есть старенькая статья, там описывается концепция оптимизатора:
softalgotrade.com/kak-ya-sdelal-tester-optimizator-dlya-naxozhdeniya-pribylnyx-strategij-na-birzhe/

Сейчас оптимизатор совсем другой, он уже «матерый зверь»)))

Целевых функций на выбор 7:
— PnL,
— Maximun DrawDown,
— Expected Value,
— Winning Trades,
— Profit Factor,
— Sharpe Ratio,
— Sortino Ratio.

До 8 оптимизируемых параметров одновременно + можно сразу на нескольких таймфреймах оптимизировать. Итого 9 параметров.

На устойчивость проверяется методом Walk Forward на исторических данных не участвующих в оптимизации(OutOfSample).

Все процессы полностью автоматизированы с высокой глубиной настройки.

Подробное описание, примеры и инструкции появятся после завершения тестирования.
SoftAlgoTrade, прочитал. Интересно.
SenSoR просколзь какой заложен на тестинге? можно узнать?
avatar

usertrader

usertrader, Входы и выходы производятся на закрытии свечи, что почти превращает проскальзывания в случайное блуждание. (Например я не редко вижу проскальзывания в мою сторону). Стопы срывает крайне редко — чаще система сама выходит из рынка по сигналу на закрытии свечи. Если сделать торговлю лимитными ордерами, то она не сильно изменится в худшую сторону.
SenSoR, кстати, робот у вас луа/купайл, или со стороны подключается?
avatar

Ivor

Ivor, Amibroker + коннектор Amisharp
SenSoR, и как, надежно работает? не тупит?
avatar

Ivor

Ivor, Да, все работает как часы. Спасибо разработчику Амишарпа)
SenSoR, ок. огромное спасибо за ответы! попробую такой вариант.
avatar

Ivor

Ivor, Пожалуйста)
SenSoR, Вы можете посоветовать какую нибудь справку на русском языке для амиброкера, что никак не найду, либо все на английском, либо туториалы на старые версии.
Вчера все таки установил ами, первое что бросается в глаза по сравнению с велс лабом — высокая скорость работы и великое множество настроек.
avatar

Ivor

Ivor, Достаточно много инфы на русском тут amisite.ru/ еще есть на bot4sale.ru/forum/index.html
Ivor, сейчас Мультичартс.нет от АМП бесплатно www.ampfutures.com/platforms/
avatar

iuiu

iuiu, то что там с# это здорово.
а к квику можно сразу коннектиться через него?
avatar

Ivor

Ivor, если честно, хз, еще не разбирался, пока только поставил. Вроде привод какой-то есть
avatar

iuiu

я чёт не понял. зачем нам картинки?
где грааль?
avatar

MrDrJOKER

MrDrJOKER, Это пост о том, как тестировать ТС. Граали тут нет)
SenSoR, как-то вы не правы насчет проскольза — он реально есть. Я не знаю как с фьючами, а в акциях скажем сбер 0,06% иное уже до 0,1% не в пользу робота. Да он может быть как + так и — но он есть! И его надо учитывать — тем более если его учесть система станет более устойчевой к доходу.
avatar

usertrader

usertrader, В системах, работающих на пробоях, либо где есть частый вынос стопов, да, проскальзывание очень сильно влияет и его нужно учитывать и закладывать в систему как можно больше. В системах, работающих на закрытии свечи (как вход в сделку, так и выход из нее), и где вынос стопа — редкое событие, размером закладываемого проскальзывания можно пренебреч. Тут уже рандом, как в +, так и в — может быть, но лучше конечно задать некоторое значение проскальзывания против себя, для пущей уверенности)
SenSoR, системы были как раз на закрытие(открытие) свечки и причем разные — статистика очень бОгатая — разных системы разных авторов — причем сбер весьма ликвиден — большая часть систем была именно по нему в работе, опыт 2-х лет работы с роботами у меня между прочим — на реальных счетах. Так что проскольз есть и будет и считать его надо обязательно! И в целом получается в минус. Вот с фьючами сильно не давелось работать поэтому статистику не имею. Возьмите посчитайте системы с проскользом и без — результат может разительно отличаться!
avatar

usertrader

usertrader, Я уже все считал. И систему с проскальзыванием. И систему с лимитными ордерами. Не сильно результаты разнятся. Сильно начинают отличаться в тех системах, где прибыльных сделок 30%, а убыточные сносятся по стопам. Вот там да — проскальзывание все портит и я такую систему не ввожу в рынок. Чем больше кол-во прибыльных сделок — тем лучше для меня!
Саш, а обычный рабочий таймфрейм у тебя какой?
Артур Сотников, 15 мин, пока что. Планирую увеличивать в будущем)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP