Strategi Dagangan Crypto Pullback Berdasarkan RSI Stochastic dan EMA Crossover

Penulis:ChaoZhang, Tarikh: 2024-03-08 16:44:51
Tag:

img

Ringkasan Strategi

Strategi ini menggabungkan Stochastic RSI dan EMA untuk mengesan trend dan mengesahkan isyarat dagangan. Apabila harga kembali di atas EMA20 ke antara EMA9 dan EMA14, dan Stochastic RSI di bawah tahap oversold, isyarat panjang dihasilkan; apabila harga kembali di bawah EMA20 ke antara EMA9 dan EMA14, dan Stochastic RSI di atas tahap overbought, isyarat pendek dihasilkan.

Prinsip Strategi

  1. Gunakan fungsi ta.ema untuk mengira 3 EMA dengan tempoh yang berbeza, iaitu EMA9, EMA14, dan EMA20, untuk menentukan keadaan trend harga.
  2. Gunakan fungsi ta.rsi untuk mengira penunjuk RSI, kemudian gunakan fungsi ta.stoch untuk menukar RSI kepada penunjuk RSI Stochastic untuk menentukan sama ada harga terlalu banyak dibeli atau terlalu banyak dijual.
  3. Apabila harga penutupan > EMA20 dan harga penutupan < EMA9 dan EMA14, dan Stochastic RSI < tahap oversold, isyarat panjang dicetuskan dan operasi beli dilaksanakan.
  4. Apabila harga penutupan < EMA20 dan harga penutupan > EMA9 dan EMA14, dan Stochastic RSI > melebihi tahap beli, isyarat pendek dicetuskan dan operasi jual dilaksanakan.

Idea utama strategi ini adalah untuk menggunakan RSI Stochastic untuk menentukan sama ada retracement harga dalam trend utama (diwakili oleh EMA20) telah mencapai kawasan overbought atau oversold yang sesuai, sambil menggunakan EMA pantas dan EMA sederhana untuk mengesahkan kekuatan retracement. Jika harga memecahkan EMA pantas dan EMA sederhana, retracement mungkin berakhir dan trend mungkin terbalik, yang tidak sesuai untuk memasuki kedudukan. Hanya apabila retracement harga antara EMA9 dan EMA14 dianggap memasuki kedudukan ke arah trend. Kaedah pengesahan berbilang syarat ini dapat meningkatkan kualiti isyarat dengan berkesan dan mengurangkan salah menilai.

Kelebihan Strategi

  1. Menggabungkan penunjuk trend (EMA) dan penunjuk osilator (RSI) untuk memahami lebih baik trend dan masa overbought / oversold.
  2. Mengambil RSI Stochastic, yang mempunyai dua kelebihan berbanding dengan penunjuk RSI asal: satu adalah peningkatan kelancaran penunjuk, dan yang lain mengelakkan penunjuk berpegang pada nilai melampau untuk masa yang lama.
  3. Pengesahan pelbagai syarat dapat menapis banyak isyarat palsu dengan berkesan dan meningkatkan kebolehpercayaan isyarat.
  4. Logik kod jelas dan mudah, mudah difahami dan diubah suai, dan boleh digunakan sebagai templat untuk pemula belajar.

Risiko Strategi

  1. Tidak sesuai untuk pasaran sampingan, kerana EMA sering menyeberang, yang boleh menghasilkan banyak isyarat palsu.
  2. Jika trendnya sangat kuat dan harga naik atau turun secara sepihak, strategi ini akan kehilangan banyak peluang kerana retracement sangat dangkal.
  3. Pemilihan parameter EMA mempunyai kesan yang besar terhadap strategi dan perlu disesuaikan secara berasingan untuk pelbagai jenis dan tempoh yang berbeza.
  4. Parameter RSI Stochastic juga perlu diselaraskan mengikut keadaan sebenar, dan nilai lalai semasa mungkin tidak berfungsi dengan baik pada beberapa jenis.

Arahan pengoptimuman

  1. Pertimbangkan untuk memperkenalkan penunjuk ATR untuk menyesuaikan secara dinamik tahap overbought dan oversold untuk menyesuaikan diri dengan tahap turun naik yang berbeza.
  2. Tambah lebih banyak EMA dengan tempoh yang berbeza untuk menggambarkan kedudukan retracements harga dengan lebih tepat.
  3. Stop loss dan mengambil keuntungan juga perlu dipertimbangkan, menggunakan peratusan stop loss atau ATR stop loss, dan trailing stop loss untuk melindungi keuntungan.
  4. Corak candlestick seperti bar pin dan corak engulfing boleh digunakan untuk membantu menilai pembalikan trend sebagai syarat tambahan untuk meningkatkan ketepatan.

Ringkasan

Strategi ini menggunakan Stochastic RSI yang digabungkan dengan pengesahan pelbagai syarat EMA untuk mengawal risiko dengan berkesan sambil memahami retracements trend. Idea keseluruhan adalah mudah dan mudah difahami, sesuai untuk pemula untuk belajar dan menggunakan. Walau bagaimanapun, strategi itu sendiri juga mempunyai beberapa batasan, seperti prestasi yang buruk di pasaran sampingan, pemahaman yang tidak mencukupi tentang pergerakan trend, dll, yang perlu disesuaikan dengan fleksibel mengikut keadaan sebenar. Pada masa akan datang, pertimbangan juga boleh diberikan untuk mengoptimumkan dan meningkatkan strategi dari aspek seperti parameter dinamik, lebih banyak pengesahan penunjuk, dan pengurusan wang untuk mendapatkan pulangan yang lebih kukuh. Secara umum, strategi ini boleh berfungsi sebagai templat asas yang boleh diubahsuai dan diperluas, dan merupakan titik permulaan dan pembelajaran yang baik.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Crypto-EMA_Pullback=-", overlay=true,initial_capital = 10000000,default_qty_type=strategy.percent_of_equity, default_qty_value=10.0, pyramiding = 10)

// Inputs
lengthRsi = input(14, title="RSI Length")
k = input(3, title="Stoch %K")
d = input(3, title="Stoch %D")
lengthStoch = input(14, title="Stochastic RSI Length")
overSold = input(25, title="Oversold Level")
overBought = input(85, title="Overbought Level")
emaFastLength = input(9, title="Fast EMA Length")
emaMediumLength = input(14, title="Medium EMA Length")
emaSlowLength = input(20, title="Slow EMA Length")

// Calculating EMAs
emaFast = ta.ema(close, emaFastLength)
emaMedium = ta.ema(close, emaMediumLength)
emaSlow = ta.ema(close, emaSlowLength)

// Calculating the RSI and Stoch RSI
rsi = ta.rsi(close, lengthRsi)
stochRsiK = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), k)
stochRsiD = ta.sma(stochRsiK, d)

// Entry Conditions
bullishCondition = close > emaSlow and close < emaFast and close < emaMedium and stochRsiK < overSold
bearishCondition = close < emaSlow and close > emaFast and close > emaMedium and stochRsiK > overBought

// Strategy Execution
if (bullishCondition)
    strategy.entry("Long", strategy.long)

if (bearishCondition)
    strategy.entry("Short", strategy.short)

// Plotting
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaMedium, color=color.orange, title="Medium EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
hline(overSold, "Oversold", color=color.green)
hline(overBought, "Overbought", color=color.red)


Lebih lanjut