bascomo
bascomo личный блог
26 июля 2023, 19:38

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

Subj

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

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

Напишу последовательность шагов ниже в виде скрипта.

  1. Создаём много разных стратегий, они же торговые алгоритмы. Если у вас меняются параметры, это один и тот же алгоритм. Я же имею ввиду, что они должны быть принципиально разные. Например: открываемся по пересечению МА, закрываемся по стохастику. Открываемся по RSI, закрываемся скользящим стопом. Открываемся по MACD, закрываемся по пересечению Close AMA и т.д.
  2. Тестируем их на разных инструментах и разных периодах. Дискретность можно выбрать месяц.
  3. Успешные запоминаем, даже если они были успешными только на одном инструменте и в одном месяце.
  4. Далее тестируем скользящим окном. Определяем дату начала, пусть 01.01.2023
  5. Определяем шаг (7 дн) и размеры окна (14 дн)
  6. Тестируем всё, что получилось в (3), на периоде в 14 дн до даты из (4), отбираем топ нужного количества по, например, прибыли (у меня сейчас так, и на графике ниже так). Например, вы выделили на инструмент депозит 1000 и хотите, чтобы у вас было 10 алгоритмов в лонг и 10 в шорт. Соответственно, отбираете 10 лучших лонг-алгоритмов по прибыли и 10 лучших шорт-алгоритмов. Понятно, что по части алгоритмов там будут гигантские просадки и вообще в выборку попадёт часть алгоритмов, которые нужно исключить, поскольку мы тут смотрим только на прибыль. Пока что на это забьём, ниже будет понятно, почему.
  7. После того, как отобрали нужное количество для лонг и шорт, с даты (4) торгуем ими на длину шага (5).
  8. В конце периода в 23:59 принудительно всё закрываем.
  9. Добавляем к дате (4) шаг (5) и повторяем с шага (6) до тех пор, пока дата не станет той, до которой хотели тестировать.
При таком подходе имеем на криптовалютных фьючерсах (плечо 10, стартовый депозит 1000, комисс 0,04%) следующий рост чистой эквити (+156% за менее чем полгода):
Как я пакетирую торговые алгоритмы

То есть, даже несмотря на тот ужас, что внутри под капотом (только по прибыли отобранные алгоритмы с большими просадками), видим уже неплохую картину роста. Если подбирать алгоритмы не только по максимальной достигнутой прибыли, но и по гладкости эквити и минимуму просадок, то этот посредственный результат увеличивается почти на порядок, примерно до 1200-1300% за полгода, а кривая становится практически прямой. Это упражнение я как раз и проделывал руками в начале июня на реальном счёте.

Если убрать плечи, то получится соответственно 15% и 120-130% за полгода.

Результаты получаются разными в зависимости от того, что мы зададим в (5). Общее правило — при увеличении длины отрезков доходность падает.

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

Дополнительно отмечу, что это всё работает на минутках. Там очень, очень много шума, но и доходность несопоставима с 15 или, тем более 60 и выше таймфреймами. И в этой концепции шум, как получилось в реальной торговле, не мешает. Нужно просто его правильно отфильтровать.

Для примера приведу описание одного алгоритма:
для покупки (все три сигнала должны стать истинны)
B:AMA/Close_AboveIndicator; — Close должна быть выше AMA
B:DeepExtremumHigh_AbsSpeedFall; — Абсолютное значение скорости индикатора DeepExtremumHigh падает
B:MACDCD_DirectionDown; — значение CD индикатора MACD уменьшается — кривая движется вниз

для продажи (все три сигнала должны стать истинны)
S:DEMA_AbsSpeedGrows; — абсолютная скорость изменения DEMA растёт
S:HMA/DEMA_CrossDown; — HMA пересекла DEMA вниз
S:Stochastic%K/Stochastic%D_CrossUpContinues; — последнее пересечение медленного стохастика быстрым (не важно, сколько свечей назад) было вверх

и это указывает, что этому алгоритму разрешён только лонг
M:LongAllowed;

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

И если после прочтения стало яснее, как я это делаю, то цель поста достигнута.
64 Комментария
  • Ho_Chu
    26 июля 2023, 19:47
    не ясно, но все равно, написано красиво!!!
  • ezomm
    26 июля 2023, 20:33
    Мне твоя цель  не понятна, Но я восхищен твоей работой.Ты напомнил мне меня в 2005 г.Цель любого поста на мой взгляд — это поиск советов.Тебе советы не нужны тк ты весь в работе. Ты делаешь то, что я делал в 2005г и горько пожалел за потерянное время. У меня мнение что программисты все похожи. Они в первую очередь любят программировать, а во вторую очередь понимать законы графика. Я не призываю штудировать Ганна про силу чисел и дней календаря (часов дня). Это не обязательно.Но понять свчной анализ… язык свечей очень важно… по моему 28 летнему опыту торговли.
    В 2005 г я познакомился с прогой Нирвана.Там из 400 разных систем и алгоритмов выходил 1 сигнал лонг или шорт. Боюсь тебя обидеть, но ты изобретаешь колесо… перебирая алгоритмы, индикаторы и системы.Проги ВА уже давно есть и они размечают график в любых таймах, но дают сотни вариантов с разной вероятностью и вверх и вниз.Я отказался от любых прог и инд-в в 2010г и советую это сделать всем в пользу VSA и ВА Эллиота.
      • Synthetic
        26 июля 2023, 21:09
        bascomo, 
        Я вообще думаю, что рыночная природа цен — это не про случайность и вероятность. Тут не про теорию вероятности, а про теорию хаоса.

        Вопреки устоявшемуся мнению, хаос гораздо проще для прогноза, чем случайный процесс. И вообще, вложенная размерность приращений биржевых цен обычно сильно больше характерной для хаотического движения. где-то 10-15 против 3-5 для хаоса.
        • ezomm
          27 июля 2023, 11:04
          Synthetic, о какой хаотичности речь? нет никакого хаоса.Кукл или мажер отклоняет цену от прямой линии в виде синусоиды. 4 цикла (360 гр ) складываются в 1… больший в 2 раза по амплитуде.Размер свечи растет в 2 раза через тайм.свеча 1 час в 2 раза меньше чем 4х час .
          Цикл времени = фрактал Эллиота 3-2 имеет закон своего рисования.Хаос тем сильнее чем меньше ликвидность те в малых таймах или в неликвидах.
      • Илья Нечаев
        27 июля 2023, 14:02
        bascomo, как у вас с ML? Есть небольшой грааль могу спалить.
          • Илья Нечаев
            28 июля 2023, 22:24
            bascomo, в личку смарт-лаб не дает вам написать, напишите мне плз на @wave_catcher
    • Илья Нечаев
      27 июля 2023, 14:01
      ezomm, VSA плюсую) в эту сторону копаю сейчас
  • Тимофей Мартынов
    26 июля 2023, 20:19
    Лайк однозначно👍
  • GOLD
    26 июля 2023, 20:44
    алгоритмы тестировали методом WFT?

    да или нет?

    если НЕТ, то тогда НЕТ доказательства работоспособности алгоритмов на незнакомых данных… а если его нет, то о чем спич?
      • GOLD
        26 июля 2023, 21:15
        bascomo, посмотрим через 5 лет)
  • Ho_Chu
    26 июля 2023, 21:01

    внимательно перечитал п.1 и если все так, как описано в нём, плюс к тому, если нет проверки на устойчивость решения, то можно сделать вывод, что все получаемые решения могут являться случайными

     

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

    есть довольно точная наука, именуемая математикой, и если её игнорировать, то можно очень сильно раскаяться в будущем

    переобученность ещё никто не отменял

    не обязательно, что это произойдет, тем более, если человек из 1 рубля умеет делать 441 рубль за 90 дней, но опасность такая всегда будет иметь место

     

    с третьей стороны, если человек умеет делать из 1 рубля целых 441 рубль за 90 дней, то зачем он всем рассказывает об этом?


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

    при этом никого не будет интересовать, как именно он это сделал ))) не так ли?
    лично я порадуюсь за него ))) и буду с особенным усердием перечитывать его посты, пытаясь понять то, что он не сказал ))

      • Ho_Chu
        26 июля 2023, 21:51

        bascomo, 

         

        лично я всегда радуюсь, когда кто-то достигает чего-то необычного!!!

        это значит, что на одного счастливого человека стало больше, а это — хорошо!!!

  • Zoran
    26 июля 2023, 22:19
    А такой вариант:
    1. Собираем пул робастных систем (очевидно их количество не тысяча).
    2. Оптимизируем параметры и таймфреймы за окно.
    3. Выбираем по ROA.
    4. Запускаем в следующем окне.

      • Errar
        26 июля 2023, 22:52
        bascomo, «B:MACDCD_DirectionDown; — значение CD индикатора MACD уменьшается — кривая движется вниз!» — разве у MACD нет параметров?
          • Errar
            26 июля 2023, 23:02
            bascomo, Кем рекомендованные? И если два два источника рекомендуют разные значения — выбираете какой-то один или используете оба как независимые индикаторы?
              • Errar
                26 июля 2023, 23:13
                bascomo, Так ведь в разных терминалах могут быть разные настройки или вообще не быть значения по умолчанию. Получается, итоговая система является терминалозависимой?
                  • Errar
                    26 июля 2023, 23:34
                    bascomo, Изобретатели «классических» индикаторов в до/раннекомпьютерную эпоху обычно работали с дневками. Для них 5 — это было число рабочих дней в неделю, 21 — в месяц и 200 — примерно в год (хотя в год рабочих дней побольше будет). Странно было бы придавать какое-то выделенное значение 200-минутному МА...
                    Но мысль понял: кидаем случайные параметры, но только один раз.
                    • ezomm
                      27 июля 2023, 13:26
                      Errar, ты задаешь умные вопросы.Я даю умный ответ -вместо числа надо поствить формулу расчета периода от 3 до 34 ..3 для супер тренда, а 34 для боковика.Формула будет плавно менять параметр.
          • ezomm
            27 июля 2023, 13:21
            bascomo, я рекомендую MACD 28,7,9 или  34,8,8
      • Тимофей Мартынов
        26 июля 2023, 22:58
        bascomo, 
         У систем нет параметров. Я пример алгоритма выше привёл.

        У MACD, AMA, HMA, DEMA, Stochastic нет параметров???? 
        • Тимофей Мартынов
          26 июля 2023, 22:58
          JC-trader ☮, а, опередили. Понятно, параметры по умолчанию :)
  • GAURANGA
    26 июля 2023, 23:44
    Это будет работать на волатильном рынке. И не важно какие фильтры вы используете. Просто попали в нужное время в нужном месте. Вола упала и все идеи стухнут. Эквити встанет, а то и начнет стагнировать. 
      • GAURANGA
        26 июля 2023, 23:49
        bascomo, так в этом и есть фишка. Пока будите искать и перепрыгивать движуха может закончится. Как говорится. Деньги приходят от туда от куда ты их не ждешь). То есть движение начинается внезапно и заканчивается так же.
          • GAURANGA
            27 июля 2023, 00:00
            bascomo, тут дело не в самом окончании движении на той или иной площадке, а дело в вашем тормозном механизме анализ+реализация. то есть вам сначала нужно в голове распознать какая фаза рынка сейчас и уже потом сделать действие, так вот. Рынок сначала делает действие а уже потом происходит сильный всплеск волы. Как-то так. Разумеется с текущим хаосом в мире можно и встать на путь хорошего тренда. Но стабильность будет часто ломаться.
              • ezomm
                27 июля 2023, 13:34
                bascomo, редкая дискуссия для Смарт лаба.Тут большинство не знает формул индикаторов и вообще законов графика. Но для роста надо быть критичным к себе и… учиться читать график по каждой свече.
        • ezomm
          27 июля 2023, 13:30
          GAURANGA, не внезапно, а в 3й волне.Максимум волы в середине 3й волны.
    • ezomm
      27 июля 2023, 13:28
      GAURANGA, перебором простых алгоритмов должен заниматься другой алгоритм типа ИИ, но все упирается в расчет периода колебаний а не волатильности.
  • Xaba3abr
    27 июля 2023, 17:17
    Бесценный пост, спасибо.

    На форексе не проверяли?

    Отдельно «радуют» комментарии. Человек по сути раскрывает полную рабочую методику. Комментарии ясно показывают, почему 95% людей так никогда ничего и не заработают.

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

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