Strategi ini adalah sistem dagangan mengikut trend berdasarkan pelbagai Exponential Moving Averages (EMA) dan Average True Range (ATR). Ia menggunakan tiga EMA (20, 50, dan 100 tempoh) bersama-sama dengan ATR untuk pengurusan risiko dinamik dan penargetan keuntungan. Pendekatan ini memastikan perdagangan yang sistematik sambil mengekalkan kawalan risiko dinamik.
Logik teras dibina pada interaksi antara harga dan pelbagai EMA:
Strategi ini menggabungkan pelbagai EMA dan kawalan risiko dinamik berasaskan ATR untuk mewujudkan sistem dagangan yang mempunyai ciri-ciri perdagangan trend dan swing. Kekuatannya terletak pada pendekatan sistematik dan risiko yang boleh dikawal, tetapi penerapan praktikal memerlukan perhatian terhadap kebolehan penyesuaian pasaran dan pengoptimuman khusus berdasarkan keadaan sebenar. Melalui tetapan parameter yang betul dan kawalan risiko yang ketat, strategi ini berpotensi untuk mencapai hasil dagangan yang stabil di kebanyakan persekitaran pasaran.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA Swing Strategy with ATR", overlay=true) // Inputs emaShort = input.int(20, "Short EMA") emaMid = input.int(50, "Mid EMA") emaLong = input.int(100, "Long EMA") rrRatio = input.float(1.5, "Risk-Reward Ratio") contracts = input.int(5, "Number of Contracts") // Calculations ema20 = ta.ema(close, emaShort) ema50 = ta.ema(close, emaMid) ema100 = ta.ema(close, emaLong) atr = ta.atr(14) // Conditions longCondition = ta.crossover(close, ema20) and close > ema50 shortCondition = ta.crossunder(close, ema20) and close < ema50 // Variables for trades var float entryPrice = na var float stopLoss = na var float takeProfit = na // Long Trades if (longCondition) entryPrice := close stopLoss := close - atr takeProfit := close + atr * rrRatio strategy.entry("Long", strategy.long, contracts) strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit) // Short Trades if (shortCondition) entryPrice := close stopLoss := close + atr takeProfit := close - atr * rrRatio strategy.entry("Short", strategy.short, contracts) strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit) // Plot EMAs plot(ema20, color=color.green, title="EMA 20") plot(ema50, color=color.red, title="EMA 50") plot(ema100, color=color.white, title="EMA 100") // Visualization for Entries plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")