Акакий Сигизмундович
Акакий Сигизмундович личный блог
18 декабря 2021, 11:16

Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)

Приветствую, глубокоуважаемые алготрейдеры.
Представляю вам довольно простую в понимании, и в осуществлении схему позволяющую из одного посредственного торгующего алгоритма построить целую торговую систему работающую на всех тикетах и рынках.
Что необходимо:
1. Подмешиваем шум (осуществляем дизеринг) в проверенный в работе алгоритм в виде внесения дополнительных данных: немного изменяем переменные, параметры, индикаторы, но в пределах работоспособности. Таким образом получаем несколько алгоритмов незначительно отличающиеся друг от друга на основе одного базового, в нашем примере будет 6( количество может быть любое). Оптимизируем их без комиссии что бы не уменьшать количество сделок, так как работа отдельного алгоритма нас не интересует.

Основной обработчик РТС:
Основной обработчик RTS
Обработчик SI:
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
Обработчик ED:
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)


2. Запускаем эти скрипты 1го порядка(обработчики) в торговлю в условиях лаборатории в режиме реального времени на настоящих котировках. Каждому скрипту в случае открытия той или иной позиции присеваем значение 1( или любое другое, зависимости от желаемого ранжирования, можно всем одинаковое, или каким то скриптам отдать приоритет с ранжированием 2 или 3)
3. Создаем скрипт сумматор 2го порядка( непосредственно осуществляющий торговлю), который собирает данные о наличие активных позиций в обработчиках. Суммирует, сглаживает( проводит ресэмплинг ) значения ранжирования и по достижении определенного порога суммы входит, а при снижении выходит из позиции. Проводим оптимизацию и уже только здесь устанавливаем комиссию в тестах.
Эффект переоптимизации отсутствует, так как сигнал на вход и выход не зависит от конкретного обработчика, оптимизируется сумма и они попеременно могут быть любыми в данный момент времени.

Получаем на выходе :
Торговля по всем инструментам идет с количеством лотов от 1-до 5( взависимости от суммы ранжирования), который торгуется отдельной сделкой без изменения количества. На схеме со сделками величина рейнджбара соответствует количеству одновременно открытых позиций( зеленые лонг, красные шорт) в обработчиках торгующих в лаборатории.

РТС комиссия 20п на сделку(40 на круг)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)

Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)

 Si комиссия на сделку 3 руб. Торговля внутри дня без переноса позиций
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
 
ED комиссия 2 шага цены( 0.0002)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
Грааль по всем тикерам и рынкам: Дизеринг с последующим ресемплингом (или система Акакия)
 На всех инструментах по факту торгует один и тот же алгоритм с незначительным добавлением шума.
Учитывая особенности пересчета обработчиков, главный скрипт получает сигнал на вход\выход только на следующей свече, таким образом исключены сделки на утренних и других гэповых свечах. Важно сделать тф торгующего скрипта в тестах  равным или большим чем в обработчиках, в противном случае будет заглядывание вперед. При реальной торговле нужно делать меньше например 1мин или 15 сек, что бы уменьшить задержки в сигналах.


Скрипты обработчики могут иметь одинаковый ТФ как в моем случае, или разный по типу стратегии трех экранов Элдера, торговля с переносом или внутри дня( можно сделать вход в позицию обработчиков в разное последовательное время) работает одинаково хорошо. Можно сделать так же 3 слой( скрипт 3 порядка) который обсчитывает скрипты 2 порядка. Все зависит от цели, фантазии и типа стратегии. Варианты комбинаций и количество обработчиков бесконечны.

25 Комментариев
  • О'Грин
    18 декабря 2021, 12:34
    схему позволяющую из одного посредственного торгующего алгоритма построить целую торговую систему работающую на всех тикетах и рынках.
     Такие завораживающе красивые тест-демо-эквити здесь регулярно публикуют продавцы боботов, у которых обычно нет денег на реальную торговлю. А те, кто в отчётах показывает примерно похожие профитные реальные эквити — боботов не продают...
     Парадокс! 
  • Replikant_mih
    18 декабря 2021, 13:27
    Поздравляю, вы только что изобрели для себя ансамбль моделей), а и заодно что-то типа метрики, определяющей вероятность (0-5). Тут вам и до ML рукой подать)) — ансамблевые модели типа бустинга, леса.

    Ну и это близко к теме торговли облака параметров, как-то так это алго-трейдеры зовут, вроде. Кстати, я бы убрал этап оптимизации отдельных стратегий и вообще этап оптимизации)). 

    И как результаты у такого подхода на OOS? Платформа на тестах это не позволяет определить, тока в торговле?

    Судя по описанию (хотя, как я сказал, тут много пересечений и с ML лесами и с облаками параметров) вы это сами придумали, скорее всего это говорит о вас как о креативно мыслящем человеке, в нашем деле это полезное свойство).
  • Roman Ivanov
    18 декабря 2021, 13:53
    Напомнило как рассуждали начальники с позапрошлой работы как прекрасно датасаенсом они будут контролировать нефтедобыча. Исходные данные скудны, датчиков много где нет или сломались.
    Но вот мы возмем пару каких то измеряемых параметров, построим модель, и она нам предскажет важный отсутствующий. О, теперь у нас есть важный параметр, тогда мы обучим модель и предскажем ещё один. И так далее из ничего у нас будет все!
    • Replikant_mih
      18 декабря 2021, 14:11

      Акакий Сигизмундович, Вы лучше на сообщение отвечайте, а не просто в теме). Иначе меня не уведомят об ответе. 

      OOS — out-of-sample — данные, которые стратегия при бэктесте, при оптимизации или обучении ещё не видела.

        • Bearminator
          18 декабря 2021, 14:57

          Акакий Сигизмундович, 

          Это ж Грааль! Срочно набрать кредитов на всю недвижку и на всех родственников. Через полгода на Гавайи со слугами и челядью уехать отдыхать))))

  • Roman Ivanov
    18 декабря 2021, 14:07
    А зачем склеивать сигналы стратегий по OR, если можно просто каждому варианту торговать малой суммой. А так не очевидно, почему OR лучше чем AND
  • GAURANGA
    18 декабря 2021, 14:21


  • Roman Ivanov
    18 декабря 2021, 15:01
    Выходит, что обманутые шумом модели будут давать ложные входы на всю катушку. Лучше уж каждой страте дать не большой объём. Чем увереннее ансамбль в успехе, тем на больший объём в сумме откроется.
      • Roman Ivanov
        19 декабря 2021, 20:44
        Акакий Сигизмундович, но если делаем OR, то направленность большинства не используем. Вот если как я предлагаю, давать каждой маленькую сумму, то другое дело.
    • GAURANGA
      18 декабря 2021, 17:38
      Акакий Сигизмундович, Напишите о чем речь? Дизеринг частично знаем что такое.
  • NeHonduras
    20 декабря 2021, 11:37

    Я правильно понял вашу идею?
    Возьмем для простоты один тикер.

    Берем какую-то одну  идею. На ее основе делаем 6 разных систем (просто с разными параметрами основной идеи). Но не торгуем эти 6 систем параллельно (как портфель), а собираем сигналы от них (-1,0,1) в едином скрипте. И уже в этом скрипте решаем, что если у нас появилось 4 сигнала (например), то встаем в лонг. Упало до 2-х сигналов — выходим из лонгов.

    Я корректно все описал?

    Если да, то используете ли какое-то дополнительное управление капиталом/ риск-менеджмент? Ну допустим, при 4 сигналах встаем одним сайзом, при 6 сигналах — уже другим.

    И спасибо за интересную статью!

      • NeHonduras
        20 декабря 2021, 13:15

        Акакий Сигизмундович, ага, спасибо за ответ!

        А можете чуть-чуть пояснить, почему пришли именно к такому решению, а не просто торговать портфель систем? Это как-то упрощает управление? Упрощает анализ? 

          • NeHonduras
            20 декабря 2021, 14:08
            Акакий Сигизмундович, По тестам и реальности торговле понял, спасибо.
            Не очень понял про устойчивость к обрывам связи и статичности условий. Откуда они берутся? Ведь все сигналы динамические все равно. У вас было 6, а когда станет 4 — еще неизвестно ведь? Или вы имеете ввиду, что просто реже сделки совершаются, и поэтому устойчивее? Например ряд может быть [6,5,6,5,5,5,5,6,5,4]. И если бы вы торговали портфелем классическим, то каждая [6,5] — это была бы сделка, а т.к. у вас шаг больше — то сделки реже?
          • NeHonduras
            20 декабря 2021, 14:11
            Акакий Сигизмундович, И самый странный вопрос — как вы в тслаб делаете переход на новый контракт? По каждой подсистеме получается отдельно руками?

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

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