Strategi perdagangan berbasis derivatif


Tanggal Pembuatan: 2024-01-12 11:06:28 Akhirnya memodifikasi: 2024-01-12 11:06:28
menyalin: 0 Jumlah klik: 536
1
fokus pada
1617
Pengikut

Strategi perdagangan berbasis derivatif

Ringkasan

Strategi ini didasarkan pada investasi menggunakan Hull Moving Average (HMA) dengan 1, 2, 3, dan 4 variabel waktu. Ini akan menginvestasikan sejumlah uang.

Prinsip Strategi

Strategi ini pertama-tama menghitung HMA. Hull Moving Average adalah rata-rata bergerak berbobot yang dihitung menggunakan rumus berikut:

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

src adalah harga, dan sm adalah parameter input yang mengontrol panjang rata-rata.

Strategi ini kemudian menghitung kecepatan (derivatif kelas 1), akselerasi (derivatif kelas 2), getaran (derivatif kelas 3) dan oscillasi (derivatif kelas 4). Ini dihitung dengan menghitung perbedaan antara HMA dan nilai keterlambatan dan kemudian dibagi dengan panjang len. Misalnya, rumus untuk menghitung kecepatan adalah:

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

Cara menghitung variabel lainnya mirip.

Strategi ini memutuskan masuk dan keluar dengan melihat positif-negatif dari akselerasi, getaran dan getaran. Jika tiga indikatornya positif, maka akan membuka kartu plus. Jika tiga indikatornya negatif, maka akan membuka kartu kosong.

Selain itu, strategi ini juga akan trailing stop loss untuk mengunci keuntungan. Posisi multihead akan diatur stop loss berdasarkan persentase input yang dapat disesuaikan, sama dengan posisi kosong head.

Analisis Keunggulan

Salah satu keuntungan utama dari strategi ini adalah bahwa ia menggunakan beberapa variabel sebagai sinyal masuk dan keluar, yang dapat menyaring beberapa sinyal palsu. Biasanya terlalu lemah untuk memutuskan masuk hanya dengan mengandalkan kecepatan (variabel kelas 1) tetapi dengan kombinasi variabel kelas 2, 3, dan 4 dapat membangun sistem yang lebih kuat.

Keuntungan lain dari strategi ini adalah fleksibilitasnya. Ada banyak parameter yang dapat disesuaikan, termasuk panjang HMA, panjang berbagai variabel, persentase stop loss, dan banyak lagi, yang dapat dioptimalkan untuk pasar yang berbeda.

Menggunakan tracking stop loss yang dapat disesuaikan juga merupakan keuntungan. Hal ini dapat membantu strategi untuk mendapatkan lebih banyak keuntungan dalam situasi yang sedang tren, dan keluar tepat waktu dalam situasi yang bergolak, membatasi penarikan maksimum.

Analisis risiko

Risiko utama dari strategi ini adalah penurunan tingkat hit yang disebabkan oleh kejadian mendadak. Jika tidak ada aturan penyaringan yang relevan, setelah kejadian berita besar, beberapa indikator dapat muncul secara bersamaan dengan sinyal yang salah, yang menyebabkan kerugian yang lebih besar. Anda dapat mengatur beberapa filter berita, atau menunda strategi untuk sementara waktu setelah kejadian mendadak untuk mengurangi risiko ini.

Risiko lain adalah parameter yang mudah terlalu cocok. Parameter seperti panjang HMA, panjang masing-masing derivatif dapat mempengaruhi hasil. Ini membutuhkan metode retrospeksi yang ketat untuk menilai kehandalan parameter ini di berbagai pasar.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan mekanisme penyaringan berdasarkan kejadian yang tidak terduga, menghentikan perdagangan untuk sementara waktu setelah peristiwa berita besar, untuk menghindari kehilangan titik masuk yang menyebabkan kerugian yang terlalu besar

  2. Melakukan pengujian kembali parameter untuk memastikan stabilitasnya. Data dari berbagai varietas, periode waktu yang berbeda, dan evaluasi stabilitas pengaturan parameter

  3. Cobalah untuk mengubah masuk ke lapangan logika. Dapat memperkenalkan algoritma pembelajaran mesin untuk mengidentifikasi tren secara otomatis, bukan hanya penilaian positif dan negatif.

  4. Memperbaiki cara stop loss. Stop loss dapat digunakan dengan stop loss fluktuasi atau stop loss pembelajaran mesin sebagai pengganti stop loss pelacakan persentase sederhana

  5. Tambah Stop Exit. Logika yang ada saat ini terutama bergantung pada stop loss, dapat ditambahkan tambahan ke atas untuk menelusuri stop loss atau target profit exit

Meringkaskan

Strategi ini adalah strategi pelacakan tren multi-skala waktu. Strategi ini menggunakan beberapa variabel dari Hull Moving Average sebagai sinyal posisi dan posisi, menggunakan tracking stop loss untuk mengunci keuntungan. Keuntungan utama adalah menggunakan beberapa variabel untuk menyaring sinyal palsu, fleksibilitas parameter strategi, dan lain-lain.

Kode Sumber Strategi
/*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)