Strategi ini adalah sistem perdagangan kuantitatif jangka masa 4 jam berdasarkan Bollinger Bands, menggabungkan konsep perdagangan trend breakout dan mean reverson. Strategi ini menangkap momentum pasaran melalui breakout Bollinger Bands sambil menggunakan harga mean reverson untuk mengambil keuntungan dan melaksanakan stop-loss untuk kawalan risiko. Ia menggunakan leverage 3x, memastikan pulangan sambil mempertimbangkan pengurusan risiko dengan teliti.
Logik teras adalah berdasarkan unsur-unsur utama berikut: 1. Menggunakan purata bergerak 20 tempoh sebagai jalur tengah, dengan 2 penyimpangan piawai untuk julat turun naik 2. Isyarat masuk: Panjang apabila badan lilin (rata-rata terbuka dan dekat) pecah di atas jalur atas, pendek apabila pecah di bawah jalur bawah 3. Isyarat keluar: Tutup kedudukan panjang apabila dua lilin berturut-turut mempunyai kedua-dua harga terbuka dan ditutup di bawah jalur atas dan ditutup di bawah terbuka; logik terbalik untuk kedudukan pendek 4. Kawalan risiko: Tetapkan stop-loss pada titik tinggi/rendah lilin semasa untuk memastikan kerugian terkawal setiap perdagangan
Strategi ini menggabungkan ciri-ciri Bollinger Bands
/*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")