Strategi pelarian silang


Tarikh penciptaan: 2023-10-12 16:47:55 Akhirnya diubah suai: 2023-10-12 16:47:55
Salin: 0 Bilangan klik: 584
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi perpindahan rata-rata adalah strategi perdagangan kuantitatif yang sangat biasa. Strategi ini menggunakan perpindahan rata-rata untuk menilai trend, untuk mendapatkan keuntungan. Apabila anda melintasi rata-rata bergerak jangka pendek di atas rata-rata bergerak jangka panjang, ini menunjukkan bahawa harga saham mula naik, anda boleh melakukan lebih banyak; apabila anda melintasi rata-rata bergerak jangka pendek di bawah rata-rata bergerak jangka panjang, ini menunjukkan bahawa harga saham mula turun, anda boleh melakukan kosong.

Prinsip Strategi

Strategi ini berdasarkan pada garisan rata-rata bergerak untuk menentukan masa pembelian dan penjualan.upOrDowndanlongOrShortDua parameter masukan Boolean untuk menilai terlalu banyak kerja kosong; menggunakanpercentInputMasukkan parameter untuk menetapkan peratusan penurunan harga saham; gunakanclosePositionDaysMasukkan parameter untuk menetapkan bilangan hari memegang kedudukan.

Logik utama strategi ini adalah: mengira kenaikan dan penurunan hari ini berbanding semalam, dan memberi isyarat perdagangan jika mencapai peratusan penurunan nilai input. Jika bullish, lakukan lebih banyak apabila kenaikan hari ini berbanding semalam melebihi penurunan nilai; jika bearish, lakukan kosong apabila hari ini berbanding semalam turun melebihi penurunan nilai.

Selepas melakukan lebih banyak masa kosong, ia akan ditandakan pada carta dengan warna yang berbeza pada hari itu dan 4 hari selepas itu. 4 hari selepas itu, kedudukan kosong akan dihapuskan secara automatik.

Kelebihan Strategik

  • Menggunakan garpu bergerak adalah cara yang terbukti dan boleh dipercayai untuk menentukan trend pasaran
  • Strategi logik mudah difahami dan mudah dilaksanakan
  • Anda boleh mengawal kekerapan strategi dengan menyesuaikan parameter
  • Mekanisme penangguhan kerugian automatik dapat mengawal risiko dengan berkesan

Risiko Strategik

  • Garis purata bergerak mempunyai keterlambatan dan mungkin terlepas masa perubahan harga yang cepat
  • Harga saham mungkin mengalami perubahan besar dalam jangka masa pendek, menyebabkan isyarat silang yang tidak perlu
  • ParameterSet parameter yang tidak betul juga boleh menjejaskan kesan polisi
  • Kegagalan untuk menangani kesan kejadian yang tidak dijangka

Langkah kawalan risiko:

  1. Mengoptimumkan parameter purata bergerak, tempoh yang tepat untuk membantu penapisan bunyi
  2. Meningkatkan peratusan penurunan harga saham, mengurangkan transaksi yang tidak perlu
  3. Uji hari yang berbeza untuk mengawal kerugian tunggal
  4. Isyarat trend yang disahkan lebih lanjut bersama-sama dengan petunjuk lain

Arah pengoptimuman strategi

  • Boleh dipertimbangkan untuk menukar purata bergerak kepada purata bergerak indeks seperti EMA, DMA, dan lain-lain untuk menjadikannya lebih sensitif terhadap perubahan harga
  • Menambah mekanisme penangguhan kerugian, seperti penangguhan segera apabila garis rata-rata dilanggar
  • Menambah petunjuk teknikal lain untuk kombinasi, seperti MACD, KDJ dan lain-lain, meningkatkan peluang kemenangan strategi
  • Anda boleh mencuba kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik.
  • Optimumkan masa masuk dan keluar, seperti breakout entrada

ringkaskan

Strategi crossover linear bergerak adalah strategi perdagangan kuantitatif yang sangat mudah dan praktikal. Ia memanfaatkan kecenderungan harga saham dengan menilai hubungan trend jangka pendek dan jangka panjang. Strategi ini mudah dilaksanakan, logiknya jelas, dan merupakan asas bagi banyak strategi perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")