Strategi Breakout Double Band


Tarikh penciptaan: 2023-12-25 13:20:31 Akhirnya diubah suai: 2023-12-25 13:20:31
Salin: 0 Bilangan klik: 746
1
fokus pada
1623
Pengikut

Strategi Breakout Double Band

Gambaran keseluruhan

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.

Prinsip Strategi

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.

Analisis kelebihan

Strategi penembusan dua gelombang mempunyai kelebihan berikut:

  1. Menggunakan dua pita gelombang untuk menentukan pergerakan harga, ia boleh mengesan trend dengan berkesan.
  2. Menerobos turun naik dalaman untuk membina kedudukan dan mengelakkan pertukaran balik yang tidak perlu;
  3. Menetapkan Hentikan, Hentikan Kerosakan dan Hentikan Tracking untuk mengawal risiko dengan berkesan;
  4. Parameter boleh disesuaikan dan boleh dioptimumkan untuk pelbagai jenis.

Analisis risiko

Strategi untuk menembusi dua gelombang ini juga mempunyai risiko:

  1. Apabila pasaran bergolak, ia boleh menyebabkan penempatan dan penutupan kerugian yang kerap berlaku.
  2. Penetapan parameter yang tidak betul boleh menyebabkan terlalu mudah untuk membina gudang atau sukar untuk menghentikannya;
  3. Penembusan kadang-kadang mempunyai ciri-ciri isyarat palsu, yang boleh menyebabkan risiko penembusan palsu.

Untuk risiko di atas, parameter boleh diselaraskan dengan sewajarnya, atau digabungkan dengan penapis indikator lain, atau secara manual memantau kesan penembusan, untuk mengurangkan risiko.

Arah pengoptimuman

Strategi penembusan jalur gelombang ganda boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter garis rata-rata dan standard deviasi untuk menjadikan gelombang lebih sesuai dengan ciri-ciri pelbagai jenis;
  2. Menambah penapisan kepada penunjuk seperti Volume dan MACD untuk mengelakkan penembusan palsu;
  3. Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara dinamik;
  4. Menyalin strategi dalam julat frekuensi tinggi untuk memperluaskan ruang keuntungan.

ringkaskan

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.

Kod sumber strategi
/*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)