
Strategi ini didasarkan pada indikator Bollinger Bands, kombinasi dengan indikator momentum, strategi perdagangan kombinasi untuk mencapai Bollinger Bands Regression dan momentum breakout. Berdagang ketika harga menembus garis tengah dari Bollinger Bands di bawah, berdagang dengan posisi kosong ketika harga menembus garis tengah dari Bollinger Bands di atas, dan melacak stop loss stop loss, dan berdagang setelah mencapai target profit loss ratio.
Kebijakan ini menggunakan sma garis tengah pita Brin sebagai indikator rata-rata, bandwidth dengan parameter mult*Stdev Dynamic Adjustment. Ketika harga dari bawah menembus garis tengah, harga mengambil tindakan ke atas, dan melakukan over. Ketika harga dari atas menembus garis tengah, harga mengambil tindakan ke bawah, dan melakukan over. Setelah melakukan over, set parameter stop loss untuk melacak keuntungan dan mengendalikan risiko.
Secara khusus, perhitungan pita Brin dilakukan dengan dua parameter length dan mult, panjang panjang menentukan siklus garis tengah, mult menentukan ukuran bandwidth. EnterLong dan enterShort menentukan waktu terobosan, exitLong dan exitShort menghitung harga stop loss berdasarkan harga masuk dan stop loss target.
Strategi ini menggabungkan regressi rata-rata dan indikator momentum untuk menangkap tren yang lebih besar pada tahap awal tren. Dibandingkan dengan rata-rata yang hanya mengikuti tren, penilaian momentum yang lebih besar berdasarkan bandwidth Brin ditambahkan, yang dapat menyaring beberapa false breakout. Pengaturan stop loss didasarkan langsung pada perhitungan harga masuk, tanpa intervensi manual.
Strategi ini dapat dioptimalkan dengan menyesuaikan siklus garis tengah Brin, parameter bandwidth, dan area stop loss, sehingga strategi ini dapat disesuaikan dengan situasi pasar yang berbeda.
Strategi ini mengintegrasikan keuntungan dari Brin band regression dan indikator momentum, dapat menangkap sebagian dari tren ketika tren dimulai, dapat disesuaikan dengan berbagai tahap pasar melalui penyesuaian parameter, merupakan sistem terobosan yang lebih umum. Pengaturan stop loss langsung dari perhitungan harga dapat mengurangi intervensi buatan. Strategi ini juga memiliki beberapa ruang untuk perbaikan, seperti menambahkan lebih banyak indikator keputusan tambahan, dll, yang akan lebih disempurnakan dalam penelitian dan optimalisasi selanjutnya.
/*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")