ALEXEY BURNAKOV
ALEXEY BURNAKOV личный блог
14 апреля 2016, 20:25

Для любителей 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.

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


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

Важен дизайн эксперимента: количество данных, разбиение выборки на части и проверка вне выборки. И т.д. по списку. 
Количество измерений в финальной модели должно быть просто сокращено до «разумного» списка. Незначимые можно удалить, чтобы не создавать воздушных замков.
38 Комментариев
  • Умно, красиво, автоматизируемо, но без методов и фоток бентли. То что ты крут, это супер, а в публичных деньгах это у тебя где? ПАММ? Мониторинг? 
  • Kerby
    14 апреля 2016, 21:42
    Аавтор напомните пожалуйста на каком месте Вы в рейтенге Форбс
  • Translator
    14 апреля 2016, 21:52
    Доходность при прогоне за год ничтожно низкая, порядка 6 — 4 %.
    На реале вообще может на быть. Тестировать надо, как здесь уже совершенно справедливо писали, по всем тикам.
    Напоминает советник 4indi.
    • Zoz
      14 апреля 2016, 22:19
      Translator, MQL язык программирования похожий на ассемблер, в нем реально сложно прибыльную стратегию запрограммировать. Результаты индикаторов в советнике, расчитанные двумя разными способами, дают разный результат, тогда-как, должны были дать один результат! — что-бы что-то запрограммировать, придется преспосабливатся если хочешь получить робота.
      • Translator
        15 апреля 2016, 05:44
        Laso, mql и ассемблер — языки абсолютно разного уровня и абсолютно не похожи!
        Все остальное тоже абсолютно не понял, что имелось ввиду.
        Многие индикаторы в mql уже имеются в виде готовых функций. Их достаточно типовыми командами вставить в код и подобрать параметры при оптимизации.
  • Чужой
    14 апреля 2016, 22:54
    Слово «форекс» у всех вызывает негатив
  • SMT
    15 апреля 2016, 00:11
    Для развлекательного трейдерского  сайта такие темы нетипичны — их не читают по причине нежелания напрягать атрофированный мозг.  
    А все самое крутое и интересное уже давным давно обсосано на
    forum.mql4.com/ru.
    //***************
     
      • Пафос Респектыч
        15 апреля 2016, 12:31
        ALEXEY BURNAKOV, твоя стратегия в том виде в котором есть торгует рандомно. Оптимизм преждевремеен. Но в целом направление в сторону комитетов моделей верное ) Картиночки опять же ) Плюсанул.
          • Пафос Респектыч
            15 апреля 2016, 19:05
            ALEXEY BURNAKOV, скорее нет признаков неслучайности. Стратегия со случайными входами-выходами нарисует такую эквити как на OOS тесте минимум один раз из десяти, а один раз из тысячи такая красота будет, что заглядение! Да и тот факт, что на каких-то инструментах выглядит посимпатичнее, а на каких-то нет, тоже как бы об этом и говорит. Вот тут я писал, как своих роботов на профпригодность проверяю: http://smart-lab.ru/blog/251938.php
              • Пафос Респектыч
                15 апреля 2016, 20:01
                ALEXEY BURNAKOV, коллега, ещё раз, медленно. Речь не о первом скриншоте с оптимизацией на истории, а о тех, где форвардное тестирование.
                  • Пафос Респектыч
                    15 апреля 2016, 20:39
                    ALEXEY BURNAKOV, не могу ничего особенного сказать о бэк-тесте. В том блоге да, речь о прогоне на тесте, но именно что форвардном. Смотреть на статистику на тех данных, которые использовались для оптимизации/обучения считаю бессмысленно.
      • SMT
        15 апреля 2016, 17:55
        ALEXEY BURNAKOV, тут очень интересная аудитория. В основном  торгующие вручную какую-то примитивную хрень и верующие, что причина их слива не в том что их стратегия -говно, а что все дело в психологии.)) Люди с внушительным стажем торговли, но до сих пор не осознающие куда попали.) 
        Алготрейдеров мало. 
        //*************
        По тесту ни чего не могу сказать пока что. Закономерность, скорее всего, есть.А вот будет работать за пределами тестера — не ясно.
        Пара дополнительных вопросов.
        1). 1 тест — так понимаю, пятизнак, тест проводился постоянным лотом =1  1usd MO=1п ?
        2) Стратегия использует входы «по рынку» (в данном случае на открытии бара), либо отложенные ордера?
         Похожий результат в тестере дают по парам EUR/USD & USD/JPY  пробойные стратегии. Например, на кажой вершине зиг-заг кидаешь стоп ордер,  при СЛ=ТП — получаешь похожий на Ваш результат. Но, на реале из-за проскальзываний не будет работать в +.
          • SMT
            15 апреля 2016, 18:54
            ALEXEY BURNAKOV, Ну, в таком случае, вполне достойный результат, считаю! 
            //******************
            EUR/USD*USD/JPY =EUR/JPY
            Пробовали ли применить данную стратегию к EUR/JPY?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн