
Эта стратегия сочетает в себе случайные RSI и EMA для обнаружения тенденции и подтверждения торговых сигналов. Позволяет создавать многосигналы, когда цена выше EMA20 переходит между EMA9 и EMA14, а случайный RSI находится ниже уровня перепродажи. Позволяет создавать пустые сигналы, когда цена ниже EMA20 переходит между EMA9 и EMA14, а случайный RSI находится выше уровня перекупа.
Центральная идея этой стратегии заключается в том, чтобы использовать случайный RSI, чтобы определить, достигла ли цена отклонения в основном тренде (представленном EMA20) соответствующей зоны перекупа и перепродажи, а также использовать быструю EMA и среднюю EMA для проверки силы отклонения. Если цена пробивает быструю EMA и среднюю EMA, то отклонение может закончиться, а тренд может быть обращен вспять.
Стратегия использует случайный RSI в сочетании с многоусловной проверкой EMA, эффективно контролирует риск, одновременно с тем, чтобы уловить обратный тренд, общая концепция проста и понятна, подходит для использования новичками. Однако стратегия сама по себе имеет некоторые ограничения, такие как плохое поведение на шокирующем рынке, недостаточное понимание тенденции, и т. д. Параметры требуют гибкой корректировки в соответствии с реальными обстоятельствами. Впоследствии можно также рассмотреть оптимизацию и улучшение стратегии с точки зрения динамических параметров, большего количества показателей, подтверждения и управления деньгами, чтобы получить более стабильную прибыль. В целом, стратегия может служить базовым шаблоном, изменяться и расширяться на этой основе, является хорошей отправной точкой и учебным материалом.
/*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)