Торговая стратегия Bugra на основе двойной кинетической скользящей средней

Автор:Чао Чжан, Дата: 2024-02-19 14:36:37
Тэги:

img

Обзор

Торговая стратегия Bugra - это стратегия, которая сочетает в себе индикатор OTT, разработанный моим дорогим учителем Анилом Озеки и индикатор Wavetrend Oscillator от lonestar108. Она формирует успешный торговый индикатор путем интеграции двух индикаторов. Стратегия может вести длинную и короткую торговлю на двусторонних рынках.

Принцип стратегии

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

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

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

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

Торговая стратегия Bugra сочетает в себе преимущества скользящих средних, полос Боллинджера и индикаторов OTT. Она может автоматически регулировать позиции стоп-лосса и снижать вероятность того, что будет инициирована стоп-лосс. В то же время, путем включения индикаторов оценки тренда, она избегает попадания в ловушку колеблющихся тенденций.

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

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

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

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

  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")


Больше