Strategi dorongan ganda

Penulis:ChaoZhang, Tanggal: 2023-09-19 16:27:12
Tag:

Gambaran umum

Strategi dorongan ganda menetapkan band atas dan bawah berdasarkan harga pembukaan dan kisaran hari sebelumnya, pergi panjang pada terobosan ke atas dan pendek pada terobosan ke bawah.

Prinsip Strategi

  1. Menghitung HH tinggi tertinggi dan LL rendah terendah di atas bar N terbaru.

  2. Menghitung HC dekat tertinggi dan LC dekat terendah hari sebelumnya.

  3. Jangkauan hari sebelumnya Jangkauan adalah yang lebih besar dari HH-LC dan HC-LL.

  4. Band atas BuyLine adalah harga pembukaan ditambah k1 * Range.

  5. Band bawah SellLine adalah harga pembukaan dikurangi k2*Range.

  6. Pergi panjang ketika close break di atas BuyLine. Pergi pendek ketika close break di bawah SellLine.

Analisis Keuntungan

Keuntungan utama dari strategi ini:

  1. Menangkap tren yang terbentuk oleh penembusan di sekitar harga pembukaan.

  2. Band diatur secara otomatis berdasarkan volatilitas historis, menghindari subjektivitas.

  3. Nilai k yang dapat disesuaikan sesuai dengan produk dengan volatilitas yang berbeda.

  4. Sinyal breakout memiliki kualitas yang relatif tinggi.

  5. Periode penyimpanan yang fleksibel untuk menangkap tren pada kerangka waktu yang berbeda.

Analisis Risiko

Risiko utama dari strategi ini:

  1. Kesulitan menentukan rentang yang wajar untuk pita, risiko overfit.

  2. Penembusan mungkin menjadi sinyal palsu, perlu stop loss.

  3. Periode kepemilikan tetap tidak dapat beradaptasi secara dinamis dengan pasar.

  4. Data backtest yang tidak cukup mengarah pada penyesuaian kurva.

  5. Kesulitan menerapkan perdagangan panjang dan pendek bersama.

Solusi:

  1. Mengoptimalkan nilai k pada dataset yang lebih besar untuk menghindari overfit.

  2. Atur stop loss yang tepat untuk membatasi kerugian per perdagangan.

  3. Tambahkan filter tren untuk menghindari perdagangan kontra-tren.

  4. Pertimbangkan untuk mengurangi periode penyimpanan menjadi intraday.

  5. Validasi langsung dengan ukuran posisi bertahap.

Arahan Optimasi

Beberapa cara untuk meningkatkan strategi:

  1. Sesuaikan secara dinamis nilai k untuk band.

  2. Tambahkan filter volume untuk mengkonfirmasi sinyal breakout.

  3. Gunakan stop loss bergerak untuk melindungi keuntungan.

  4. Periksa kekuatan tembusan untuk ukuran posisi.

  5. Membedakan antara tren dan kisaran untuk memecah strategi.

Ringkasan

Strategi dorongan ganda dapat menangkap peluang perdagangan tren di sekitar harga pembukaan. Namun pengaturan parameter dan pengoptimalan periode penahan memiliki ruang besar untuk perbaikan mengingat pengendalian risiko. Untuk perdagangan langsung, mulailah dengan parameter konservatif dan ukur posisi secara bertahap.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Dual Thrust Strategy",overlay=true,initial_capital=1000)
k1=input(0.67,type=float,step=0.01)
k2=input(0.62,type=float,step=0.01)
TimeFrame=input('240')
len=input(20)
HH=security(syminfo.tickerid,TimeFrame,highest(high,len),barmerge.lookahead_off)
LC=security(syminfo.tickerid,TimeFrame,lowest(close,len),barmerge.lookahead_off)
HC=security(syminfo.tickerid,TimeFrame,highest(close,len),barmerge.lookahead_off)
LL=security(syminfo.tickerid,TimeFrame,lowest(low,len),barmerge.lookahead_off)
Range=max(HH-LC,HC-LL)
BuyLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)+k1*Range
SellLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)-k2*Range
plot(BuyLine,color=blue,linewidth=2,offset=1,transp=70)
plot(SellLine,color=red,linewidth=2,offset=1,transp=70)


LongCondition=crossover(close,BuyLine)
ShortCondition=crossunder(close,SellLine)
strategy.entry("enter long",true,1,when=LongCondition)
strategy.entry("enter short",false,1,when=ShortCondition)
plotshape(LongCondition and strategy.position_size<0?low:na,style=shape.labelup,location=location.absolute,color=blue,text="Long",textcolor=white,size=size.small)
plotshape(ShortCondition and strategy.position_size>0?high:na,style=shape.labeldown,location=location.absolute,color=red,text="Short",textcolor=white,size=size.small)
alertcondition(LongCondition and strategy.position_size<0,title='Long_DT')
alertcondition(ShortCondition and strategy.position_size>0,title='Short_DT')

Lebih banyak