Chiến lược này kết hợp RSI và EMA ngẫu nhiên để phát hiện xu hướng và xác nhận tín hiệu giao dịch. Một tín hiệu nhiều được tạo ra khi giá trên EMA20 quay trở lại giữa EMA9 và EMA14 và RSI ngẫu nhiên thấp hơn mức bán tháo. Một tín hiệu trống được tạo ra khi giá trên EMA20 quay trở lại giữa EMA9 và EMA14 và RSI ngẫu nhiên cao hơn mức mua tháo.
Ý tưởng cốt lõi của chiến lược này là sử dụng RSI ngẫu nhiên để đánh giá xem liệu giá đã đạt đến vùng mua bán quá mức phù hợp trong xu hướng chính (được thể hiện bởi EMA20), đồng thời sử dụng EMA nhanh và EMA trung bình để xác minh cường độ của sự hồi phục, nếu giá vượt qua EMA nhanh và EMA trung bình thì sự hồi phục có thể kết thúc, xu hướng có thể đảo ngược, tại thời điểm này không phù hợp để tham gia, chỉ khi giá quay trở lại giữa EMA9 và EMA14.
Chiến lược này sử dụng xác minh đa điều kiện của RSI ngẫu nhiên kết hợp với EMA, kiểm soát rủi ro hiệu quả trong khi nắm bắt xu hướng đảo ngược, tư duy tổng thể đơn giản và dễ hiểu, phù hợp để người mới học sử dụng. Tuy nhiên, chính chiến lược cũng có một số hạn chế, chẳng hạn như hoạt động không tốt đối với thị trường chấn động, không nắm bắt được xu hướng, và cần điều chỉnh các tham số linh hoạt theo tình hình thực tế.
/*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)