TS Terra Incognita Project #1: Конструктор Стратегий Трейдинга (Trading Strategy Constructor,TSC)

 

Содержание: 

         Опции

         Работа в Real Time

Работа в процессе

 

Краткий обзор: "Digital Fortress"

Сигналы Buy/Sell могут быть сгенерированы в модуле различными способами. Например, TSC (Trading Strategy Constructor) может генерировать сигналы, основанные пересечении разного рода moving average, или же на пробое ценового диапазона, или пробое RSI. Другие программы для финансового анализа (такие как Trade Station, Wealth Lab, Trade Studio и многие другие) также дают возможность работать с этими инструментами теханализа. Однако, есть и существенные различия:

  1. Принцип моделирования: Вместо того, чтобы трудиться над созданием все большего количества индикаторов, мы моделируем оживление на рынке и используем эти модели, чтобы генерировать сигналы buy/sell. Программа оптимизирует эти модели, проводит бэктестинг для них и предоставляет соответствующую статистику для сделок. Как пример, рассмотрите торговую стратегию Quantum; она предполагает существование некоторых наименьших значений/уровней перемещения тренда, моделирует эти значения и генерирует сигналы buy/sell согласно этой модели ("а-ля" квантовая механика для торговли).
  2. "Digital Fortress": Некоторые модели требуют большого количества времени для вычислений. Например, давайте рассмотрим сигналы buy/sell, основанные на средних скользящих. Самая важная проблема здесь - как избежать "будущих утечек"; чтобы решить ее, требуется куда большее количество вычислений, чем обычно. Мы разработали фантастически быстрый алгоритм, чтобы поддержать тестирование подобных моделей. Фактически, невозможно проводить такую работу, используя какие-либо другие программы.
  3. Back Testing: легко найти торговую модель, которая показывает очень хорошую производительность в прошлом; и намного труднее понять, когда эти модели перестают работать, и стало быть, пришло время переключиться на другую модель.

 

Определения

Торговая стратегия - это определенная система сигналов на покупку и продажу. Для примера, я буду использовать самую простую торговую стратегию, основанную на скользящих средних.    На рисунке ниже мы видим, как 20-ти дневная скользящая (обозначенная красной линией) пересекается с 50-ти дневной скользящей (синяя линия) индекса S&P500:

 

 

Как вы можете видеть, эта стратегия не все время дает стоящие сигналы buy/sell:

 

Timing Solution может работать и с другими стратегиями, и в дальнейшем их число будет только возрастать. На другом примере мы видим сигналы buy/sell, основанные на использовании квантовой стратегии:

 

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

 

Инвертированные модели. Сигналы покупки/продажи на предыдущих примерах были сгенерированы, используя так называемый запаздывающий тренд. Иногда мы могли бы получить лучшие результаты, применяя идею инвертированных сигналов, где верхний уровень принимается за нижний, и наоборот. Пример этой стратегии ниже:

 

 

Мы называем эти модели Инвертированными. В Теории хаоса есть специальное определение для данного явления; там подобное поведение называют антиперсистентным (в то время как данные, используемые для запаздывающих трендов, ближе к персистентным данным).

 

Определения для торговых стратегий (используемых в программе)

- запаздывающая трейдинговая стратегия, основанная на пересечении двух простых скользящих средних (SMA): быстрый период MA - 5 баров, медленный период - 10 баров

- Инвертированная модель, основанная на пересечении двух простых MA в 11 и 15 баров

- запаздывающая трейдинговая стратегия, основанная на пересечении двух экспоненциальных скользящих средних (EMA) с периодами в 4 и 9 баров;

- тройное пересечение скользящих средних, основанное на трех экспоненциальных скользящих средних: fast=7, middle=10, slow=100;

Здесь мы используем определение тройного пересечения скользящих средних (аналогия с двойным пересечением скользящих средних):

 

- запаздывающая трейдинговая стратегия, основанная на пересечении двух non lag скользящих средних с периодами 4 и 7 баров;

 

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

 

Быстрый старт

Давайте поработаем с этим модулем вместе.

Загружаем ежедневные котировки для Мини-Фьючерсов S&P 500. Давайте попробуем самую простую стратегию, модель, где сигналы buy/sell сгенерированы пересечением двух простых скользящих средних: с периодом 5 у быстрой, и периодом 15 баров у медленной.

 Запустите модуль TSC, выберите стратегию "MA crossover" , заполните этот блок, с необходимой информацией о скользящих средних, и нажмите кнопку там:

 

Программа сразу выведет на Главном экране скользящие средние (красная - быстрая, синяя медленная) и соответствующие сигналы buy/sell:

Также вы видите кривую изменения стоимости активов для этой стратегии, и всю сопутствующую информацию (профит, убыток, win/loss ratio):

Если требуется найти пересечение линии закрытия и скользящих средних, установите значение для быстрой скользящей равное 1:

 

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

Просто нажмите кнопку ; программа проанализирует и выберет лучшие из многих. Кроме того, вы можете проанализировать все доступные торговые стратегии, кликнув на кнопку:

 

 

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

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

 

Как можно видеть на примере, в нашем случае оптимальная прибыль обеспечена стратегией, основанной MA cross (5,10 SMA). Эта модель  дает 181% профита (на отрезке в 10 лет) обеспечивая 68 % выигрышных сделок; средняя выигрышная сделка составляет 1,786$, в то время как средний размер проигрышной составляет 2,138$

На Главном экране Вы можете видеть кривую изменения стоимости активов для этой стратегии, а также все сигналы buy/sell, сгенерированные стратегией:

 

 

При обновлении котировок, программа повторно вычисляет сигналы buy/sell. Вы можете даже использовать эту систему в режиме реального времени; сигналы, сгенерированные ею, могут служить алертами buy/sell.

Я рекомендую просмотреть эти стратегии одну за другой, наблюдая, как изменяется кривая стоимости активов; программа каждый раз перерисовывает кривую изменения стоимости активов и сигналы buy/sell, когда Вы подсвечиваете другую стратегию. Таким образом, быстро и легко Вы можете просмотреть много стратегий, и выяснить, какая работает лучше в вашем случае.

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

Также полезна информация из столбца "Last W/L" - он показывает статистику последних десяти сделок:

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

Возможно, имеет смысл поработать со стратегиями, которые работают хорошо именно в последнее время. См. данный пример; здесь выбранная стратегия обеспечивает 7 выигрышных сделок против 3 неудачных:

 

 

Вы можете также сортировать стратегии по любым выбранным критериям:

 

Вся история сделок по стратегии доступна здесь:

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

 

Как найти лучшую торговую стратегию

Мне потребовалось много времени, чтобы прийти к заключениям о формальных критериях выбора торговой стратегии. Наконец, я понял следующее  - лучше использовать неформальные критерии. Интуиция здесь - ваш неоценимый помощник. Причина очень проста: человеческий глаз, в комбинации с интеллектом и торговыми навыками, способен уловить нюансы, которые фактически невозможно поймать при использовании лишь формальных критерий. Timing Solution (и модуль TSC в частности) обеспечивает очень легкий и удобный способ визуализации всей этой информация. В течение нескольких минут Вы можете просмотреть сотни торговых стратегий, чтобы получить должное впечатление от их работы. Здесь нет ничего мистического - просто программа выполняет некоторые задачи, которые на первый взгляд выглядят легкими, будучи чрезвычайно усложненным с формальной точки зрения.

Основные правила таковы:

#1) Следите за кривой изменения стоимости активов. Хорошая кривая изменения стоимости активов должна обеспечить устойчивый ежегодный (или ежедневный для дэйтрейдинга) растущий профит;

#2) Проверьте свою модель на изменениях трендах вверх и вниз, очень важно знать, как система преодолевает периоды с различными трендами.

#3) Периоды, когда торговая система не обеспечивает профита, не должны быть большими; особенно обратите внимание на последнюю ценовую историю;

#4) Будьте осторожны с параболическими/экспоненциальными кривыми изменения стоимости активов, когда изменения в профите становится очень резкими. 

Предпочтительно иметь дело со стратегией, которая обеспечивает устойчивую растущую кривую изменения стоимости активов, например, как вот эта:

 

Эта модель дает хорошую кривую профита в течение прошлых 5 лет; спад в конце 2008 - начало 2009 является разумной платой за суматоху на финансовых рынках.

А вот другой хороший пример:

 

 

Рассмотрим еще одну кривую изменения стоимости активов:

Эта кривая изменения стоимости активов обеспечила отличный профит во время Большого Финансового Кризиса. Однако, я был бы очень осторожен при использовании этой модели в дальнейшем. Обычно такие модели прекращают работать очень резко и внезапно.

Давайте рассмотрим еще одну стратегию:

Она обеспечила хороший профит до 2008; однако, с 2008 года ее показатели резко пошли вниз. Похоже, что на эту модель мы больше не сможем рассчитывать. 

 

Объединенные стратегии - доминантные стратегии

Идея объединенных стратегий очень проста: мы берем несколько хороших стратегий и заставляем их поработать совместно. Просто кликните на эту кнопку:

и через мгновение программа перерисовывает сигналы buy/sell и кривые изменения стоимости активов для этой объединенной стратегии. Информация относительно всех включенных в нее стратегий выведена на экран внизу окна:

Эта объединенная стратегия обеспечивает 124%-ый профит; и хотя просадка капитала (дродаун) огромна (34 %), она обеспечивает выигрышные сделки на 83.9 %.

Эта линия: представляет математические свойства объединенной стратегии. Программа выполняет очень сложные вычисления; для нашего примера она нашла 35 лучших пересечений скользящего среднего, которые обеспечивают лучшие кривые изменения стоимости активов на 100 интервалах баров, вместе с оптимальной прибылью и соотношением выигрышным к проигрышным. Программа пробует различные критерии (профит, win/loss ratio, фактор профита) на различных интервалах и в различных комбинациях; она сравнивает эти пересечения и находит лучшие параметры для объединенной стратегии, то есть стратегию, которая обеспечивает оптимальную прибыль.

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

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

Нажав на следующую кнопку, Вы можете вывести на экран динамику объединенных стратегий, то есть быть в состоянии видеть:

- новые стратегии в объединенных стратегиях;

- самую выгодную стратегию в объединенных стратегиях;

- и как доминирующие стратегии изменялись с течением времени:

 

Опции

Всегда обращайте внимание на настройки "Rate of trades":

Например, если Вы загрузили минутные котировки и ищете систему торговли, которая совершает одну сделку в течении каждых 2-6 часов, данная опция должен быть установлена как на изображении выше. Это означает, что сделки будут совершаться в этом диапазоне.

Также важна и эта опция:

Эта опция предназначена для настройки минимального изменения цены между последовательными сделками. Если это значение является слишком малым, есть риск столкнуться с эффектом "фантомных" сделок, как здесь:

 

Если Вы - дневной трейдер, поставьте галочку здесь:

 

Управление рисками и комиссия за сделки. С этой программой Вы можете применить методики управления рисками для своих стратегий, такие как ордера stop loss и stop limits. Также не забывайте устанавливать комиссию. Вы можете иметь неплохую систему торговли с достаточно хорошей валовой прибылью, однако, этот профит может быть сведен на нет из за высоких комиссий за сделки. Это особенно важно для дневной торговли. Таким образом, пожалуйста, определите параметры управления рисками и комиссию на этой вкладке:

Slippage. Разница в цене между тем, что вы рассчитывали заплатить, когда входили в рынок или выходили из него, и тем, что вы в действительности заплатили. Например, если вы пытались купить по 15, а в итоге купили по 15,5, то у вас было Проскальзывание  (Slippage) в полпункта.:

Проскальзывание зависит строго от Вашего брокера. В Timing Solution проскальзывание измеряется в барах.

 

Работа в Real Time

Вы можете использовать этот модуль в режиме реального времени.

На вкладке "Options" выберите эту строчку в меню:

 

 

- bar-by-bar позволяет обновлять сигналы buy/sell когда происходит обновление котировок;

 

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

 

- обновить сигналы B/S вручную выберите manually only,

 

(эта меню активировано, лишь когда Вы выбираете эту опцию):

 

 

Стратегии, используемые в модуле

Ниже список стратегий, которые доступны в этом модуле.

- средние скользящие: это классическая стратегия, основанная на пересечениях быстрых и медленных скользящих.

 

Вот параметры для стратегий скользящих средних:

Определите здесь периоды быстрых и медленных скользящих средних, а так же тип (простая/экспоненциальная) процедуры сглаживания.

Если Вы предпочитаете использовать самую простую стратегию пересечения цены и скользящего среднего, устанавливаете период для быстрой скользящей равной 1:

 

Вы можете также создать стратегию, основанную на тройных скользящих средних. Напримерё вот это классическое тройное скользящее среднее (Fast=4, Middle=9, Slow=18):

Если период среднего скользящего среднего обнулен, программа использует пересечение двух скользящих средних.

Вы можете оптимизировать тройные скользящие средние, выделяя этот элемент:

 

- non lag moving averages: эта стратегия основана на пересечении двух средних скользящих без лага (или значение "close" и среднее скользящее).

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

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

 

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

Как мы видим средние скользящие на предыдущем изображении фактически не указывают на сигнал покупки.

Параметры для средних скользящих без лага - те же самые, что и для классических средних скользящих.

- quantum strategy: эта стратегия предполагает существование наименьших количеств изменения тренда. Среднее скользящее Quantum показывает динамику цен с точки зрения квантовой арифметики:

 

 

Есть два параметра для квантовой модели:

 

Quantum - значение кванта; чем больше значение кванта, тем больше "шаг" в квантовом индикаторе среднего скользящего.

P данный параметр делает квантовое среднее скользящее более гладким.

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

 

Специализированные квантовые модели

 

Технический анализ в квантовых моделях

В этом разделе я объясню некоторые детали создания квантовых моделей, чтобы сделать Вас способными создать Ваши собственные квантовые модели. Как пример, рассмотрите True Range Breakout Model. True Range - различие между High и Low, это показывает насколько волатилен фондовый рынок в течение дня.

С точки зрения квантового модуля модели True Range Breakout сходны этому утверждению:

Когда истинный диапазон выше чем его средний уровень, тренд ИМЕЕТ ТЕНДЕНЦИЮ изменяться, таким образом, это потенциальная покупка или точка продажи.

Очень важный нюанс во фразе - "ИМЕЕТ ТЕНДЕНЦИЮ изменяться". Это означает, что тренд может измениться, а может и нет. Мы просто говорим здесь, что эти моменты важны, и мы должны обратить внимание на эти моменты, поскольку это - потенциальные моменты для принятия решений.

Что делает квантовый модуль? В этом определенном примере он рассматривает моменты, когда истинный диапазон выше чем его среднее значение; примененная квантовая модель показывает в эти моменты как точки, когда квантовое среднее скользящее перепрыгивает с одного уровня на другой, как здесь:

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

Если этот переход подтверждает существующий тренд, мы не предпринимаем никаких действий, поскольку тренд не изменяется. Однако, если переход происходит встречь существующего тренда, программа генерирует сигнал покупки или продажи, то есть эта квантовая модель видит, что тренд изменяется:

Это красота квантовой системы: мы рассматриваем моменты, когда тренд МОЖЕТ измениться, и программа обеспечивает "квантовый анализ" для этой системы (то есть находит значение квантов и фильтрации шума). Как результат Вы получаете сигналы buy/sell, а также кривую изменения стоимости активов, которая показывает прошлую производительность этой модели.

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

Прежде всего, Вы должны определить значение True range. Введите эту формулу (последовательно сделайте следующее):

 

Вы можете видеть, что истинный диапазон в основном экранирует:

 

Как мы видим переходы квантового среднего скользящего происходят, когда энергозависимость высока.

Мы называем эту функцию квантовая функция; она указывает на моменты когда квантовое среднее скользящее перепрыгивает с одного ценового уровня на другой. Другими словами эта функция инициировала переходы в квантовых средних скользящих.

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

В примере выше была рассмотрена True Range breakout model. В ней высокая энергозависимость инициировала квантовый сигнал, который может быть взят в качестве сигнала buy/sell. Есть также другие критерии инициирования квантового сигнала. 

До сих пор были три критерия инициирования квантовых сигналов в программе:

  1. В примере выше мы рассмотрели разновидность. Другими словами, когда True Range превышает некоторый определенный уровень, квантовое среднее скользящее переходит с одного уровня на другой. Вы не должны волноваться о том, каков этот уровень: во время процедуры оптимизации программа находит этот уровень автоматически. Значение этого уровня - статистическая СИГМА параметра, то есть отклонение от среднего уровня.
  2. Другая разновидность - критерий "Out of range": квантовое среднее скользящее перепрыгивает на другой ценовой уровень, когда True Range ВЫШЕ, или НИЖЕ среднего уровня. Другими словами мы ищем поворотные точки, когда энергозависимость слишком высока или слишком низка.
  3. Последний критерий является более подходящим для параметра TRENDING. Если первые два критерия анализируют квантовые функции, которые изменяются вокруг некоторого определенного уровня, этот критерий разработан для квантовой функции, у которой есть некоторый тренд. Квантовое среднее скользящее перепрыгивает на другой уровень, когда квантовая функция перемещается без коррекции на некоторое значение % вверх или вниз. Например, если мы устанавливаем Close 10 %, квантовый сигнал будет сгенерирован, когда цена перемещается на 10 % без коррекции:

         

Вы можете определить формулу самостоятельно. Ниже примеры, как создать квантовую формулу:

Пример A : формула основанная на Momentum

Начните с этого: абсолютное значение импульса превышает 3 средних уровня Сигмы:

 

Momentum термин, обозначающий индикатор, который показывает текущее изменение цены по сравнению с фиксированным периодом в прошлом.   Таким образом momentum может быть определен как:

CLOSE-CLOSE[1]

Таким образом переходы квантового среднего скользящего имеют место, когда абсолютное значение momentum высоко:

 

Если Вы хотите вычислить сглаженный momentum, то есть найти различие между текущей ценой и ценой за некоторое количество дней в прошлом, используйте эту формулу (в примере ниже - за 5 дней):

CLOSE-CLOSE[5]

Если Вы предпочитаете иметь дело с нормализованными значениями, то есть вычислять изменение цен в % (а не в $), используйте эту формулу:

 100*(CLOSE-CLOSE[1])/CLOSE

Вы можете вычислить momentum для значения HIGH, как здесь:

HIGH-HIGH[3]

или используйте смешанный momentum, как различие между текущим значением HIGH и значением LOW за 5 последних дней:

HIGH-LOW[5]

Вы можете также вычислить значение VOLUME для momentum:

VOLUME-VOLUME[1]

Вы можете использовать и более сложную формулу. Как пример, найдите квадратуру momentum SQR:

SQR(CLOSE-CLOSE[1])

Или абсолютное значение (положительное значение) ABS momentum:

 ABS(CLOSE-CLOSE[1])

Или квадратный корень абсолютного значения momentum SQRT:

SQRT(ABS(CLOSE-CLOSE[1]))

Пример B: Энергетическая формула 

Вам может понравиться, когда совокупная энергия Close увеличена на 5 %:

Я использую это определение:

энергия курса акций - квадратура momentum, то есть SQRT (CLOSE-CLOSE[1]). Снова, у этого есть аналогия в физике, где кинетическая энергия - суперпозиция массы и квадратура скорости, разделенной на два. Скорость - определенно momentum, но какова масса?

Я попытался использовать значение VOLUME в качестве массы, таким образом, под этой аналогией подразумевается текущая кинетическая энергия фондового рынка: (m*v^2/2):

SQR(CLOSE-CLOSE[1])*VOLUME/2  

Однако, я нашел, что эта формула без объема работает лучше (сглаживал momentum, который CLOSE-CLOSE[ 2]):

SQR(CLOSE-CLOSE[2])

Полная формула выглядит так:

SELF[1]+SQR(CLOSE-CLOSE[2])

Что такое SELF[i]? В вычислении совокупной энергии мы принимаем предыдущее значение нашей квантовой функции (то есть SELF[1]), и прибавляем это к текущей кинетической энергии фондового рынка (то есть. SQR (CLOSE-CLOSE[2])). Другими словами: совокупная энергия сегодня - сумма вчерашней совокупной энергии плюс энергия фондового рынка.

BTW, смотрите на кривую изменения стоимости активов, обеспеченную этой моделью: для SNP 500 мини-фьючерс контракт 100K это дает 312 K профита в течение 11 лет, соотношение выигрышных и проигрышных сделок составляет 74,6 %:

Как я проверяю свои формулы? Делайте так: введите формулу, затем нажмите кнопку "Optimization", чтобы рассчитать лучший квант, основанный на модели этой формулы и кривую изменения стоимости активов часов для этой стратегии. Затем попробуйте некоторую другую формулу..

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

BTW, вы можете видеть список всех их, нажимая на кнопку "f":

 

Пример C: Exponential moving average trend system

Впишите формулу TA_EMA(3) и в разделе trigger выберите Trend: 

 

Переход к другому ценовому уровню в квантовом среднем скользящем появляются, когда изменение значения среднего скользящего достигает некоторого определенного значения (кванта):

 

   

 

Другими словами, скорость сделки определена скоростью изменяющегося значения среднего скользящего.

Я рекомендовал бы изменить период среднего скользящего, и попробовать такие значения TA_EMA (3), TA_EMA (5), TA_EMA (10) и т.д.

Вы можете использовать простое среднее скользящее, например, TA_SMA (7), тем же самым способом.

Пример D: Система основанная на пробое RSI

Установите квантовую функцию в значении TA_EMA(14) и в поле Trigger выберите Out of range: 

 

Эта модель основана на классической системе, которая генерирует сигналы buy/sell, когда Relative Strength Index (RSI) пробивает уровни перекупленности/перепроданности. Но здесь мы комбинируем эту систему с квантовыми моделями, переходами квантового среднего скользящего к другому ценовому уровню, когда, когда RSI пробивает уровни перекупленности/перепроданности. 

Я рекомендовал бы изменить период RSI, установив параметры TA_RSI(7), TA_EMA(14), TA_EMA(30) etc.

Пример E: Система основанная на пробое полосы Боллинджера

Установите квантовую функцию в значении BOLLINGER_BAND(14) и в поле Trigger выберите Out of range: 

Это работает тем же самым путем - сигналы появляются, когда цена пробивает полосы Боллинджера. Я рекомендую попробовать изменить период для полосы Боллинджера.

Помните, что сигма (который является диапазоном для полос Боллинджера) оптимизируется программой автоматически.

Пример F: Система основанная на пробое дивергенции средних скользящих

Установите квантовую функцию в значении TA_EMA(7)-TA_EMA(20) и в поле Trigger выберите Out of range: 

Эта система совершает сделку, когда различие между двумя экспоненциальными средними скользящими достигает некоторого определенного уровня. Квантовые алгоритмы находят значение этого критического уровня.

Я рекомендовал бы изменить периоды средних скользящих. Также попытайтесь поиграть с дивергенцией между Close и средним скользящим, например: Close-TA_EMA (5)

 

Астроиндикаторы в квантовых моделях

Вы можете настроить квантовую функцию, используя планетарные позиции. Вы можете использовать следующие астроиндикаторы:

**************Geocentic position ***************

SUN: Sun position geo
MOON
MERCURY
VENUS
MARS
JUPITER
SATURN
URANUS
NEPTUNE
PLUTO

*************** Heliocentric position ****************

SUNH Earth position Helio
MERCURYH Mercury position Helio
VENUSH Venus position Helio
MARSH
JUPITERH
SATURNH
URANUSH
NEPTUNEH
PLUTOH

**************Declination***************

SUN_DEC :Sun declination
MOON_DEC :Moon declination
MERCURY_DECL Mercury declination
VENUS_DECL Venus declination
MARS_DECL
JUPITER_DECL
SATURN_DECL
URANUS_DECL
NEPTUNE_DECL
PLUTO_DECL

*************Geocentric for First price bar******************

SUN0:Sun position for FIRST price bar
MOON0:Moon position for FIRST price bar
MERCURY0:Mercury position for FIRST price bar
VENUS0:Venus position for FIRST price bar
MARS0:Mars position for FIRST price bar
JUPITER0:Jupiter position for FIRST price bar
SATURN0:Saturn position for FIRST price bar
URANUS0:Uranus position for FIRST price bar
NEPTUNE0:Neptune position for FIRST price bar
PLUTO0:Pluto position for FIRST price bar

*************Heliocentric for First price bar******************

SUNH0:Earth position Helio for FIRST price bar
MERCURYH0:Mercury position Helio for FIRST price bar
VENUSH0:Venus position Helio for FIRST price bar
MARSH0:Mars position Helio for FIRST price bar
JUPITERH0:Jupiter position Helio for FIRST price bar
SATURNH0:Saturn position Helio for FIRST price bar
URANUSH0:Uranus position Helio for FIRST price bar
NEPTUNEH0:Neptune position Helio for FIRST price bar
PLUTOH0:Pluto position Helio for FIRST price bar

Вы можете также создавать события, записывая их следующим образом: MERCURY[1]; это - позиция Меркурия, равной 1 дню назад (для ежедневных данных); или Меркурий [7] - позиция Меркурия для 7 дней назад. Ну а формула Mercury-Mercury[1] представляет скорость Меркурия.

Пример G: квантовая модель для Солнца

В этом модуле кванты моделируется период времени для Солнца, точнее для его перемещений на некоторое количество градусов.

Рассмотрим это квантовое среднее скользящее:

Квантовое среднее скользящее перескакивает на другой ценовой уровень, когда Солнце перемещается на 3.5 градуса своей дуги, а время отсчета начинается с предыдущего перехода. Другими словами, мы исследуем потенциальные поворотные точки для каждых 3.5 градуса продвижения Солнца.

Чтобы сделать вычисления для такой модели, введите эту квантовую формулу:

 

В поле Trigger укажите значение "Trend", потому что здесь мы имеем дело с постоянно увеличивающимся значением, коим является позиция Солнца в его продвижении по небосклону. После кликните на кнопку "Optimize", и квантовый алгоритм найдет оптимальный шаг перемещения Солнца. Результаты вычислений фиксируются в этой информационной панели:

 

Пример H: Модели пробоя основанные на скорости Меркурия

Идея этой модели состоит в том, что квантовое среднее скользящее перескакивает к другому ценовому уровню, когда скорость Меркурия высока (независимо от того, директен или ретрограден Меркурий). Квантовый алгоритм находит оптимальные значения критической скорости Меркурия. Чтобы создать эту модель, введите квантовую формулу в виде значения Mercury-Mercury[1] и в поле Trigger выберите  "Out of range":

Другая разновидность этой модели использует абсолютные значения скорости Меркурия (функция Abs) и "Above critical value":

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

 

 

Вы можете придать квантовой функции более резкий или более гладкий рисунок (на графике), используя в формуле значение Power:

Так вы можете увеличить количество сделок, которые совершает ваша модель.

Поработайте с этими разновидностями квантовых функций:

Power(Mercury-Mercury[1],0.1)

Power(Mercury-Mercury[1],0.2)

Power(Mercury-Mercury[1],0.5)

Power(Mercury-Mercury[1],0.75)

Power(Mercury-Mercury[1],1.5)

Power(Mercury-Mercury[1],2.0)

.....

Пример I: модель пробоя, основанная на разности скорости Меркурий-Венера

Эта модель работает точно тем же самым способом, как и предыдущая модель; различие в том, что мы используем следующую квантовую функцию:

 

Попытайтесь использовать две разновидности формулы: впишите значение Abs((Mercury-Venus)-(Mercury[1]-Venus[1])), а поле Trigger  выберите критерий "Above critical value":

Пример J: склонение Меркурия в наивысших значениях

Вы можете создать эту модель, выбрав любой из этих путей:

Или вот так:

 

Пример K: модель фазы Луны

Вы можете создать модель фазы Луны при помощи этой формулы (фаза Луны - угол между Луной и Солнцем):

Скорость сделок зависит здесь от фаз Луны.

Если вы хотели бы создать модель, которая производит сделки, по большей части, около Новолуний и Полнолуний, используйте эту формулу:

BTW, эта модель работает не плохо.

Наоборот, если вы больше интересуетесь моделью, которая не торгует  в дни, близкие к Новолуниям и Полнолуниям, установите квантовую функцию Sin(Moon-Sun).

Чтобы вычислить фазу Меркурия (и других планет), используйте различие между Гелио-Меркурием и Землей, то есть используйте эту формулу: MercuryH-SunH

 

Digital Signal Processing/MESA в квантовых моделях

Вы можете создать квантовую систему торговли, основанную на функции Digital Signal Processing (DSP). Вы можете читать больше о DSP здесь: http://www.timingsolution.com/TI/2/index.htm

Все функции DSP доступны через кнопку"f":

Пример L: Модель пробоя, основанная на доминирующем периоде цикла

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

 

Для данной модели вы должны задать критерии Above critical value. Квантовый алгоритм находит этот оптимальный уровень:

Это таблица означает, что лучшая торговая стратегия для нас обеспечена, когда мы торгуем на доминирующих циклах с периодом выше, чем в 28.5 бара.

Если вы предпочитаете торговать на краткосрочных циклах, установите "минус" для данной квантовая функции: -DSP_PERIOD

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

Пример М.: Совокупная квантовая модель для доминирующего периода цикла

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

Попробуем более внятную модель, которая будет торговать ЧАЩЕ на тех же самых долгосрочных циклах. Преимущество здесь в том, что мы можем инициировать в пять раз больше сделок на доминирующем цикле с периодом 50 баров, чем на доминирующем цикле с периодом 10 баров.

Вот как выглядит эта модель:

В этой формуле есть указание совершать сделки на всем интервале. Квантовая функция здесь использует всю сумму доминирующего периода. Чтобы улучшить эту модель, попытайтесь использовать функцию Power:

 

Я рекомендую изменять значение функции Power при помощи вспомогательных параметров:

Self[1]+Power(DSP_Period,1)
Self[1]+Power(DSP_Period,1.1)
Self[1]+Power(DSP_Period,1.2)
Self[1]+Power(DSP_Period,1.3)
Self[1]+Power(DSP_Period,1.4) 

etc.

Функция Power делает квантовую функцию более резкой.

Чтобы торговать чаще на краткосрочных циклах, попробуйте эту квантовую функцию:

Пример N: Фазовая модель Доминантного цикла

Модель доминантного цикла DSP может быть сравнена с прялкой, и скорость вращения этого колеса постоянно изменяется. Эта модель корректирует скорость сделок с фазой этого "колеса":

 

Например, квантовое среднее скользящее перескакивает к другому ценовому уровню каждый раз, когда это "колесо" проходит 120 градусов дуги.

В этом примере мы рассмотрели МГНОВЕННУЮ фазу. Используя DSP_DC_PHASE вы можете создать модель, которая использует фазу Доминантного цикла (это не то же самое, что и мгновенная фаза). Фаза доминантного цикла показывает, как цена воздействует на вращение этого "колеса".

Пример O: квантовые модели пробоя DSP

Эти модели работают тем же самым путем, что и модели пробоя RSI, то есть модель заставляет совершать сделку, когда RSI, или другой индикатор, фиксирует прорывы уровней перекупленности/перепроданности.

Мы можем создать систему пробоя, которая основана на индикаторе SinWave:

Оптимальный прогнозирующий фильтр

Адаптивная система пробоя RSI:

Relative Vigor index:

 

Работа в процессе (июль 2010)

System Quality Number (SQN)

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

Более высокое значение параметра означает более высокое качество системы торговли. Это таблица соответствия для SQN:

Значение SQN

Качество Системы

1.6-1.9

Poor but tradable (Плохо, но работает)

2.0-2.4

Average (Средне)

2.5-2.9

Good (Хорошо)

3.0-5.0

Excellent (Превосходно)

5.0-6.9

Superb (Просто отлично)

7.0-

Holy Grail (Священный Грааль)

Этот параметр был изобретен Van K. Tharp, см. его книгу "Super Trader".

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

Устойчивое решение

Мы должны начать думать не с точки зрения отдельной хорошей стратегии, а с точки зрения работоспособности технологии в целом. Я объясню эту проблему, используя следующей пример. В предыдущем разделе (Работа в процессе, май 2010) мы обсудили, как создать совокупную энергетическую модель:

После оптимизации программа вычислила одну очень хорошую стратегию, основанную на совокупной энергии: профит высок, SQN (системная добротность) превосходен. Теперь попытайтесь изменить один из параметров этой модели, позволив ей устанавливать сглаживание P фактор к числу 3; вы увидите, что это качество этой торговой стратегии значительно снижается:

 

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

От лучшей стратегии до лучшей технологии

Все, что было написано выше, касается нашей работы в поиске лучших стратегий. И программа разработана, чтобы найти лучшую стратегию. Это означает, что независимо от того, сколько стратегий рассматривается, программа выбирает лучшую. Как я упомянул выше, самая большая проблема с этим подходом в быстропроходящем эффекте. Чтобы избежать этой проблемы, мы должны изменить технологию поиска лучших стратегий.

Новый подход: после загрузки некоторых данных ( а именно минуток S&P e-mini фьючерса) , мы обращаем взгляд на стратегии, основанные на средних скользящих (мы не рассматриваем здесь стратегии других типов - только средние скользящие). Жмите сюда:

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

Другими словами, программа отбирает 28 лучших стратегий от 556 рассмотренных и вычисляет средний профит, просадку капитала(дродаун), и усредненную системную добротность. Такой подход дает более устойчивые результаты, чем работа с одной стратегией. К примеру, среди этих 28 лучших стратегий есть просто очень отличная с показателем SQN =4.29 и profit= K за 267$; однако, лучше сохранять спокойствие в ее отношении: нет гарантий, что она всегда будет выдавать подобные результаты.  

В процессе работы полезно варьировать значение вот этого параметра:

Поочередно установите минимальное изменение цен между сделками в значениях 0.5, 1.0, 1.5, 2.5, 3; нажав кнопку "Optimize", вы увидите, как меняется качество этих стратегий. Например, если вы устанавливаете минимальные параметры изменения к 2.4 %, вы получаете более высокий профит и более высокий SQN:

Однако, как мы видим, эта стратегия "слишком ленива": она совершает не слишком много сделок (win/loss ratio +78/-29 означает, что лишь 78+29=107 сделок были совершены). Это повышает вероятность того, что какая-нибудь случайная суперсделка резко повысит общие результаты данной стратегии. Лично я предпочел бы иметь дело с системой, которая генерирует больше сделок.

Поместите эти результаты в таблицу.

Завершив исследование для стратегий, основанных на средних скользящих, мы можем провести тот же самый анализ для стратегий средних скользящих без лага и прибавить эти цифры к таблице:

Как мы видим, результат не настолько хорош, как в предыдущем примере.

Затем мы можем попробовать стратегии, основанные на модели тренда Quantum:

 

А вот теперь мы видим лучший SQN =3.54 для параметра изменения = 0.5. Однозначно, это лучшая модель.

Теперь я рекомендую проверить работу Пользовательских моделей Quantum. Жмите сюда и проверяйте эти модели одну за другой (не забывая изменять параметр в поле Min. Change%):

Я выбрал модели, которые обеспечивают SQN 3 и выше.

Выбранная на рисунке выше формула показала такие результаты:

  SQN=3.06 Min change=2%

А модель, основанная на полоса Боллинджера, с периодом сглаживания=10, с пользовательской формулой, и min. change=1 %, так вот - эта модель обеспечивает значение SQN =3.32

 

  SQN=3.43 min change=1.5%

А вот заключительная таблица лучших стратегий:

S&P500 mini future DAILY

Model

Min Change(%)

Profit (x $1000)

SQN

MA crossover

2

226

3.31

Quantum (Trend)

0.5

234

3.54

Quantum (DSP: DC period accumulation)

2

208

3.06

Bollinger Band (10)

1

234

3.32

Quantum (DSP: Sinwave breakout)

1.5

234

3.43

 

 

 

 

 

 

 

 

 

 

 

 

 

Сергей Тарасов

Перевод Рамиль Халиков