Блог им. alexeymosc

Для любителей FX: оптимизация параметров модели


Значит, так — оптимизирую параметры стратегии.

Бек-тесты. Пока есть оптимизм относительно лишь двух инструментов: EUR/USD & USD/JPY.

Для любителей FX: оптимизация параметров модели

Для любителей FX: оптимизация параметров модели

То, что не видно на картинках:
одна сделка в рынке
длительность от 6 до 21 часа
стоп-лосс и тейк-профит есть для каждой сделки в пределах 100 пунктов

Форвард-тест за год:
Для любителей FX: оптимизация параметров модели
Для любителей FX: оптимизация параметров модели


В этом году начал торговать по этим системам на реале, но пока мало сделок.

К чему вообще пишу, кроме создания некоего пиара.

На этом сайте встречал интересные мысли в ходе обсуждения таких вопросов как «подгонка», «оптимизация», «машинное обучение».

Для любителей FX: оптимизация параметров модели

Вот как-то так машины дробят пространство векторов. Деревья решений делят пространство многомерными прямоугольниками, причем количество конечных нодов прямо указывает на количество полученных (непересекающихся) подпространств, где доля успехов достаточно велика для нашей задачи.

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

Комитеты моделей (Леса решений и т.п.) справляются с задачей лучше.
Для любителей FX: оптимизация параметров модели
Для любителей FX: оптимизация параметров модели

Множество наложенных прямоугольников позволяют аппроксимировать сложные формы.



Так вот, мы пытаемся отделить в своих стратегиях состояния рынка, в которых наши торговые приказы генерируют положительное МО.

С тестером стратегий, который встроен в платформы, например, в МетаТрейдер, мат.часть не менее интересна и сбрасывать такой подход со счетом было бы не оптимально.

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

У меня генератор сигналов на buy & sell использует зеркально похожие значения, только с разным знаком. Соответственно, на двумерной поверхности получается так:
Для любителей FX: оптимизация параметров модели
Но что же за измерения использованы здесь?

Нужно понимать, что любой кусок графика котировочного процесса находится в бесконечномерном пространстве.

Выбор конкретных измерений для эксперимента — задача, лежащая целиком на плечах аналитика.

Но это не отменяет возможность поручить машине сделать некую черновую работу. Что имеется в виду? 

Аналитик может подготовить множество возможных измерений, которые, по его мнению, окажутся полезными (информативными для целевой переменной). В моем случае, к примеру, я взял глубину лага для оценки ценовых разниц. Но так как я не обладаю сакральным знанием о том, какой лаг окажется наиболее информативным, машина пробует их все.

Допустим, по оси х на рисунке лежит лаговое значение от 1 до 1000 минут, а по оси у — пороговое значение price return на выбранном лаге, пробитие которого приведет к приказу на покупку (и зеркально — на продажу).

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

Возможен случай, когда выборк измерений приведет к тому, что в любой локации плотность успехов будет одинакова плоха. То есть информационная нагруженность набора этих измерений будет близка к нулю.

Отмечу, что, несмотря на перебор большого количества возможных измерений, стратегия будет построена на весьма ограниченном наборе. У меня это 8 важных и еще 2 менее важных переменных (измерений).

Вернемся к тестеру стратегий для перебора параметров и сравним его с деревом.

Отличие самое важное одно: моя стратегия это единственный терминальный нод (прямоугольник), в котором достаточно много сделок.

Дерево решений и ансамбли на его основе создают много терминальных нодов, которые «упаковывают» точки в k измерений из n возможных. Например, n может быть равно 200, а терминальный нод №10 использует k = 5 измерениям. Но при этом K большое — общее количество задействованных измерений во всех ветвях дерева также будет много меньше 200.

Также, есть второе важное отличие, например, деревьев, и оптимизатора стратегий на основе ГА. Дерево — жадный алгоритм, приводящий всегда к одному и тому же результату, не всегда оптимальному. ГА может привести к разным результатам, при этом перебрав несколько субоптимальных.


В свете этих соображений хочу резюмировать, что метод оптимизации стратегий перебором параметров имеет место под солнцем. Принципиальные методологические его отличия от других методов машинного обучения не делают его чем-то принципиально худшим.

Важен дизайн эксперимента: количество данных, разбиение выборки на части и проверка вне выборки. И т.д. по списку. 
Количество измерений в финальной модели должно быть просто сокращено до «разумного» списка. Незначимые можно удалить, чтобы не создавать воздушных замков.
★3
38 комментариев
Умно, красиво, автоматизируемо, но без методов и фоток бентли. То что ты крут, это супер, а в публичных деньгах это у тебя где? ПАММ? Мониторинг? 
Самокритичный трейдер,
Спасиб. Я торгую в реале на ПАММ счете и с детальнейшим мониторингом. Как наберется 100 сделок (через примерно полгода) я выложу ссылки.
avatar
retail, МТ4 и МТ5 генерируют рэндом тики в пределах свечи. Зря вы про дурочка.
avatar
Андрей К, tickstory загружает тики с оанды, особо продвинутые роботостроители на FOREXe используют эти данные, что-бы котировки импортированные не обновились от брокера, запускают Metatrader 4 (в 5м если не ошибаюсь, котировки импортировать нельзя) без указания данных брокера и счета. Т.е. метатрейдер работает только для разработки и тестов. Tickstory из тиков с оанды генерирует все таймфремы которые поддерживает метатрейдер, поэтому генерации(«внутри бара и др."), после такой операции нет, — метатрейдер использует котировки сгенерированные tickstory.
avatar
Laso,
Это очень дельная инфа.
Я пробовал минутные данные таким макаром импортировать в МТ4 (мне точных минуток хватит) но терминал их не хочет брать, пока не разобрался.
avatar
retail, вы сказали про режим «все тики», я и прицепился. Я бы на вашем месте, не был бы так агрессивен.
avatar
Андрей К, У него нет ничего, критика пустое крючкотворство. Человек дело делает ширму нашего театра рыночных акул приподнимает.
Аавтор напомните пожалуйста на каком месте Вы в рейтенге Форбс
avatar
Kerby, 
потом скажу. ) 
спс за улыбку.
avatar
Доходность при прогоне за год ничтожно низкая, порядка 6 — 4 %.
На реале вообще может на быть. Тестировать надо, как здесь уже совершенно справедливо писали, по всем тикам.
Напоминает советник 4indi.
avatar
Translator, MQL язык программирования похожий на ассемблер, в нем реально сложно прибыльную стратегию запрограммировать. Результаты индикаторов в советнике, расчитанные двумя разными способами, дают разный результат, тогда-как, должны были дать один результат! — что-бы что-то запрограммировать, придется преспосабливатся если хочешь получить робота.
avatar
Laso, mql и ассемблер — языки абсолютно разного уровня и абсолютно не похожи!
Все остальное тоже абсолютно не понял, что имелось ввиду.
Многие индикаторы в mql уже имеются в виде готовых функций. Их достаточно типовыми командами вставить в код и подобрать параметры при оптимизации.
avatar
Translator,
Посчитайте внимательно, арифметика рулит. Тест постоянным лотом. Умножаем максимальную просадка на 2. Это будет расчетный начальный депозит с заложенным буфером под бОльшую просадку. Поделитесь чистую прибыль на расчетный начальный депозит. Поделите на 15 лет. Получите около 50% в год. 

Вы, я так понял посмотрели на мой указанный в тесте начальный депозит и сделали все выводы. А если я люблю оптимизировать с депозитом 1 миллиард? В общем, депозит или торгуемый объем подбирается с учетом максимального допустимого риска.
avatar
Слово «форекс» у всех вызывает негатив
avatar
Чужой, 

А слово биржа — сладкое томление в предвкушении больших денег. )
avatar
Для развлекательного трейдерского  сайта такие темы нетипичны — их не читают по причине нежелания напрягать атрофированный мозг.  
А все самое крутое и интересное уже давным давно обсосано на
forum.mql4.com/ru.
//***************
 
avatar
SuperMegaTrader,
Я и сам оттуда. Просто пытаюсь понять, есть ли здесь интересная аудитория.
avatar
ALEXEY BURNAKOV, твоя стратегия в том виде в котором есть торгует рандомно. Оптимизм преждевремеен. Но в целом направление в сторону комитетов моделей верное ) Картиночки опять же ) Плюсанул.
Zweroboi, 

Почему так считаете? Есть ли признаки какие-то рандомности?

Я реально хочу чему-то научиться. Просто сам я не могу дать финальной оценки своей системы без хотя бы годового реал-тестирования. А вы видите рандомность. Как?
avatar
ALEXEY BURNAKOV, скорее нет признаков неслучайности. Стратегия со случайными входами-выходами нарисует такую эквити как на OOS тесте минимум один раз из десяти, а один раз из тысячи такая красота будет, что заглядение! Да и тот факт, что на каких-то инструментах выглядит посимпатичнее, а на каких-то нет, тоже как бы об этом и говорит. Вот тут я писал, как своих роботов на профпригодность проверяю: http://smart-lab.ru/blog/251938.php
Zweroboi, 
скорее нет признаков неслучайности. Стратегия со случайными входами-выходами нарисует такую эквити как на OOS тесте минимум один раз из десяти, а один раз из тысячи такая красота будет, что заглядение!

Коллега, боюсь огорчить вас. Статистика с вами не согласна.

Смотрите мой первый скриншот. У меня средняя сделка убыточная и прибыльная равны 50 (пунктам). Соответственно, я перебиваю спред и зарабатываю на перекосе вероятности 56.07%.
Что такое случайная система? Бросаем монету и случайно входим с тейком/стопом равным 50 пунткам. Даже без учета того, что есть некий спред, давайте прикинем точно, какие шансы есть у случайной системы сгенерить мат.ожидание как у меня или лучше.

Смотрим код на R:

> sum(dbinom(744:1327, size = 1327, prob=1/2))
[1] 5.480382e-06


Прокомментирую. Я пользуюсь биномиальным распределением (вики в помощь), чтобы посчитать вероятность того, что при априорной вероятности успеха 50% (без учета спреда), система за 1327 сделок сделает 744 прибыльных (0,5607).

Вот это число — p-value = 5.480382e-06 (0.0000055) — вероятность такого события (744 или больше успехов) или, если говорить о шансах, то это будет 1 к 182,469.

А если мы еще приблизимся к реальности, и возьмем, что априорная вероятность достичь тейк-профита с учетом спреда случайной системы = 49%, то тут вообще карнавал:

> sum(dbinom(744:1327, size = 1327, prob = 0.49))
[1] 1.485106e-07


Переводя в шансы, 1 к 6,733,526.

Так что, ваши слова весьма далеки от истины. Надо подтянуть матчасть.

Про остальное — почитаю, спасибо.
avatar
ALEXEY BURNAKOV, коллега, ещё раз, медленно. Речь не о первом скриншоте с оптимизацией на истории, а о тех, где форвардное тестирование.
Zweroboi, 

Аа, пардон, это я пропустил. Прошу прощения.

Я и не говорю, что это финальное доказательство — мой форвард. Какова будет мощность у теста для такого небольшого количества наблюдений? Предположу, что низкая. 

Форвард будет продолжен.

Вы лучше выскажитесь о бек-тесте.

Вы в своем блоге, который я с интересом читаю, ведь пишите о прогоне на тесте?

А с форвад-показателями я сам прекрасно разберусь. Чо там — тупо статистика.
avatar
ALEXEY BURNAKOV, не могу ничего особенного сказать о бэк-тесте. В том блоге да, речь о прогоне на тесте, но именно что форвардном. Смотреть на статистику на тех данных, которые использовались для оптимизации/обучения считаю бессмысленно.
Zweroboi,

Понял вашу мысль, Коллега. И подход ваш понял. Хорошо, согласен. Наподгонять можно и правда сильно.

Вот, думаю, можно ли для двунаправленных сделок такой стат.тест провернуть на форворде.
avatar
ALEXEY BURNAKOV, тут очень интересная аудитория. В основном  торгующие вручную какую-то примитивную хрень и верующие, что причина их слива не в том что их стратегия -говно, а что все дело в психологии.)) Люди с внушительным стажем торговли, но до сих пор не осознающие куда попали.) 
Алготрейдеров мало. 
//*************
По тесту ни чего не могу сказать пока что. Закономерность, скорее всего, есть.А вот будет работать за пределами тестера — не ясно.
Пара дополнительных вопросов.
1). 1 тест — так понимаю, пятизнак, тест проводился постоянным лотом =1  1usd MO=1п ?
2) Стратегия использует входы «по рынку» (в данном случае на открытии бара), либо отложенные ордера?
 Похожий результат в тестере дают по парам EUR/USD & USD/JPY  пробойные стратегии. Например, на кажой вершине зиг-заг кидаешь стоп ордер,  при СЛ=ТП — получаешь похожий на Ваш результат. Но, на реале из-за проскальзываний не будет работать в +.
avatar
SuperMegaTrader, 
По тесту ни чего не могу сказать пока что. Закономерность, скорее всего, есть.А вот будет работать за пределами тестера — не ясно.

Да. Я также думаю. Когда делаю подбор параметров, я сначала беру 7 лет последних, включая кризис 8-ого года. Если подобрать с 2009-го года, то на кризисе почти всегда жуткое падение.

Так вот, оставшиеся 7 лет до периода оптимизации использовал для backward-теста. В моих стратегиях там было красиво, росло довольно ровно.

Потом беру все 14 лет и дошлифовываю. 

Далее остается лишь реальный форвард.
Пара дополнительных вопросов.
1). 1 тест — так понимаю, пятизнак, тест проводился постоянным лотом =1  1usd MO=1п ?
2) Стратегия использует входы «по рынку» (в данном случае на открытии бара), либо отложенные ордера?
 Похожий результат в тестере дают по парам EUR/USD & USD/JPY  пробойные стратегии. Например, на кажой вершине зиг-заг кидаешь стоп ордер,  при СЛ=ТП — получаешь похожий на Ваш результат. Но, на реале из-за проскальзываний не будет работать в +.

Пятизнак. Спред 30 = 0,00030. Лот 0.1, соответственно USD1.00 = 0.00010. Мат.ожидание 64 пипетки (6 старых пунктов). Все сделано для того, чтобы заложиться на случай проскальзываний.

Входы отложенными ордерами, но не stop, а limit.

Стратегия на возврат тренда после микро-отката.

Про стоповую — пробойную — стратегию тоже знаю, но без зигзага.

Ну, в остальном, надеюсь, бронебойности хватит для реала. Сейчас реальные спреды по EUR/USD 10-20 пипеток, проскальзывания, правда, могут быть.
avatar
ALEXEY BURNAKOV, Ну, в таком случае, вполне достойный результат, считаю! 
//******************
EUR/USD*USD/JPY =EUR/JPY
Пробовали ли применить данную стратегию к EUR/JPY?

avatar
SuperMegaTrader,
EurJpy — Да). Этот инструмент показывает те же закономерности. Экспериментирую на нем.
avatar
retail, 
уважаемый студент,
если бы я был дурачком, я бы тихо сидел и сопел.
а вам домашнее задание: как так получилось, что на тиках тест нисколько не хуже (возможно, земля нашла на земную ось?). в общем, подумайте.
avatar
retail, 
ответ не верный. трейлингов нет.
avatar
retail, 
этот фактор не закладывался в логику. 
мы изначально начали с того, что тест на тиках это не уровень дурачка. тест на тиках есть. причем, я могу (но не буду) закачать реальные тики и сделать тест 99% точности. результат будет тот же. какие варианты, почему так?
avatar
В целом, мне было интересно почитать переписку к этой теме. Особенно полезными я считаю замечания про возможность загружать реальные тики и строить на них возможно более точные свечи...

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

Спасибо.
avatar

теги блога ALEXEY BURNAKOV

....все тэги



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