Strategi dorongan berganda

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

Ringkasan

Strategi dorongan berganda menetapkan band atas dan bawah berdasarkan harga pembukaan dan julat hari sebelumnya, pergi panjang pada pecah ke atas dan pendek pada pecah ke bawah.

Prinsip Strategi

  1. Mengira HH tinggi tertinggi dan LL rendah terendah di atas bar N baru-baru ini.

  2. Mengira HC terdekat tertinggi dan LC terdekat terendah hari sebelumnya.

  3. Julat hari sebelumnya Julat adalah yang lebih besar daripada HH-LC dan HC-LL.

  4. Band atas BuyLine adalah harga pembukaan ditambah K1 * Julat.

  5. Band bawah SellLine adalah harga pembukaan tolak k2 * Julat.

  6. Pergi panjang apabila penutupan di atas BuyLine. Pergi pendek apabila penutupan di bawah SellLine.

Analisis Kelebihan

Kelebihan utama strategi ini:

  1. Mencatatkan trend yang terbentuk oleh pecah di sekitar harga pembukaan.

  2. Band ditetapkan secara automatik berdasarkan turun naik sejarah, mengelakkan subjektiviti.

  3. Nilai k yang boleh disesuaikan sesuai dengan produk dengan turun naik yang berbeza.

  4. Isyarat pecah mempunyai kualiti yang agak tinggi.

  5. Tempoh penahan yang fleksibel untuk menangkap trend pada jangka masa yang berbeza.

Analisis Risiko

Risiko utama strategi ini:

  1. Kesukaran menentukan julat yang munasabah untuk pita, risiko terlalu fit.

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

  3. Tempoh penyimpanan tetap tidak dapat disesuaikan secara dinamik dengan pasaran.

  4. Data backtest yang tidak mencukupi membawa kepada pemasangan lengkung.

  5. Kesukaran melaksanakan perdagangan panjang dan pendek bersama.

Penyelesaian:

  1. Mengoptimumkan nilai k pada set data yang lebih besar untuk mengelakkan overfit.

  2. Tetapkan stop loss yang betul untuk mengehadkan kerugian setiap perdagangan.

  3. Tambah penapis trend untuk mengelakkan perdagangan countertrend.

  4. Pertimbangkan untuk mengurangkan tempoh penahan kepada intraday.

  5. Pengesahan langsung dengan pengukuran kedudukan secara beransur-ansur.

Arahan pengoptimuman

Beberapa cara untuk meningkatkan strategi:

  1. Sesuaikan nilai k secara dinamik untuk jalur.

  2. Tambah penapis kelantangan untuk mengesahkan isyarat pecah.

  3. Gunakan pergerakan stop loss untuk melindungi keuntungan.

  4. Menilai kekuatan pecah untuk ukuran kedudukan.

  5. Membezakan antara trend dan julat untuk memecah strategi.

Ringkasan

Strategi dorongan berganda boleh menangkap peluang perdagangan trend di sekitar harga pembukaan. Tetapi tetapan parameter dan pengoptimuman tempoh pegangan mempunyai ruang yang besar untuk penambahbaikan memandangkan kawalan risiko. Untuk perdagangan langsung, mulakan dengan parameter konservatif dan ukuran kedudukan secara beransur-ansur.


/*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 lanjut