
Strategi ini adalah sistem perdagangan berbalik-balik berdasarkan ATR (Average True Rate) untuk mengenal pasti peluang harga yang melampau. Strategi ini menggabungkan pelbagai petunjuk teknikal, termasuk ATR, EMA, dan SMA, untuk membentuk kerangka keputusan perdagangan yang lengkap.
Logik teras strategi adalah berdasarkan langkah utama berikut:
Ini adalah strategi shorting yang direka dengan baik, yang membina sistem perdagangan yang boleh dipercayai melalui penapisan penurunan nilai dinamik ATR dan trend EMA. Kelebihan strategi ini adalah bahawa ia sangat mudah disesuaikan dan kawalan risiko yang baik, tetapi juga perlu memperhatikan risiko yang dibawa oleh perubahan persekitaran pasaran. Dengan pengoptimuman dan pengendalian risiko yang terus-menerus, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("[SHORT ONLY] ATR Sell the Rip Mean Reversion Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true, fill_orders_on_standard_ohlc = true)
//#region INPUTS SECTION
// ============================================
// ============================================
// Strategy Settings
// ============================================
atrPeriod = input.int(title="ATR Period", defval=20, minval=1, group="Strategy Settings")
atrMultInput = input.float(title='ATR Multiplier', defval=1.0, step=0.25, group="Strategy Settings")
smoothPeriodInput = input.int(title='Smoothing Period', defval=10, minval=1, group="Strategy Settings")
//#endregion
// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(true, "Use EMA Filter", group="Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval=1, group="Trend Filter")
//#region INDICATOR CALCULATIONS
// ============================================
// Calculate ATR Signal Trigger
// ============================================
atrValue = ta.atr(atrPeriod)
atrThreshold = close + atrValue * atrMultInput
signalTrigger = ta.sma(atrThreshold, smoothPeriodInput)
plot(signalTrigger, title="Smoothed ATR Trigger", color=color.white)
// ============================================
// Trend Filter
// ============================================
ma200 = ta.ema(close, emaPeriodInput)
plot(ma200, color=color.red, force_overlay=true)
//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
shortCondition = close>signalTrigger
exitCondition = close<low[1]
// Apply EMA Filter if enabled
if useEmaFilter
shortCondition := shortCondition and close < ma200
//#endregion
if shortCondition
strategy.entry("Short", strategy.short)
if exitCondition
strategy.close_all()