Сергей Верпета
Сергей Верпета личный блог
18 июня 2015, 14:32

Тема дня # 25. Попробовал я тут поизучать алгоритмы

Ковырялся долго. Сваял некий алгоритм. Ну не знаю может это даже и не алгоритм, а так...
Просто, пока это для меня — terra incognitta, хочу хоть какие-то знания получить.
Алгоритм трендследящий. Период наблюдения 1000 баров.
Ниже на рисунке представлен график equity на исторических данных

Рисунок  Кривая капитала по стратегии

Тема дня # 25. Попробовал я тут поизучать алгоритмы


что смущает во всей этой истории?
  • срок жизни этого алгоритма?
  • как понять, что алгоритм перестал работать? как просчитать возможный срок жизни любого алгоритма? даже перспективного
  • почему этот алгоритм на исторических данных только по одному инструменту мне нравится, а по другим инструментам нет?
  • почему убыточных сделок по количеству больше, а стратегия всё равно приносит прибыль?
  • как найти инструмент с отрицательной корреляцией к моему отобранному инструменту, т.е. сделать пару, работающую в противофазе?  и с помощью какого инструментария  сделать этот подход по формализованным критериям, а не на глазок?
  • увеличит ли это прибыльность стратегии? снизит ли риск?
  • почему оказалось всё так просто?
41 Комментарий
  • Дмитрий
    18 июня 2015, 14:42
    Рассмотрите на чем основан адгоритм. Если вариант типа «стохастик там, то входим, rsi тут, то выходим», то просто подгонка под историю в 1000 баров. Тем более, как выше отметили, беры к сделкам отношения не имеют.
  • Денис Михайлов
    18 июня 2015, 14:54
    По последнему Пункту скажу, что все не просто) Пройдет ни один год изучения алгоритмов и Вы это тоже поймете
  • John Smith
    18 июня 2015, 14:57
    — как понять, что алгоритм перестал работать?

    исчезла неэффективность которую он эксплуатировал/изменилась регуляция рынка

    — почему этот алгоритм на исторических данных только по одному инструменту мне нравится, а по другим инструментам нет?

    скорее всего потому что алгоритм г.

    — почему убыточных сделок по количеству больше, а стратегия всё равно приносит прибыль?

    потому что прибыль больше убытка

    как найти инструмент с отрицательной корреляцией к моему отобранному инструменту, т.е. сделать пару, работающую в противофазе?

    с помошью ПО

    увеличит ли это прибыльность стратегии? снизит ли риск?

    Нет

    почему оказалось всё так просто?

    потому что все это г.
    • buyandsell-ru.com
      18 июня 2015, 15:24
      John Smith, С одним не согласен. Алгоритм не обязан работать на других инструментах. Ведь есть принципиально НЕтрендовые инструменты.
      • John Smith
        18 июня 2015, 15:30
        buyandsell-ru.com, ну если говорить про трендовую стратегию то наверное да.

        Со своей колокольни ляпнул.
        • buyandsell-ru.com
          18 июня 2015, 15:41
          John Smith, Многие «истины» почерпнуты из книжек 100 летней давности, когда еще графики не умели рисовать) Оттуда же «истина» что систему надо тестить на 12 инструментах. С тех пор инструменты стали «уметь становиться эффективными».
          • John Smith
            18 июня 2015, 15:46
            buyandsell-ru.com, ну я на 40 000 примерно тестаю ((

            PS: речь про US рынок конечно.
        • buyandsell-ru.com
          18 июня 2015, 16:18
          Сергей Верпета, лет 5 смотришь на графики и все ;)
  • Антон Ш.
    18 июня 2015, 14:58
    — Срок жизни алгоритма — это не скажет никто, можно даже не гадать, умрет, когда уйдет неэффективность на которой основан алгоритм, а узнать это можно, только по факту.
    — Кстати, для не нужно искать инструмент с отрицательной корреляцией (-1) достаточно всего лишь чтобы она просто отсутствовала (< 0.5 > -0.5).
  • Антон Ш.
    18 июня 2015, 15:03
    Лично, я еще ни разу не встречал алгоритм, который хорошо работал если, не на всех, то хотяб на большинстве инструментов. Обычно на паре-тройке, результаты хорошие, а на всех остальных — средней уёвости.
  • Cristopher Robin
    18 июня 2015, 15:10
    Все просто потому что выборка не репрезентативна. Суля по графику алгоритм не стабилен, подобный график мог показать и генератор случайных ставок.
  • Глыба Денег
    18 июня 2015, 15:15
    А какие параметры можно подгонять в системе? У меня сейчас алгоритм будет готов, так там кроме стопов ничего подгонять не нужно…
  • GSV_pusher
    18 июня 2015, 15:19
    Вам нужно обучение. Ваши вопросы настолько фундаментальны, что в формате комментов к посту вряд ли вам дадут исчерпывающие ответы.
  • John Smith
    18 июня 2015, 15:20
    Алго должен удовлетворять следующим условиям (никому не навязываю, лично мой фильтр)
    — количество вин трейдов > 65%
    — PF>2.5
    — average win/average loss >1.5
    — средний трейд >1.5%
    • Антон Ш.
      18 июня 2015, 15:23
      John Smith, Скажите, сколько у вас систем, соответствующих этим условиям?
      • John Smith
        18 июня 2015, 15:25
        Антон Ш., три и еще парочка в разработке
          • John Smith
            18 июня 2015, 15:45
            Сергей Верпета, это так себе цифры — есть парни и покруче
    • John Smith, я бы сказал, что количество вин-трейдов должно быть больше 75.
  • Werner Heisenberg
    18 июня 2015, 15:26
    про количество убыточных сделок все просто, их на самом деле не должно быть мало, реально в 30% профитных сделок все и происходит. Тут дело в том, когда ты убыток закрыл и когда закрыл профит и почему.
  • Lazz
    18 июня 2015, 16:04
    С чего вообще советую начать

    1. Сделок мало. Расширить горизонты.

    2. Чтобы алгоритм был надежный уменьшайте количество
    параметров. Если вы убираете некий параметр-фильтр вообще, а алгоритм «ухудшается» всего лишь вдвое, смело выкидывайте это фильтр

    3. Чтобы алгоритм прослужил дольше выбирает те значения параметров которые стоят в центре целого поля положительных результатов, а не хвосты.

    Например
    параметр1 — [1..100]
    параметр2 — [1..100]
    Т.е у вас 10000 возможных комбинация.
    Нужно выбрать ту комбинацию у которой изменение параметра на +-10 не заводит алгоритм в минус.

    4. Сравнить жизнеспособеность алгоритмов «на коленке» можно примерно так
    Робот1 — имеет два параметра
    параметр1 — [1..100]
    параметр2 — [1..100]

    Робот2 — имеет три параметра
    параметр1 — [1..20]
    параметр2 — [1..20]
    параметр3 — [1..20]

    Робот1 — 10000 комбинаций
    2000 — ведут в плюс, т.е. 20% плюсовых

    Робот2 — 8000 комбинаций
    1000 — ведут в плюс, т.е. 12,5% плюсовых

    20% больше 12.5% — первый лучше.

    Т.е. делаем такое допущение:
    «Параметр который работал последний год был именно такой случайно, наследующий год „повезет“ другому значению параметра. Чем больше значений параметра дающих плюс, тем более вероятно что „повезет“ и нам»

    5. Работать чисто на живучись алгоритма.

    6. Коррелирующий алгоритм — это хорошо.
    Искать чисто в уме.
    Считать корреляцию в компе. Уже писали меньше 0.5 — это хорошо.

    7. Если вы делаете роботы для себя а не на продажу,
    читать много про «переоптимизацию» и «подгонку»

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

    8. Читать книги. Все велосипеды давно изобретены.




    Я полностью осознаю что все пункты очень спорные.
    Но это лучше чем ничего. С этого можно начать, с этим можно жить и работать.


  • Marcello
    18 июня 2015, 16:14
    как понять, что алгоритм перестал работать?

    как вариант: смотреть некоторые показатели типа просадки и макс.числа убыточных сделок подряд. Если на реале показатели хуже, то возможно что-то пошло не так.
  • day0markets.ru
    18 июня 2015, 16:59
    1. Рассматривать алгоритм с таким количеством сделок вообще нельзя. Бросание монетки может дать такой же результат. Минимум должно быть 200+ сделок.
    2. Параметры. При таком количестве сделок их должно быть 0. Чем больше сделок, тем больше параметров вы можете использовать теоретически.
    • Marcello
      18 июня 2015, 17:57
      Alex Hurko, можете привести пример системы без параметров?
      • QJGlXS3Ars
        18 июня 2015, 19:30
        Marcello, считаем хаусдорфову размерность (через р-ть минковского либо через херста) инструмента, если много больше либо много меньше 1.5 — любая линейная модель
        • Marcello
          18 июня 2015, 19:35
          Arsen G, я так и подумал…
  • Макс
    18 июня 2015, 19:41
    Проблема в том что отправлять алгоритм в утиль вы будете во время просадки, а значит вероятно окажетесь в минусе даже если он зарабратывает хоть и немного.

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

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