Sumber dimuat naik... memuat...

EMA/SMA Multi-Indikator Trend Komprehensif Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-06-28 15:00:20
Tag:EMASMARSISTOCHCCIMACD

img

Ringkasan

Strategi ini adalah sistem trend berikut yang komprehensif berdasarkan pelbagai penunjuk teknikal, terutamanya direka untuk jangka masa 1 jam. Ia menggabungkan purata bergerak, penunjuk momentum, dan osilator untuk menilai trend pasaran dengan mengira kedudukan beberapa penunjuk berbanding dengan harga semasa. Idea teras strategi ini adalah untuk membeli apabila kebanyakan penunjuk menunjukkan isyarat kenaikan dan menjual apabila kebanyakan penunjuk menunjukkan isyarat penurunan. Pendekatan ini bertujuan untuk menangkap trend pasaran yang kuat sambil mengurangkan risiko isyarat palsu melalui integrasi beberapa penunjuk.

Prinsip Strategi

Inti strategi ini adalah untuk mengira kedudukan pelbagai penunjuk teknikal berbanding harga semasa dan membuat keputusan perdagangan berdasarkan isyarat gabungan penunjuk ini.

  1. Purata Bergerak: Mengira 6 tempoh yang berbeza (10, 20, 30, 50, 100, 200) EMA dan SMA, menentukan sama ada mereka di atas atau di bawah harga penutupan.

  2. RSI: Menggunakan RSI 14 tempoh, menganggap RSI > 50 sebagai isyarat kenaikan dan RSI < 50 sebagai isyarat penurunan.

  3. Osilator Stokastis: Menggunakan stokastis 14 tempoh, dengan garis K > 80 dianggap bullish dan < 20 dianggap bearish.

  4. CCI: Menggunakan CCI 20 tempoh, dengan nilai > 100 dianggap bullish dan < -100 dianggap bearish.

  5. Momentum: Mengira momentum 10 tempoh, dengan nilai positif dianggap bullish dan nilai negatif bearish.

  6. MACD: Menggunakan parameter 12-26-9 MACD, dengan histogram positif dianggap bullish dan histogram negatif bearish.

Strategi ini mengira jumlah semua isyarat bullish (above_count) dan semua isyarat bearish (below_count), kemudian mengira perbezaan mereka (below_count - above_count).

  • Apabila perbezaannya lebih besar daripada ambang entry_long yang ditetapkan, buka kedudukan panjang.
  • Apabila perbezaannya kurang daripada ambang entry_short yang ditetapkan, buka kedudukan pendek.
  • Apabila perbezaannya kurang daripada ambang close_long, tutup kedudukan panjang.
  • Apabila perbezaan lebih besar daripada ambang close_short, tutup kedudukan pendek.

Kaedah ini membolehkan strategi menilai kekuatan dan arah trend pasaran berdasarkan isyarat gabungan pelbagai penunjuk, dengan itu membuat keputusan perdagangan yang lebih kukuh.

Kelebihan Strategi

  1. Analisis komprehensif pelbagai penunjuk: Dengan menggabungkan beberapa penunjuk teknikal, strategi dapat menilai trend pasaran dengan lebih komprehensif, mengurangkan risiko isyarat palsu yang mungkin berasal dari satu penunjuk.

  2. Kemudahan penyesuaian yang tinggi: Strategi menggunakan pelbagai jenis penunjuk (mengikuti trend, momentum, dan osilator), yang membolehkannya mengekalkan keberkesanan dalam pelbagai persekitaran pasaran.

  3. Tetapan parameter yang fleksibel: Pengguna boleh menyesuaikan ambang masuk dan keluar mengikut pilihan risiko dan pandangan pasaran mereka, menjadikan strategi lebih peribadi.

  4. Keupayaan mengikuti trend: Dengan mensintesis isyarat dari pelbagai penunjuk, strategi mempunyai potensi untuk menangkap trend pasaran yang kuat, dengan itu memperoleh keuntungan yang besar.

  5. Pengurusan risiko: Strategi termasuk logik untuk menutup kedudukan, yang boleh membantu keluar perdagangan dengan cara yang tepat apabila trend pasaran berbalik, membantu dalam kawalan risiko.

  6. Visualisasi: Strategi memetakan perbezaan antara above_count dan below_count pada carta, yang membolehkan peniaga untuk melihat perubahan dalam kekuatan trend pasaran.

Risiko Strategi

  1. Lag: Oleh kerana penggunaan pelbagai purata bergerak dan penunjuk lag lain, strategi mungkin bertindak balas perlahan terhadap pembalikan trend, yang membawa kepada kemasukan atau keluar yang tertunda.

  2. Overtrading: Dalam pasaran berayun, penunjuk sering memberikan isyarat yang bertentangan, yang membawa kepada perdagangan berlebihan dan peningkatan kos transaksi.

  3. Risiko pecah palsu: Dalam pasaran sampingan, penunjuk mungkin salah tafsir turun naik kecil sebagai permulaan trend, mengakibatkan isyarat perdagangan yang salah.

  4. Sensitiviti parameter: Prestasi strategi mungkin sangat sensitif terhadap penetapan ambang masuk dan keluar. Tetapan parameter yang tidak betul boleh menyebabkan prestasi strategi yang buruk.

  5. Kekurangan mekanisme stop-loss: Strategi semasa tidak mempunyai mekanisme stop-loss yang jelas, yang mungkin menghadapi kerugian yang ketara dalam keadaan pasaran yang melampau.

  6. Mengabaikan faktor asas: Strategi ini sepenuhnya berdasarkan kepada penunjuk teknikal dan tidak mempertimbangkan faktor asas yang mungkin mempengaruhi pasaran.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan parameter penyesuaian: Pertimbangkan untuk menggunakan mekanisme penyesuaian untuk menyesuaikan ambang masuk dan keluar secara dinamik untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza. Ini boleh dicapai dengan menganalisis turun naik sejarah atau menggunakan algoritma pembelajaran mesin.

  2. Menambah mekanisme stop-loss: Memperkenalkan mekanisme stop-loss berdasarkan ATR atau peratusan tetap untuk mengehadkan kerugian maksimum perdagangan tunggal dan meningkatkan keupayaan pengurusan risiko.

  3. Mengoptimumkan gabungan penunjuk: Cuba menggunakan algoritma pemilihan ciri untuk menentukan kombinasi penunjuk yang paling berkesan, menghilangkan penunjuk yang berlebihan atau kurang berprestasi untuk meningkatkan kecekapan strategi.

  4. Memperkenalkan penapis masa: Pertimbangkan untuk menambah penapis masa untuk mengelakkan perdagangan semasa tempoh turun naik pasaran yang rendah, seperti hanya berdagang dalam beberapa jam pertama selepas pembukaan pasaran.

  5. Mengintegrasikan penunjuk sentimen pasaran: Memperkenalkan penunjuk sentimen pasaran seperti indeks VIX atau jumlah dagangan untuk menilai persekitaran pasaran dengan lebih baik dan meningkatkan kesesuaian strategi.

  6. Mengoptimumkan tempoh purata bergerak: Bereksperimen dengan kombinasi yang berbeza dari tempoh purata bergerak atau menggunakan purata bergerak adaptif untuk meningkatkan kebolehsesuaian strategi kepada bingkai masa yang berbeza.

  7. Tambah penapisan kekuatan trend: Memperkenalkan penunjuk kekuatan trend seperti ADX, hanya berdagang apabila trend cukup kuat untuk mengurangkan isyarat palsu dalam pasaran berayun.

  8. Melaksanakan pengurusan kedudukan separa: Sesuaikan saiz kedudukan berdasarkan kekuatan isyarat dan bukannya perdagangan semua-dalam-semua. Ini dapat menguruskan risiko dengan lebih baik dan mengoptimumkan penggunaan modal.

Ringkasan

EMA/SMA Multi-Indicator Comprehensive Trend Following Strategy adalah sistem perdagangan bersepadu berdasarkan beberapa penunjuk teknikal, yang bertujuan untuk menangkap trend pasaran dengan menganalisis isyarat gabungan dari pelbagai penunjuk. Kelebihan utama strategi ini terletak pada keupayaan analisis pasaran yang komprehensif dan tetapan parameter yang fleksibel, yang membolehkannya menyesuaikan diri dengan persekitaran pasaran yang berbeza. Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko berpotensi, seperti kelewatan dan kemungkinan overtrading.

Dengan melaksanakan arah pengoptimuman yang dicadangkan, seperti memperkenalkan parameter penyesuaian, memperkukuhkan mekanisme pengurusan risiko, dan mengoptimumkan kombinasi penunjuk, ketahanan dan keuntungan strategi dapat ditingkatkan lagi.


/*backtest
start: 2024-05-28 00:00:00
end: 2024-06-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA/SMA Above-Below Close with Multiple Indicators", overlay=true)

// EMA and SMA calculations
ema10 = ta.ema(close, 10)
sma10 = ta.sma(close, 10)

ema20 = ta.ema(close, 20)
sma20 = ta.sma(close, 20)

ema30 = ta.ema(close, 30)
sma30 = ta.sma(close, 30)

ema50 = ta.ema(close, 50)
sma50 = ta.sma(close, 50)

ema100 = ta.ema(close, 100)
sma100 = ta.sma(close, 100)

ema200 = ta.ema(close, 200)
sma200 = ta.sma(close, 200)





// Indicators calculations
rsi = ta.rsi(close, 14)
stochK = ta.stoch(close, high, low, 14)
stochD = ta.sma(stochK, 3)
cci = ta.cci(close, 20)
momentum = ta.mom(close, 10)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdHist = macdLine - signalLine
bullPower = high - ta.ema(close, 13)
bearPower = low - ta.ema(close, 13)



// Calculate the number of plots above and below close
above_count = (ema10 > close ? 1 : 0) + (sma10 > close ? 1 : 0) + 
              (ema20 > close ? 1 : 0) + (sma20 > close ? 1 : 0) + 
              (ema30 > close ? 1 : 0) + (sma30 > close ? 1 : 0) + 
              (ema50 > close ? 1 : 0) + (sma50 > close ? 1 : 0) + 
              (ema100 > close ? 1 : 0) + (sma100 > close ? 1 : 0) + 
              (ema200 > close ? 1 : 0) + (sma200 > close ? 1 : 0) + 
              (rsi > 50 ? 1 : 0) + (stochK > 80 ? 1 : 0) + (cci > 100 ? 1 : 0) + 
//              (adx > 25 and close > open ? 1 : 0) + (ao > 0 ? 1 : 0) + 
              (momentum > 0 ? 1 : 0) + (macdHist > 0 ? 1 : 0)
   //           (stochRsi > 0.8 ? 1 : 0) + (willr > -20 ? 1 : 0) + 
         //     (bullPower > 0 ? 1 : 0) + (uo > 50 ? 1 : 0)

below_count = (ema10 < close ? 1 : 0) + (sma10 < close ? 1 : 0) + 
              (ema20 < close ? 1 : 0) + (sma20 < close ? 1 : 0) + 
              (ema30 < close ? 1 : 0) + (sma30 < close ? 1 : 0) + 
              (ema50 < close ? 1 : 0) + (sma50 < close ? 1 : 0) + 
              (ema100 < close ? 1 : 0) + (sma100 < close ? 1 : 0) + 
              (ema200 < close ? 1 : 0) + (sma200 < close ? 1 : 0) + 
              (rsi < 50 ? 1 : 0) + (stochK < 20 ? 1 : 0) + (cci < -100 ? 1 : 0) + 
      //        (adx > 25 and close < open ? 1 : 0) + (ao < 0 ? 1 : 0) + 
              (momentum < 0 ? 1 : 0) + (macdHist < 0 ? 1 : 0)
       //       (stochRsi < 0.2 ? 1 : 0) + (willr < -80 ? 1 : 0) + 
         //     (bearPower < 0 ? 1 : 0) + (uo < 50 ? 1 : 0)

// Plot the difference between above_count and below_count
plot(below_count - above_count, title="Above-Below Count", color=color.orange, linewidth=2)

// Zero line
hline(0, "Zero Line", color=color.red, linewidth=2)

// Strategy
entry_long = input(12, title="entry long")
entry_short = input(-12, title="entry short")

close_long = input(-9, title="close long")
close_short = input(9, title="close short")

if (below_count - above_count > close_short)
    strategy.close("Sell")

if (below_count - above_count < close_long)
    strategy.close("Buy")
// Buy signal
if (below_count - above_count > entry_long)
//    strategy.close("Sell")
    strategy.entry("Buy", strategy.long)

// Sell (or close short) signal
if (below_count - above_count < entry_short)
//    strategy.close("Buy")
    strategy.entry("Sell", strategy.short)


Berkaitan

Lebih lanjut