
Strategi penembusan dua band gelombang adalah strategi pengesanan trend. Ia menggunakan aliran naik dan turun band gelombang untuk menentukan trend harga, dan membina kedudukan bertopeng apabila harga menembusi band gelombang dalaman, dan posisi terbuka apabila harga jatuh ke band gelombang luar.
Strategi ini mulakan dengan mengira purata dan perbezaan piawai dalam tempoh yang ditetapkan, dengan menyesuaikan nilai perbezaan piawai untuk membina pita gelombang ganda. Pita gelombang dalaman terdiri daripada rata-rata positif negatif satu perbezaan piawai, dan pita gelombang luar terdiri daripada rata-rata positif negatif 1.5 perbezaan piawai.
Apabila harga menembusi rel dalaman, ia dianggap sebagai permulaan bull market, jadi buat lebih banyak; apabila harga jatuh dari rel dalaman, ia dianggap sebagai permulaan bear market, jadi buat lebih banyak.
Keluar dari penangguhan selepas melakukan lebih adalah syarat harga jatuh ke bawah landasan luar. Keluar dari penangguhan selepas melakukan penangguhan adalah syarat harga menembusi landasan luar.
Strategi ini juga menetapkan mekanisme keluar seperti Stop Loss, Tracking Loss, dan Stop Stop.
Strategi penembusan dua gelombang mempunyai kelebihan berikut:
Strategi untuk menembusi dua gelombang ini juga mempunyai risiko:
Untuk risiko di atas, parameter boleh diselaraskan dengan sewajarnya, atau digabungkan dengan penapis indikator lain, atau secara manual memantau kesan penembusan, untuk mengurangkan risiko.
Strategi penembusan jalur gelombang ganda boleh dioptimumkan dalam beberapa aspek:
Strategi penembusan jalur gelombang ganda secara keseluruhan adalah strategi pemantauan trend yang lebih tipikal. Strategi ini menggunakan jalur gelombang ganda untuk menetapkan kawasan keuntungan dan menetapkan mekanisme keluar sains untuk mengawal risiko, yang dapat memberikan kesan yang lebih baik jika parameter dioptimumkan dan risiko dikendalikan.
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
longCondition = close>inu and rising(outu,1)
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)
shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)
strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)