Strategi ini menggunakan Bollinger Band breakout untuk menghasilkan sinyal perdagangan dan menerapkan perdagangan pasangan antara dua aset yang berkorelasi positif MCL dan YG. Ini pergi panjang MCL dan pendek YG ketika harga MCL menyentuh band atas, dan pergi pendek MCL dan panjang YG ketika harga MCL menyentuh band bawah, untuk berdagang sepanjang tren harga.
Pertama, strategi ini menghitung garis SMA dan StdDev berdasarkan harga penutupan selama periode tertentu. Kemudian menambahkan offset di atas dan di bawah SMA untuk membentuk band atas dan bawah Bollinger Bands. Sinyal beli dihasilkan ketika harga menyentuh band atas, dan sinyal jual ketika harga menyentuh band bawah.
Strategi ini menggunakan logika perdagangan breakout dari Bollinger Bands - pergi panjang ketika harga pecah di atas band atas dan pergi pendek ketika harga pecah di bawah band bawah. Bollinger Bands secara dinamis menyesuaikan lebar band berdasarkan volatilitas pasar, yang membantu menyaring kebisingan pasar selama periode rentang. Tidak seperti band saluran tetap, Bollinger Bands melebar selama volatilitas tinggi dan sempit selama volatilitas rendah. Hal ini memungkinkan untuk menyaring beberapa kebisingan ketika volatilitas tinggi, dan menangkap breakout yang lebih kecil ketika volatilitas rendah.
Ini menerapkan perdagangan pasangan antara dua aset yang berkorelasi positif MCL dan YG. Ketika MCL pecah di atas band atas, itu menunjukkan MCL berada dalam tren naik. Strategi pergi panjang MCL dan pendek YG - membeli aset yang lebih kuat dan menjual yang lebih lemah, untuk mendapatkan keuntungan dari perbedaan harga mereka.
Risiko dapat dikurangi dengan mengoptimalkan parameter, memilih aset dengan korelasi dan likuiditas yang lebih kuat, mengatur stop loss yang tepat, dll.
Secara keseluruhan strategi ini sederhana dan langsung, menangkap tren dengan Bollinger Bands dan mendapatkan alpha dari perdagangan pasangan. tetapi ada ruang untuk perbaikan dalam pengaturan parameter, stop loss, dan pemilihan pasangan. pengujian lebih lanjut dari parameter, kendaraan perdagangan, filter tren dll dapat meningkatkan kinerja strategi.
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © shark792 //@version=5 // 1. Define strategy settings strategy(title="MCL-YG Pair Trading Strategy", overlay=true, pyramiding=0, initial_capital=10000, commission_type=strategy.commission.cash_per_order, commission_value=4, slippage=2) smaLength = input.int(title="SMA Length", defval=20) stdLength = input.int(title="StdDev Length", defval=20) ubOffset = input.float(title="Upper Band Offset", defval=1, step=0.5) lbOffset = input.float(title="Lower Band Offset", defval=1, step=0.5) usePosSize = input.bool(title="Use Position Sizing?", defval=true) riskPerc = input.float(title="Risk %", defval=0.5, step=0.25) // 2. Calculate strategy values smaValue = ta.sma(close, smaLength) stdDev = ta.stdev(close, stdLength) upperBand = smaValue + (stdDev * ubOffset) lowerBand = smaValue - (stdDev * lbOffset) riskEquity = (riskPerc / 100) * strategy.equity atrCurrency = (ta.atr(20) * syminfo.pointvalue) posSize = usePosSize ? math.floor(riskEquity / atrCurrency) : 1 // 3. Output strategy data plot(series=smaValue, title="SMA", color=color.teal) plot(series=upperBand, title="UB", color=color.green, linewidth=2) plot(series=lowerBand, title="LB", color=color.red, linewidth=2) // 4. Determine long trading conditions enterLong = ta.crossover(close, upperBand) exitLong = ta.crossunder(close, smaValue) // 5. Code short trading conditions enterShort = ta.crossunder(close, lowerBand) exitShort = ta.crossover(close, smaValue) // 6. Submit entry orders if enterLong strategy.entry(id="EL", direction=strategy.long, qty=posSize) if enterShort strategy.entry(id="ES", direction=strategy.short, qty=posSize) // 7. Submit exit orders strategy.close(id="EL", when=exitLong) strategy.close(id="ES", when=exitShort)