Strategi ini berdasarkan pada penunjuk Bollinger Bands, digabungkan dengan penunjuk momentum untuk melaksanakan strategi perdagangan gabungan pembalikan Bollinger Bands dan pecah momentum. Ia pergi lama apabila harga memecahkan garis tengah Bollinger Bands dari bawah dan pergi pendek apabila harga memecahkan garis tengah dari atas. Ia juga mengesan stop loss dan mengambil keuntungan berdasarkan harga kemasukan untuk menutup kedudukan apabila nisbah risiko-balasan sasaran dipenuhi.
Strategi ini menggunakan garis tengah Bollinger Bands sma sebagai penunjuk purata bergerak, dan secara dinamik menyesuaikan lebar jalur melalui param mult * stdev. Apabila harga menembusi garis tengah dari bawah, ia menunjukkan momentum menaik dan dengan itu pergi panjang. Apabila harga menembusi garis tengah dari atas, ia menunjukkan momentum menurun dan dengan itu pergi pendek. Selepas memasuki kedudukan panjang / pendek, parameter stop loss dan mengambil keuntungan ditetapkan untuk mengesan keuntungan dan mengawal risiko.
Secara khusus, Bollinger Band dikira dengan dua parameter - panjang dan banyak. Panjang menentukan tempoh garis tengah dan banyak menentukan lebar jalur. enterLong dan enterShort menilai masa pecah. exitLong dan exitShort mengira stop loss dan mengambil harga keuntungan berdasarkan harga masuk dan peratusan sasaran.
Strategi ini menggabungkan pembalikan kepada purata dan momentum, yang membolehkannya menangkap trend utama pada peringkat awal. Berbanding dengan hanya mengesan purata bergerak, penghakiman momentum tambahan berdasarkan lebar Bollinger Bands dapat menapis beberapa pecah palsu. Hentikan kerugian dan ambil keuntungan ditetapkan secara langsung berdasarkan harga kemasukan tanpa campur tangan manual.
Parameter seperti tempoh, lebar jalur dan julat stop loss boleh dioptimumkan untuk menjadikan strategi dapat disesuaikan dengan keadaan pasaran yang berbeza.
Strategi ini menggabungkan kekuatan pembalikan dan momentum Bollinger Bands, yang membolehkannya menangkap beberapa trend pada peringkat awal. Melalui penyesuaian parameter, ia dapat menyesuaikan diri dengan peringkat pasaran yang berbeza. Pengiraan stop loss / take profit langsung mengurangkan campur tangan manual. Masih ada ruang untuk peningkatan, misalnya menggabungkan lebih banyak penunjuk tambahan. Ini akan ditingkatkan secara beransur-ansur dalam penyelidikan dan pengoptimuman lanjut.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("BURATINO", overlay=true) // Входные параметры length = input(20, minval=1, title="Length") mult = input(2.0, minval=0.1, maxval=5, title="Multiplier") target_percent = input(0.5, minval=0.1, title="Target Percent") stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent") // Расчет полос Боллинджера basis = sma(close, length) dev = mult * stdev(close, length) upper = basis + dev lower = basis - dev // Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга enterLong = cross(close, basis) and close[1] < basis[1] // Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта enterShort = cross(basis, close) and close[1] > basis[1] // Закрытие лонга после роста цены на указанный процент или падения на указанный процент exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100)) // Закрытие шорта после падения цены на указанный процент или роста на указанный процент exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100)) // Управление позициями и ограничениями на открытие противоположных позиций strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0) strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0) strategy.close("Long", when = exitLong) strategy.close("Short", when = exitShort) // Визуализация полос Боллинджера plot(basis, color=color.blue, title="Basis") plot(upper, color=color.red, title="Upper") plot(lower, color=color.green, title="Lower")