
Strategi ini adalah sistem perdagangan kuantitatif pada tingkat empat jam berdasarkan indikator Bollinger Bands, dengan konsep perdagangan yang menggabungkan trend breakout dan mean reversion. Strategi ini menangkap pergerakan pasar melalui terobosan Bollinger Bands ke bawah, sambil memanfaatkan karakteristik harga yang kembali ke mean untuk menghasilkan keuntungan, dan dengan menghentikan risiko pengendalian kerugian. Strategi ini menggunakan leverage 3 kali lipat, dengan mempertimbangkan sepenuhnya pengendalian risiko sambil menjamin keuntungan.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Ini adalah strategi yang menggabungkan trend-following dan averaging regression dari indikator Brin, dengan kondisi pembukaan posisi yang ketat dan pengendalian risiko, mencapai tujuan untuk mendapatkan keuntungan yang stabil di pasar yang sedang tren dan bergejolak. Keunggulan inti dari strategi ini adalah logika perdagangan yang jelas dan sistem pengendalian risiko yang sempurna, tetapi masih perlu memperhatikan pengoptimalan penggunaan leverage dan penilaian lingkungan pasar untuk meningkatkan stabilitas dan kemampuan keuntungan strategi.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year")
// StartMonth = input(1,"Backtest Start Month")
// StartDay = input(1,"Backtest Start Day")
// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)
// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")
// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)
lev = 3
// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")
// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)
// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand
// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand
// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)
// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)
// Long entry
if openLongCondition
strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
strategy.exit("Long SL", from_entry="Long", stop=low) // Set Stop-Loss
// Short entry
if openShortCondition
strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
strategy.exit("Short SL", from_entry="Short", stop=high) // Set Stop-Loss
// Long exit
if closeLongCondition
strategy.close("Long", comment = "TP")
// Short exit
if closeShortCondition
strategy.close("Short", comment = "TP")
// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")