
Strategi ini menggabungkan RSI dan EMA secara rawak untuk mengesan trend dan mengesahkan isyarat perdagangan. Ia menghasilkan isyarat banyak apabila harga di atas EMA20 kembali ke antara EMA9 dan EMA14 dan menghasilkan isyarat kosong apabila harga di bawah EMA20 kembali ke antara EMA9 dan EMA14 dan menghasilkan isyarat kosong apabila harga di atas EMA20 kembali ke antara EMA9 dan EMA14 dan menghasilkan isyarat kosong apabila isyarat RSI turun ke atas EMA14 dan menghasilkan isyarat kosong apabila isyarat RSI turun ke atas EMA20.
Idea teras strategi ini adalah menggunakan RSI rawak untuk menilai sama ada harga dalam trend utama (diwakili oleh EMA20) telah mencapai kawasan jual beli yang sesuai, dan menggunakan EMA cepat dan EMA sederhana untuk mengesahkan kekuatan penarikan balik, jika harga menembusi EMA cepat dan EMA sederhana, penarikan balik mungkin berakhir, dan trend mungkin berbalik. Pada masa ini tidak sesuai untuk masuk, dan hanya apabila harga kembali ke EMA9 dan EMA14.
Strategi ini menggunakan pengesahan pelbagai syarat RSI acak yang digabungkan dengan EMA, mengawal risiko dengan berkesan sambil menangkap perubahan arah trend, pemikiran keseluruhan mudah difahami, sesuai untuk digunakan oleh pemula. Tetapi strategi itu sendiri juga mempunyai beberapa batasan, seperti prestasi yang tidak baik terhadap pasaran goyah, kurangnya pemahaman trend, dan lain-lain, parameter perlu disesuaikan secara fleksibel mengikut keadaan sebenar.
/*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)