Как структурировать динамическую последовательность логики для простого торгового алгоритма? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть некоторая торговая логика, которую я пытаюсь преобразовать в код на C ++. Торговая логика проста, но есть несколько различных комбинаций последовательностей разной длины, которые могут открывать один и тот же ордер. Чтобы дать вам пример с использованием некоторой фиктивной логики: я хочу идти долго на "BTCUSD", когда закрытие закрывается ниже 50SMA;с последующим следующим закрытием выше 50SMA;с последующим МИНИМУМ на 1 больше закрытия выше 50SMA или МАКСИМУМ на 3 бара закрытия выше 50SMA;с последующим закрытием ниже 50SMA;затем закрытие выше 50SMA.

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

Как мне подойти к этой проблеме и каков наилучший метод сравнения динамических последовательностей?

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

myDeque.push_front(Close < SMA);
sequence1 = 10010  // From left to right is the minimum sequence to go long
sequence2 = 100010
sequence3 = 1000010
// If the last 5 bars in the time series match sequence1: goLong
// If the last 6 bars in the time series match sequence2: goLong
// If the last 7 bars in the time series match sequence3: goLong

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

...