Sumber dimuat naik... memuat...

Strategi Pengesanan Trend Convergensi Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-12-28 17:24:53
Tag:

img

Ringkasan

Strategi Pengesanan Trend Convergence Moving Average Berganda mengira garis purata bergerak pantas, perlahan dan superlambat, digabungkan dengan penunjuk MACD untuk menentukan arah trend harga dan melaksanakan transaksi pengesanan trend. Ia pergi lama apabila purata bergerak pantas dan perlahan mempunyai salib emas, dan pergi pendek apabila salib mati berlaku. Gunakan purata bergerak jangka panjang untuk menapis pecah palsu.

Prinsip

Strategi ini mula-mula mengira purata bergerak pantas 12 hari, purata bergerak perlahan 26 hari, dan purata bergerak superlahan 200 hari. Apabila purata bergerak pantas melintasi di atas yang perlahan, salib emas berlaku, yang menunjukkan pasaran lembu. Apabila salib cepat melintasi di bawah perlahan, salib mati berlaku, yang menunjukkan pasaran beruang. Strategi ini panjang pada salib emas dan pendek pada salib mati.

Strategi ini juga menggunakan penunjuk MACD untuk menentukan arah trend. MACD terdiri daripada garis pantas, garis perlahan dan bar MACD. Apabila garis pantas melintasi di atas garis perlahan, ia adalah isyarat bullish dan apabila melintasi di bawah ia adalah bearish. Digabungkan dengan purata bergerak jangka panjang untuk menapis isyarat palsu, hanya apabila garis pantas memecahkan garis perlahan, bar MACD berubah dari negatif kepada positif, dan harga berdiri di atas 200 hari MA, isyarat panjang mencetuskan. Hanya apabila garis pantas memecahkan garis perlahan, bar MACD berubah dari positif kepada negatif dan harga jatuh di bawah 200 hari MA, isyarat pendek mencetuskan.

Dengan pengesahan berganda dari sistem purata bergerak dan penunjuk MACD, pecah palsu dapat dielakkan dan memastikan memasuki permulaan trend.

Kelebihan

  1. Pengesahan berganda mengelakkan pecah palsu, memastikan masuk pada permulaan trend.

  2. MA 200 hari menapis perdagangan yang salah semasa turun naik pasaran.

  3. Stop loss ditetapkan untuk mengehadkan kerugian maksimum.

  4. Parameter yang boleh disesuaikan seperti panjang MA, tahap stop loss, dan lain-lain untuk menyesuaikan diri dengan produk yang berbeza.

  5. Logik yang mudah dan jelas, mudah difahami dan dioptimumkan.

Risiko

  1. Pengesanan trend jangka panjang tidak dapat menangkap peluang jangka pendek.

  2. Kesan pengesanan bergantung pada tetapan parameter.

  3. Tetapan stop loss yang tidak betul mungkin terlalu longgar atau terlalu ketat, meningkatkan kerugian atau berhenti sebelum masa.

  4. Tempoh penyimpanan yang panjang membawa kepada tekanan modal tertentu.

Pengoptimuman

  1. Mengoptimumkan parameter panjang MA untuk kombinasi parameter terbaik.

  2. Tambah penunjuk lain seperti KDJ untuk penilaian tambahan.

  3. Mengoptimumkan strategi stop loss seperti berhenti ketat, berhenti belakang dan lain-lain.

  4. Sesuaikan parameter MA berdasarkan produk dan jangka masa.

  5. Tambah penapis kelantangan untuk mengelakkan isyarat palsu.

Kesimpulan

Dual MA Convergence Trend Tracking Strategy menilai arah trend dengan mengira pelbagai sistem MA dan menggunakan penapis MACD. Kelebihannya adalah logik yang mudah dan jelas, risiko yang boleh dikawal, sesuai untuk penjejakan trend. Ia boleh diperbaiki dengan pengoptimuman parameter, pengoptimuman stop loss, menambah penunjuk tambahan dan lain-lain. Strategi penjejakan trend yang disyorkan.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true)


// Trend Strategy
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

// maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih lanjut