
Ini ialah strategi dagangan kuantitatif lanjutan yang menggabungkan purata bergerak eksponen (EMA), pengesahan volum dan penunjuk kadar aliran purata (ATR). Strategi ini menggunakan pelbagai penunjuk teknikal untuk bukan sahaja memahami arah aliran pasaran dengan tepat, tetapi juga meningkatkan kebolehpercayaan transaksi melalui pengesahan volum Pada masa yang sama, ia menggunakan ATR untuk melaraskan kedudukan henti rugi dan ambil untung secara dinamik, sekali gus merealisasikan sistem pengurusan risiko yang komprehensif. .
Logik teras strategi terdiri daripada tiga bahagian utama:
Strategi ini mewujudkan sistem perdagangan yang ketat secara logik dengan menggunakan pelbagai petunjuk teknikal secara menyeluruh. Kelebihan teras strategi terletak pada pelbagai mekanisme pengesahan dan pengurusan risiko yang dinamik, tetapi ia juga perlu untuk memberi perhatian kepada risiko seperti pembalikan arah aliran dan penembusan volum palsu. Melalui pengoptimuman dan penambahbaikan berterusan, strategi ini dijangka mencapai prestasi yang lebih baik dalam urus niaga sebenar.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Enhanced Volume + Trend Strategy", overlay=true)
// Inputs
emaLength = input.int(50, title="EMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(2.0, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit")
volLength = input.int(20, title="Volume Moving Average Length")
volMultiplier = input.float(1.5, title="Volume Multiplier (Relative to Previous Volume)")
// Trend Detection using EMA
ema = ta.ema(close, emaLength)
// ATR Calculation for Stop Loss/Take Profit
atr = ta.atr(atrLength)
// Volume Moving Average
volMA = ta.sma(volume, volLength)
// Additional Volume Condition (Current Volume > Previous Volume + Multiplier)
volCondition = volume > volMA * volMultiplier and volume > volume[1]
// Entry Conditions based on Trend (EMA) and Volume (Volume Moving Average)
longCondition = close > ema and volCondition
shortCondition = close < ema and volCondition
// Stop Loss and Take Profit Levels
longStopLoss = close - (atr * atrMultiplierSL)
longTakeProfit = close + (atr * atrMultiplierTP)
shortStopLoss = close + (atr * atrMultiplierSL)
shortTakeProfit = close - (atr * atrMultiplierTP)
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit)
// Plotting EMA
plot(ema, color=color.yellow, title="EMA")
// Plot Volume Moving Average
plot(volMA, color=color.blue, title="Volume Moving Average")
// Signal Visualizations
plotshape(series=longCondition, color=color.green, style=shape.labelup, location=location.belowbar, title="Buy Signal")
plotshape(series=shortCondition, color=color.red, style=shape.labeldown, location=location.abovebar, title="Sell Signal")