
Strategi trend-following beradaptasi dinamik multi-faktor adalah kaedah perdagangan sistematik yang menggabungkan beberapa petunjuk teknikal. Strategi ini menggunakan beberapa petunjuk seperti purata bergerak yang berkumpul dengan peratusan penyebaran MACD, indikator kekuatan relatif RSI, purata gelombang sebenar rata-rata ATR, dan purata bergerak sederhana SMA untuk menangkap trend pasaran dan mengoptimumkan kemasukan dan keluar dari pasaran.
Prinsip teras strategi ini adalah untuk mengenal pasti dan mengesahkan trend pasaran melalui sinergi pelbagai petunjuk teknikal. Secara khusus:
Strategi membuka lebih banyak kedudukan apabila memenuhi syarat-syarat berikut: MACD melintasi garis isyarat, RSI di bawah 70, harga berada di atas 50 hari SMA dan 50 hari SMA di atas 200 hari SMA. Keadaan sebaliknya mencetuskan isyarat penyingkiran. Strategi menggunakan 2 kali ATR sebagai stop loss, 3 kali ATR sebagai sasaran keuntungan, memastikan nisbah keuntungan risiko 1: 1.5 .
Strategi pengesanan trend yang beradaptasi dengan pelbagai faktor menyediakan pedagang dengan kaedah perdagangan yang sistematik dan boleh diukur dengan menggabungkan beberapa petunjuk teknikal. Strategi ini berfungsi dengan baik di pasaran yang jelas dan mampu menangkap trend jangka panjang dengan berkesan. Mekanisme pengurusan risiko dinamik dan proses pengesahan isyarat pelbagai dimensi membantu meningkatkan kestabilan dan kebolehpercayaan perdagangan.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multi-Factor Hedge Fund Strategy", overlay=true)
// Input parameters
fastLength = input(12, "MACD Fast Length")
slowLength = input(26, "MACD Slow Length")
signalLength = input(9, "MACD Signal Length")
rsiLength = input(14, "RSI Length")
atrLength = input(14, "ATR Length")
// Calculate indicators
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
// Strategy logic
longCondition = macdLine > signalLine and rsi < 70 and close > sma50 and sma50 > sma200
shortCondition = macdLine < signalLine and rsi > 30 and close < sma50 and sma50 < sma200
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Set stop loss and take profit
stopLoss = 2 * atr
takeProfit = 3 * atr
strategy.exit("Exit Long", "Long", stop = strategy.position_avg_price - stopLoss, limit = strategy.position_avg_price + takeProfit)
strategy.exit("Exit Short", "Short", stop = strategy.position_avg_price + stopLoss, limit = strategy.position_avg_price - takeProfit)
// Plot indicators
plot(sma50, color=color.blue, title="50 SMA")
plot(sma200, color=color.red, title="200 SMA")
plot(ta.crossover(macdLine, signalLine) ? close : na, style=plot.style_circles, color=color.green, title="MACD Crossover")
plot(ta.crossunder(macdLine, signalLine) ? close : na, style=plot.style_circles, color=color.red, title="MACD Crossunder")