
Strategi ini adalah berdasarkan pada indikator Bollinger Bands, digabungkan dengan indikator momentum, strategi perdagangan gabungan untuk mencapai kemunduran Bollinger Bands dan momentum untuk menembusi Bollinger Bands. Apabila harga menembusi garis tengah dari Bollinger Bands di bawah, anda boleh melakukan kenaikan harga apabila harga menembusi garis tengah dari Bollinger Bands di atas, dan anda boleh menjejaki penangguhan kerugian dan meratakan kedudukan selepas mencapai sasaran keuntungan dan kerugian.
Kaedah ini menggunakan Brin band tengah sma sebagai penunjuk rata-rata, bandwidth melalui parameter mult*Stdev perubahan dinamik. Apabila harga dari bawah menembusi garisan tengah, menunjukkan harga mengambil tindakan ke atas, maka lakukan lebih banyak; Apabila harga dari atas menembusi garisan tengah, menunjukkan harga mengambil tindakan ke bawah, maka lakukan kosong.
Secara khusus, pengiraan pita Brin dilakukan dengan dua parameter panjang dan banyak, panjang panjang menentukan kitaran garis tengah, banyak menentukan saiz lebar jalur. EnterLong dan enterShort menentukan masa penembusan, exitLong dan exitShort mengira harga berhenti rugi berdasarkan harga masuk dan nisbah stop loss sasaran.
Strategi ini menggabungkan kemerosotan garis purata dan indikator momentum, yang dapat menangkap pergerakan yang lebih besar pada peringkat permulaan trend. Perbandingan dengan garis purata yang hanya mengikuti, penilaian momentum berdasarkan lebar bandwidth Brin ditambahkan, yang dapat menyaring beberapa pecah palsu. Tetapan stop loss berdasarkan pengiraan harga masuk secara langsung, tanpa campur tangan manusia.
Anda boleh mengoptimumkan strategi anda dengan menyesuaikan kitaran garis tengah Brin, parameter bandwidth, dan jangkauan stop loss untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Strategi ini mengintegrasikan kelebihan pulangan Brin dan indikator momentum, dapat menangkap sebahagian perdagangan secara beransur-ansur ketika trend bermula, dapat disesuaikan dengan pasaran pada tahap yang berbeza melalui penyesuaian parameter, merupakan sistem penembusan yang agak umum. Tetapan stop loss dapat mengurangkan campur tangan manusia secara langsung dari pengiraan harga. Strategi ini juga mempunyai beberapa ruang untuk penambahbaikan, seperti menambahkan lebih banyak penunjuk keputusan tambahan, yang akan diperbaiki lagi dalam penyelidikan dan pengoptimuman 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")