
Ini adalah strategi perdagangan terbalik berdasarkan indikator purata bergerak berganda. Strategi ini menghasilkan isyarat perdagangan dengan mengira purata bergerak dari dua set parameter yang berbeza untuk menilai trend harga berdasarkan perubahan arahnya dan menetapkan parameter sensitiviti perubahan arah.
Strategi ini membolehkan anda memilih jenis rata-rata bergerak (SMA, EMA, dan lain-lain), panjang dan sumber harga (harga penutupan, harga tipikal, dan lain-lain). Selepas mengira dua set rata-rata bergerak, anda dapat menentukan arahnya dengan menentukan reaksi parameter.
Selain itu, strategi ini juga menetapkan arah perubahan dan menentukan keadaan kenaikan / penurunan yang berterusan, untuk mengelakkan isyarat yang salah. Dan menunjukkan keadaan penurunan harga secara visual dengan warna yang berbeza. Apabila harga terus meningkat, garis movavg ditunjukkan sebagai hijau, dan apabila turun menjadi merah.
Strategi movvg berganda ini digabungkan dengan garis pantas dan perlahan yang ditetapkan dengan parameter yang berbeza, yang dapat menyaring dengan berkesan bunyi pasaran perdagangan gelombang, untuk mengenal pasti trend yang lebih kuat. Berbanding dengan strategi movvg tunggal, ia mengurangkan isyarat salah, yang dapat masuk ke dalam pasaran apabila trend lebih jelas, dan dengan itu mendapat peluang yang lebih tinggi.
Reaction parameter sensitiviti membolehkan strategi ini fleksibel untuk menyesuaikan diri dengan pelbagai kitaran dan varieti. Proses strategi mudah difahami, mudah difahami dan dioptimumkan.
Risiko terbesar dalam strategi ini adalah kehilangan atau membuat kedudukan terbalik dengan kehilangan titik peralihan. Ini berkaitan dengan parameter reaksi. Jika reaksi terlalu kecil, ia mudah menghasilkan isyarat yang salah; jika reaksi terlalu besar, ia mungkin kehilangan titik masuk yang lebih baik.
Risiko lain ialah tidak dapat mengawal kerugian dengan berkesan. Apabila harga bergelombang, tidak dapat berhenti dengan cepat, menyebabkan kerugian berkembang. Ini memerlukan strategi berhenti kerugian untuk mengawal.
Arah pengoptimuman strategi ini terutamanya tertumpu pada pilihan parameter reaksi, jenis dan panjang purata bergerak. Reaksi boleh ditambah dengan sewajarnya untuk mengurangkan isyarat yang salah. Parameter purata bergerak boleh diuji mengikut pelbagai kitaran dan varieti, memilih kombinasi yang menghasilkan isyarat terbaik.
Selain itu, ia juga boleh digabungkan dengan petunjuk lain seperti RSI, KD dan lain-lain untuk mengesahkan isyarat perdagangan.
Strategi ini secara keseluruhan lebih mudah dan praktikal, dengan penyaringan purata bergerak berganda dan menghasilkan isyarat perdagangan, dapat mengenal pasti kebalikan trend dengan berkesan, merupakan strategi pengesanan trend yang tipikal. Setelah mengoptimumkan kombinasi parameter, keupayaan menangkap pasaran dan anti-kedudukan pasaran akan meningkat.
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(shorttitle="MA_color strategy", title="Moving Average Color", overlay=true)
// === INPUTS
ma_type = input(defval="HullMA", title="MA Type: ", options=["SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "ZEMA", "TMA", "SSMA"])
ma_len = input(defval=32, title="MA Lenght", minval=1)
ma_src = input(close, title="MA Source")
reaction = input(defval=2, title="MA Reaction", minval=1)
// SuperSmoother filter
// © 2013 John F. Ehlers
variant_supersmoother(src,len) =>
a1 = exp(-1.414*3.14159 / len)
b1 = 2*a1*cos(1.414*3.14159 / len)
c2 = b1
c3 = (-a1)*a1
c1 = 1 - c2 - c3
v9 = 0.0
v9 := c1*(src + nz(src[1])) / 2 + c2*nz(v9[1]) + c3*nz(v9[2])
v9
variant_smoothed(src,len) =>
v5 = 0.0
v5 := na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len
v5
variant_zerolagema(src,len) =>
ema1 = ema(src, len)
ema2 = ema(ema1, len)
v10 = ema1+(ema1-ema2)
v10
variant_doubleema(src,len) =>
v2 = ema(src, len)
v6 = 2 * v2 - ema(v2, len)
v6
variant_tripleema(src,len) =>
v2 = ema(src, len)
v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)
v7
variant(type, src, len) =>
type=="EMA" ? ema(src,len) :
type=="WMA" ? wma(src,len):
type=="VWMA" ? vwma(src,len) :
type=="SMMA" ? variant_smoothed(src,len) :
type=="DEMA" ? variant_doubleema(src,len):
type=="TEMA" ? variant_tripleema(src,len):
type=="HullMA"? wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) :
type=="SSMA" ? variant_supersmoother(src,len) :
type=="ZEMA" ? variant_zerolagema(src,len) :
type=="TMA" ? sma(sma(src,len),len) : sma(src,len)
// === Moving Average
ma_series = variant(ma_type,ma_src,ma_len)
direction = 0
direction := rising(ma_series,reaction) ? 1 : falling(ma_series,reaction) ? -1 : nz(direction[1])
change_direction= change(direction,1)
change_direction1= change(direction,1)
pcol = direction>0 ? lime : direction<0 ? red : na
plot(ma_series, color=pcol,style=line,join=true,linewidth=3,transp=10,title="MA PLOT")
/////// Alerts ///////
alertcondition(change_direction,title="Change Direction MA",message="Change Direction MA")
longCondition = direction>0
shortCondition = direction<0
if (longCondition)
strategy.entry("BUY", strategy.long)
if (shortCondition)
strategy.entry("SELL", strategy.short)