Эта стратегия представляет собой комплексную торговую систему, которая сочетает в себе скользящие средние, индекс относительной силы и индикаторы силы тренда. Благодаря координации нескольких технических индикаторов она достигает точного улавливания рыночных тенденций и эффективного контроля рисков. Система использует динамический механизм остановки потерь и получения прибыли, обеспечивая благоприятное соотношение риск-вознаграждение при адаптации к различным рыночным условиям посредством гибких корректировок параметров.
Стратегия в основном основана на трех основных показателях: быстрых и медленных экспоненциальных скользящих средних (EMA), индекса относительной силы (RSI) и среднего направленного индекса (ADX). Когда быстрая EMA пересекает медленную EMA, система проверяет, находится ли RSI на неперекупленной территории (ниже 60), подтверждая достаточную силу тренда с ADX (выше 15). Эти условия запускают длинные сигналы входа при выполнении. Противоречивые условия запускают сигналы выхода. Система также реализует динамические точки получения прибыли и остановки потери на основе соотношения риск-вознаграждение, достигая точного контроля над риском торговли посредством параметризации.
Эта стратегия устанавливает относительно полную торговую систему посредством всестороннего использования нескольких технических индикаторов. Ее основное преимущество заключается в улучшении надежности торговых сигналов посредством координации индикаторов, обеспечивая при этом безопасность торговли с помощью динамических механизмов контроля рисков.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced EMA + RSI + ADX Strategy (Focused on 70% Win Rate)", overlay=true) // Input parameters lenFast = input.int(9, title="Fast EMA Length", minval=1) lenSlow = input.int(21, title="Slow EMA Length", minval=1) rsiPeriod = input.int(14, title="RSI Period") adxPeriod = input.int(14, title="ADX Period") adxSmoothing = input.int(1, title="ADX Smoothing") adxThreshold = input.int(15, title="ADX Threshold") riskRewardRatio = input.float(1.5, title="Risk/Reward Ratio") rsiOverbought = input.int(60, title="RSI Overbought Level") // Adjusted for flexibility rsiOversold = input.int(40, title="RSI Oversold Level") // EMA Calculations fastEMA = ta.ema(close, lenFast) slowEMA = ta.ema(close, lenSlow) // RSI Calculation rsiValue = ta.rsi(close, rsiPeriod) // ADX Calculation [plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing) // Entry Conditions with Confirmation buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < rsiOverbought and adxValue > adxThreshold sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > rsiOversold and adxValue > adxThreshold // Dynamic Exit Conditions takeProfit = strategy.position_avg_price + (close - strategy.position_avg_price) * riskRewardRatio stopLoss = strategy.position_avg_price - (close - strategy.position_avg_price) // Entry logic if (buyCondition) strategy.entry("Buy", strategy.long) strategy.exit("Sell", from_entry="Buy", limit=takeProfit, stop=stopLoss) if (sellCondition) strategy.close("Buy") // Plotting EMAs plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1) plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1) // Entry and exit markers plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal") // Alerts alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered") alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")