Стратегия прогнозирования волн Гаусса


Дата создания: 2024-01-22 12:37:07 Последнее изменение: 2024-01-22 12:37:40
Копировать: 0 Количество просмотров: 655
1
Подписаться
1617
Подписчики

Стратегия прогнозирования волн Гаусса

Обзор

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

Стратегический принцип

В основе этой стратегии лежит алгоритм Gaussian filter. Gaussian filter - это линейный гладкий фильтр, который использует Gaussian как вес. В стратегии параметр p задается как размер фильтрующего окна.[i] представляет собой результат, полученный после выполнения i-го гостских волн в исходной ценовой последовательности.

В стратегии применяется регрессивная мысль. Сначала используйте альфа и первоначальную ценовую последовательность price, чтобы рассчитать первую волну ret. Затем, основываясь на ret, выполните вторую волну ret2 и так много раз.

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

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

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

  2. Рекурсивное многократное фильтрование помогает лучше адаптироваться к ценовым тенденциям и лучше прогнозировать их.

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

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

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

Анализ рисков

Также существуют следующие риски:

  1. Гасковый фильтр сглаживает внезапные ценовые изменения и может пропустить краткосрочные торговые возможности.

  2. Существует риск пересогласования при многообразном совпадении. Если изменение модели ценообразования является внезапным, это может привести к снижению эффективности прогнозирования.

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

  4. Опирается только на цену открытия диска в качестве торгового сигнала. Не может совершать торговые операции на внутреннем диске.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

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

  2. В сочетании с большим количеством ценовых показателей и особенностей. Более богатый стратегический вход, который делает прогнозы более стабильными.

  3. Увеличение механизмов сдерживания убытков. Установка максимальной доли убытков, чтобы избежать серьезных убытков в экстремальных ситуациях.

  4. Оптимизация управления позициями. Динамическая корректировка позиций в зависимости от точности прогнозов и колебаний.

  5. Попытка прогнозирования на основе основных моделей машинного обучения. Модели глубокого обучения, такие как LSTM. Дальнейшее повышение способности к прогнозированию стратегий.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Gaussbot v1.0", overlay=true)

p = input(20, minval=1, title="Length")
price = input(open, title="Source")

pi=3.1415926535


w=2*pi/p
beta = (1 - cos(w))/(pow(1.414,2.0/3) - 1)
alfa = -beta + sqrt(beta*beta + 2*beta)
ret=  pow(alfa,4)*price+4*(1-alfa)*nz(ret[1])-6*pow(1-alfa,2)*nz(ret[2])+4*pow(1-alfa,3)*nz(ret[3])-pow(1-alfa,4)*nz(ret[4])
ret2 = pow(alfa,4)*ret+4*(1-alfa)*nz(ret2[1])-6*pow(1-alfa,2)*nz(ret2[2])+4*pow(1-alfa,3)*nz(ret2[3])-pow(1-alfa,4)*nz(ret2[4])
ret3 = pow(alfa,4)*ret2+4*(1-alfa)*nz(ret3[1])-6*pow(1-alfa,2)*nz(ret3[2])+4*pow(1-alfa,3)*nz(ret3[3])-pow(1-alfa,4)*nz(ret3[4])
ret4 = 3*ret-3*ret2+ret3


diff2 = nz(ret[1]) - nz(ret[2]) - (nz(ret[2]) - nz(ret[3]) )  
diff22 = nz(ret2[1]) - nz(ret2[2]) - (nz(ret2[2]) - nz(ret2[3]) ) 
diff23 = nz(ret3[1]) - nz(ret3[2]) - (nz(ret3[2]) - nz(ret3[3]) )  
diff24 = nz(ret4[1]) - nz(ret4[2]) - (nz(ret4[2]) - nz(ret4[3]) )  


longCondition =    price[0] - ret4[1]  > 0
shortCondition =  price[0] - ret4[1] < 0

if(longCondition and shortCondition)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]
if(longCondition==false and shortCondition==false)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]



if (longCondition==true and shortCondition == false) 
    strategy.entry("Gaussbot Long", strategy.long )
if (longCondition==false and shortCondition == true)
    strategy.entry("Gaussbot Short", strategy.short)