Стратегия торговли с использованием скользящей средней Dual Momentum


Дата создания: 2024-02-19 14:36:37 Последнее изменение: 2024-02-19 14:36:37
Копировать: 1 Количество просмотров: 322
1
Подписаться
1179
Подписчики

Стратегия торговли с использованием скользящей средней Dual Momentum

Обзор

Двухдинамическая однолинейная торговая стратегия - это стратегия, в которой используются OTT-индикаторы и показатели колебателя Wavetrend. Она объединяет OTT-индикаторы, разработанные преподавателем Anıl Özekşi, и Wavetrend-индикаторы lonestar108, чтобы сформировать успешный торговый показатель. Эта стратегия может быть использована для многократного позиционирования на двусторонних рынках.

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

Сначала вычисляется средняя траектория по Бриньовой полосе, то есть движущаяся средняя MAvg. Затем, в зависимости от процентного диапазона и цикла, установленного пользователем, вычисляются длинные остановки longStop и короткие остановки shortStop.

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

Стратегия одновременно использует индикатор Wavetrend для определения направления ценовой тенденции, если она определяется как нисходящая тенденция, только не делайте больше; если она определяется как восходящая тенденция, только делайте больше, не делайте больше.

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

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

В частности, основными преимуществами этой стратегии являются:

  1. Автоматическая коррекция стоп-поста, эффективное управление рисками
  2. OTT-показатели позволяют более точно определить точку переворота
  3. Вместе с трендовыми показателями избегайте рыночных колебаний
  4. Правила относительно простые, понятные и простые в использовании

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

Существуют определенные риски, связанные с двунаправленной стратегией торговли в однородной форме, в основном в следующих аспектах:

  1. В экстремальных ситуациях стоп-линия может быть нарушена, что приводит к большим убыткам.
  2. Отображение отклонений в OTT-индикаторе может быть неточным и может привести к сбоям
  3. Также можно ошибиться в оценке трендов, потеряв больше, чем ожидалось, во время падения.
  4. Неправильные параметры могут повлиять на эффективность стратегии

Основные методы борьбы:

  1. Уменьшение размера стоп-линий, чтобы они не были легко активируемы
  2. Определяйте надежность OTT-сигнала в сочетании с другими показателями, чтобы избежать ложных сигналов
  3. Правильная корректировка параметров для более надежного определения тенденций
  4. Оптимизируйте параметры, чтобы найти оптимальную комбинацию параметров

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

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

  1. Можно рассматривать возможность использования в сочетании с другими показателями для повышения точности оценки сигналов.
  2. Можно изучить адаптивные алгоритмы стоп-ложа, которые позволяют корректировать стоп-линию в зависимости от степени волатильности рынка
  3. Добавление показателя объема сделок позволяет избежать ложных прорывов в низком объеме
  4. Вы можете проверить различные типы скользящих средних и найти наиболее подходящую среднюю.
  5. Можно попробовать такие методы, как машинное обучение, для автоматической оптимизации параметров.

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

Стратегия торговли двумя динамическими равнолинейными линиями объединяет преимущества различных показателей, может автоматически регулировать уровень остановки, определять обратные сигналы, идентифицировать направление тенденции. Она обладает сильными преимуществами управления рисками, легко понимает использование. Но также существует риск подпоры, неточности сигнала и т. Д. Эта стратегия может быть далее оптимизирована, использоваться в комбинации с другими показателями, исследовать алгоритмы самостоятельной адаптации и т. Д. В целом, стратегия торговли двумя динамическими равнолинейными линиями является практической стратегией торговли прорывного типа.

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

//@version=4
strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true)

// Kullanıcı Girdileri
length = input(5, title="Period", minval=1)
percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0)
mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])
wt_n1 = input(10, title="Kanal Periyodu")
wt_n2 = input(21, title="Averaj Uzunluğu")
src = close

// Tarih Aralığı Girdileri
startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)")
endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)")

// Tarih Filtresi Fonksiyonu
isDateInRange() => true
// Özel Fonksiyonlar
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = sum(vud1, length)
    vDD = sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    varResult = 0.0
    varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1]))
    varResult

Wwma_Func(src, length) =>
    wwalpha = 1 / length
    wwma = 0.0
    wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1])
    wwma

Zlema_Func(src, length) =>
    zxLag = floor(length / 2)
    zxEMAData = src + (src - src[zxLag])
    zlema = ema(zxEMAData, length)
    zlema

Tsf_Func(src, length) =>
    lrc = linreg(src, length, 0)
    lrs = lrc - linreg(src, length, 1)
    tsf = lrc + lrs
    tsf

getMA(src, length) =>
    ma = mav == "SMA" ? sma(src, length) :
         mav == "EMA" ? ema(src, length) :
         mav == "WMA" ? wma(src, length) :
         mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) :
         mav == "VAR" ? Var_Func(src, length) :
         mav == "WWMA" ? Wwma_Func(src, length) :
         mav == "ZLEMA" ? Zlema_Func(src, length) :
         mav == "TSF" ? Tsf_Func(src, length) : na

// Strateji Hesaplamaları
MAvg = getMA(src, length)
fark = MAvg * percent * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200

plot(OTT, title="BugRA", color=color.rgb(251, 126, 9))

// Alım ve Satım Koşulları
longCondition = crossover(src, OTT) and isDateInRange()
shortCondition = crossunder(src, OTT) and isDateInRange()

// Strateji Giriş ve Çıkış Emirleri
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")