
Ini adalah strategi perdagangan kuantitatif canggih yang menggabungkan indikator Supertrend dan analisis jumlah transaksi. Strategi ini mengenal pasti titik perubahan trend yang berpotensi dengan memantau secara dinamik persimpangan harga dengan garis supertrend dan persembahan yang tidak normal dalam transaksi. Strategi ini menggunakan set-up stop loss dan keuntungan yang dinamik berdasarkan gelombang sebenar (ATR), yang memastikan fleksibiliti perdagangan dan memberikan kebolehpercayaan kawalan risiko.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Strategi ini membina sistem perdagangan yang boleh dipercayai dan boleh disesuaikan dengan menggabungkan penunjuk hypertrend dengan analisis kuantiti transaksi. Kelebihan strategi adalah kepelbagaian pengesahan isyarat dan dinamik pengurusan risiko, tetapi masih perlu memperhatikan kesan keadaan pasaran terhadap prestasi strategi. Dengan pengoptimuman dan penyempurnaan berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend with Volume Strategy", overlay=true)
// Input parameters for Supertrend
atrLength = input(10, title="ATR Length")
multiplier = input(3.0, title="Multiplier")
// Calculate Supertrend
[supertrend, direction] = ta.supertrend(multiplier, atrLength)
// Plot Supertrend
plot(supertrend, color=direction == 1 ? color.green : color.red, title="Supertrend")
// Volume condition
volumeThreshold = input(1.5, title="Volume Threshold (x Average)")
avgVolume = ta.sma(volume, 20) // 20-period average volume
highVolume = volume > (avgVolume * volumeThreshold)
// Define entry conditions
longCondition = ta.crossover(close, supertrend) and highVolume
shortCondition = ta.crossunder(close, supertrend) and highVolume
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Add stop loss and take profit
stopLoss = input(1.5, title="Stop Loss (in ATRs)")
takeProfit = input(3.0, title="Take Profit (in ATRs)")
if (longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long",
limit=close + (takeProfit * ta.atr(atrLength)),
stop=close - (stopLoss * ta.atr(atrLength)))
if (shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short",
limit=close - (takeProfit * ta.atr(atrLength)),
stop=close + (stopLoss * ta.atr(atrLength)))