
Двойная пересекающаяся средняя с RSI силовым фильтром
Эта стратегия является торговой системой, которая сочетает в себе фильтрацию на двухуровневые скрещивания и RSI. Стратегия использует 5-циклический подвижной средний индекс ((EMA5) и 10-циклический простой подвижной средний индекс ((SMA10) в качестве основного инструмента для определения тенденций, а также вводит 14-циклический относительно сильный индекс ((RSI14) в качестве фильтра торгового сигнала, чтобы повысить точность торговли с помощью строгих условий входа и выхода.
Основная логика стратегии основана на сочетании двух ключевых технических показателей:
Улучшенный механизм подтверждения сигнала
Управление рисками эффективно
Логика стратегии ясна
Риск волатильности рынков
Риск отставания
Параметр Чувствительность
Введение фильтров интенсивности тренда
Параметры оптимизации адаптируются
Управление рисками
Эта стратегия, в сочетании с двулинейным крестом и фильтром RSI, создает относительно совершенную торговую систему. Основные преимущества стратегии заключаются в ее механизме подтверждения сигналов и мерах по контролю риска, но также существуют некоторые присущие ей ограничения. С помощью предлагаемой оптимизации направления стратегии ожидается лучшая производительность в реальной торговле.
/*backtest
start: 2024-06-20 00:00:00
end: 2024-12-01 00:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA and SMA Crossover with RSI14 Filtering", overlay=true)
// Define parameters for EMA, SMA, and RSI
ema5_length = 5
sma10_length = 10
rsi14_length = 14
rsi60_level = 60
rsi50_level = 50
// Calculate EMAs, SMAs, and RSI
ema5 = ta.ema(close, ema5_length)
sma10 = ta.sma(close, sma10_length)
rsi14 = ta.rsi(close, rsi14_length)
// Define Crossover Conditions
positive_crossover = ta.crossover(ema5, sma10)
negative_crossover = ta.crossunder(ema5, sma10)
// Define RSI filter conditions
rsi_above_60 = rsi14 > rsi60_level
rsi_below_50 = rsi14 < rsi50_level
// Condition: price below 60 on RSI 14 and later crosses above for Buy
price_below_rsi60 = close < rsi14
price_above_rsi60 = close > rsi14
// Condition: price above 50 on RSI 14 and later crosses below for Sell
price_above_rsi50 = close > rsi14
price_below_rsi50 = close < rsi14
// Trading logic
var bool active_buy_trade = false
var bool active_sell_trade = false
// Buy Condition: EMA 5 crosses above SMA 10 and RSI 14 crosses above 60
if (positive_crossover and not active_buy_trade)
if (price_below_rsi60)
// Wait for price to cross above RSI 60
if (price_above_rsi60)
strategy.entry("Buy", strategy.long)
active_buy_trade := true
else
strategy.entry("Buy", strategy.long)
active_buy_trade := true
// Sell Condition: EMA 5 crosses below SMA 10 and RSI 14 crosses below 50
if (negative_crossover and not active_sell_trade)
if (price_above_rsi50)
// Wait for price to cross below RSI 50
if (price_below_rsi50)
strategy.entry("Sell", strategy.short)
active_sell_trade := true
else
strategy.entry("Sell", strategy.short)
active_sell_trade := true
// Exit Buy Condition: Reverse Signal (EMA crosses below SMA or RSI crosses below 50)
if (active_buy_trade and (negative_crossover or rsi14 < rsi50_level))
strategy.close("Buy")
active_buy_trade := false
// Exit Sell Condition: Reverse Signal (EMA crosses above SMA or RSI crosses above 60)
if (active_sell_trade and (positive_crossover or rsi14 > rsi60_level))
strategy.close("Sell")
active_sell_trade := false
// Plotting EMAs, SMAs, and RSI 14 on the chart
plot(ema5, color=color.blue, linewidth=2, title="EMA 5")
plot(sma10, color=color.red, linewidth=2, title="SMA 10")
hline(rsi60_level, "RSI 60", color=color.gray, linestyle=hline.style_dotted)
hline(rsi50_level, "RSI 50", color=color.gray, linestyle=hline.style_dotted)
plot(rsi14, color=color.green, linewidth=1, title="RSI 14")