Strategi Perdagangan Berasaskan Derivatif

Penulis:ChaoZhang, Tarikh: 2024-01-12 11:06:28
Tag:

img

Ringkasan

Strategi ini melabur peratusan modal yang sama berdasarkan penggunaan derivatif masa 1, 2, 3 dan 4 Hull Moving Average (HMA). Titik kemasukan dikenal pasti oleh trend dalam derivatif ke-2, 3 dan 4 sementara titik keluar dicipta di titik kemasukan baru atau peratusan stop loss yang tertinggal.

Logika Strategi

Strategi ini mula-mula mengira HMA. Hull Moving Average adalah purata bergerak bertingkat yang dikira dengan formula berikut:

hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm))) 

di mana src adalah harga dan sm adalah parameter input yang mengawal panjang purata.

Strategi kemudian mengira kelajuan (derivatif pertama), pecutan (derivatif kedua), jerk (derivatif ketiga) dan jounce (derivatif keempat). Ini dikira dengan mengambil perbezaan antara HMA dan nilai tertinggalnya dibahagikan dengan panjang len. Sebagai contoh, pengiraan kelajuan adalah:

speed = (hullma-hullma[len])/len

Derivatif lain dikira dengan cara yang sama.

Strategi ini menentukan masuk dan keluar dengan melihat tanda-tanda pecutan, goyang dan bergoyang. Jika ketiga-tiga penunjuk positif, ia akan pergi lama. Jika ketiga-tiga negatif, ia akan pergi pendek.

Di samping itu, strategi ini juga akan menjejaki kerugian berhenti untuk mengunci keuntungan. kedudukan panjang akan mempunyai kerugian berhenti ditetapkan berdasarkan peratusan input yang boleh diselaraskan, dan kedudukan pendek juga.

Analisis Kelebihan

Kelebihan utama strategi ini ialah ia menggunakan pelbagai turunan sebagai isyarat masuk dan keluar, yang boleh menapis beberapa isyarat palsu.

Satu lagi kelebihan adalah bahawa strategi ini sangat fleksibel. Ia mempunyai pelbagai parameter yang boleh diselaraskan termasuk panjang HMA, panjang pelbagai derivatif, peratusan stop loss dan lain-lain yang boleh dioptimumkan untuk pasaran yang berbeza.

Penggunaan trailing stop yang boleh disesuaikan juga merupakan kelebihan. Ini dapat membantu strategi menangkap lebih banyak keuntungan di pasaran yang sedang berkembang, sambil keluar dengan tepat pada masa semasa pasaran yang bergolak, mengehadkan pengeluaran maksimum.

Analisis Risiko

Risiko utama strategi ini adalah penurunan kadar hit kerana peristiwa mendadak. Jika tidak ada penapis yang relevan, peristiwa berita utama boleh menyebabkan beberapa derivatif memberikan isyarat yang salah pada masa yang sama, yang membawa kepada kerugian yang lebih besar.

Risiko lain adalah parameter boleh dengan mudah overfit. panjang HMA, panjang derivatif dan lain-lain semua boleh memberi kesan kepada keputusan. Ini memerlukan pengujian balik yang ketat untuk menilai ketahanan parameter ini di pasaran yang berbeza. Juga peratusan kerugian berhenti yang tertinggal tidak boleh terlalu luas, jika tidak kerugian boleh bola salji.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dengan beberapa cara:

  1. Tambah penapis berdasarkan peristiwa ledakan untuk menghentikan perdagangan untuk beberapa waktu selepas peristiwa berita utama, mengelakkan kehilangan titik masuk yang membawa kepada kerugian besar

  2. Melakukan ujian ketahanan parameter di seluruh pasaran.Backtest pada produk yang berbeza, tempoh masa untuk menilai kestabilan parameter

  3. Cuba untuk meningkatkan logik kemasukan. Memperkenalkan model pembelajaran mesin untuk mengenal pasti trend dan bukannya penilaian positif / negatif yang mudah

  4. Meningkatkan metodologi stop loss. Gunakan volatiliti atau mesin pembelajaran berhenti bukannya peratusan mudah berhenti

  5. Tambah keuntungan mengambil keluar. logik semasa bergantung terutamanya pada berhenti, boleh menambah tambahan upside trailing atau sasaran keuntungan keluar

Kesimpulan

Ini adalah trend jangka masa yang mengikuti strategi yang menggunakan pelbagai turunan Hull Moving Average sebagai isyarat kemasukan dan keluar dengan hentian yang menyusul untuk mengunci keuntungan. Kelebihan utama termasuk menapis isyarat palsu menggunakan pelbagai turunan, parameter yang boleh disesuaikan fleksibel dan lain-lain. Risiko yang perlu diperhatikan termasuk kesan daripada peristiwa semburan dan potensi parameter yang terlalu sesuai. Strategi boleh dioptimumkan dengan menambahkan penapis, meningkatkan ketahanan parameter, meningkatkan logik kemasukan / keluar dan sebagainya untuk menjadikannya sistem perdagangan automatik yang lebih boleh dipercayai.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Derivative Based Strategy", shorttitle="DER", currency="USD", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=1000)
len = input(1, minval=1, title="Derivatives Length")
sm = input(4, minval=1, title="HMA Length")
longTrailPerc=input(title="Trail Long Loss %", type=float,minval=0.0,step=0.1,defval=25)*0.01
shortTrailPerc=input(title="Trail Short Loss %",type=float,minval=0.0,step=0.1,defval=25)*0.01
longStopPrice=0.0
shortStopPrice=0.0
src = input(ohlc4, title="Source")
hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm)))
speed = (hullma-hullma[len])/len
accel = (speed-speed[len])/len
jerk = (accel-accel[len])/len
jounce = (jerk-jerk[len])/len
plot(speed, color=green)
plot(accel, color=purple)
plot(jerk, color=red)
plot(jounce, color=blue)
// hline(0, linestyle=solid, color=black)
if accel>0 and jerk>0 and jounce>0// and strategy.opentrades==0
    strategy.entry("openlong", strategy.long)
if accel<0 and jerk<0 and jounce<0// and strategy.opentrades==0
    strategy.entry("openshort",strategy.short)
speed_profit = (strategy.openprofit-strategy.openprofit[1])/len
accel_profit = (speed_profit-speed_profit[1])/len
jerk_profit = (accel_profit-accel_profit[1])/len
longStopPrice:=if(strategy.position_size>0)
    stopValue=ohlc4*(1-longTrailPerc)
    max(stopValue,longStopPrice[1])
else
    0
shortStopPrice:=if(strategy.position_size<0)
    stopValue=ohlc4*(1+shortTrailPerc)
    min(stopValue,shortStopPrice[1])
else
    999999
if(strategy.position_size>0)
    strategy.exit(id="closelong",stop=longStopPrice)
if(strategy.position_size<0)
    strategy.exit(id="closeshort",stop=shortStopPrice)


Lebih lanjut