
This strategy is a trading system based on the 5-day Exponential Moving Average (EMA), which identifies divergence patterns between price and the moving average and combines breakout signals for trading. The strategy employs instant execution without waiting for candle closure, enhancing trading timeliness. The system also incorporates a dynamic stop-loss and take-profit mechanism with a 3:1 risk-reward ratio.
The core logic is built on several key elements: 1. Uses a short-period 5-day EMA as the main trend reference line 2. Identifies divergence patterns by monitoring whether candles are completely above or below the EMA 3. Triggers long signals when price breaks above the high of divergence candles 4. Triggers short signals when price breaks below the low of divergence candles 5. Sets stop-loss and take-profit levels based on the divergence candle’s range with a 3:1 risk-reward ratio
This is a comprehensive trading strategy combining short-term moving average, divergence patterns, and breakout signals. The instant execution mechanism improves strategy timeliness while employing dynamic risk management methods. Despite potential risks, the strategy holds practical value through appropriate optimization and risk management measures. Traders are advised to conduct thorough backtesting before live trading and adjust parameters according to specific market conditions.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-05 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("5 EMA (Instant Execution)", overlay=true, margin_long=100, margin_short=100)
// Input parameters
ema_length = input.int(5)
target_multiplier = input.float(3.0)
// Calculate 5 EMA
ema_5 = ta.ema(close, ema_length)
// Detect divergence candles
divergence_buy = (high < ema_5) and (low < ema_5) // Below 5 EMA for buy
divergence_sell = (high > ema_5) and (low > ema_5) // Above 5 EMA for sell
// Store trigger levels dynamically
var float trigger_high = na
var float trigger_low = na
// Set trigger levels when divergence occurs
if divergence_buy
trigger_high := high
if divergence_sell
trigger_low := low
// Check real-time price break (no candle close waiting)
buy_signal = not na(trigger_high) and high >= trigger_high
sell_signal = not na(trigger_low) and low <= trigger_low
// Execute trades instantly
if buy_signal
strategy.entry("Long", strategy.long)
candle_size = trigger_high - low
strategy.exit("Long Exit", "Long", limit=trigger_high + (candle_size * target_multiplier), stop=low)
trigger_high := na // Reset trigger
if sell_signal
strategy.entry("Short", strategy.short)
candle_size = high - trigger_low
strategy.exit("Short Exit", "Short", limit=trigger_low - (candle_size * target_multiplier), stop=high)
trigger_low := na // Reset trigger
// Plot signals
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Plot 5 EMA
plot(ema_5, color=color.blue, linewidth=2)
// Alert conditions
alertcondition(buy_signal, message="BUY triggered - High of divergence candle broken instantly")
alertcondition(sell_signal, message="SELL triggered - Low of divergence candle broken instantly")