Strategi Dagangan Kuantitatif Berdasarkan Indikator Vortex yang Diperbaiki

Penulis:ChaoZhang, Tarikh: 2023-11-14 14:40:54
Tag:

img

Ringkasan

Strategi ini adalah versi yang ditingkatkan dari strategi Indikator Vortex. Berdasarkan Indikator Vortex asal, ia menggabungkan beberapa ciri baru, termasuk mencetuskan perdagangan berdasarkan ambang, meluruskan garis vortex dengan EMA, menambah stop loss dan mengambil keuntungan, melaksanakan strategi panjang sahaja, pendek sahaja atau panjang / pendek, dll. Ia sesuai untuk pelabur yang ingin menggunakan Indikator Vortex yang lebih baik dalam perdagangan kuantitatif.

Prinsip-prinsip

Indikator utama strategi ini adalah Indikator Pusaran yang dipertingkatkan. Indikator Pusaran tradisional membentuk garis pusaran positif dan negatif dengan mengira jumlah mutlak turun naik harga. Apabila garis positif melintasi di atas garis negatif, ia menghantar isyarat beli. Apabila garis negatif melintasi di bawah garis positif, ia menghantar isyarat jual.

Strategi ini membuat peningkatan berikut kepada Indikator Vortex tradisional:

  1. Daripada hanya bergantung pada persilangan garis, ia memperkenalkan konsep ambang. Perdagangan hanya dicetuskan apabila penyebaran antara garis positif dan negatif melebihi ambang yang telah ditetapkan. Ini membantu menapis persilangan kecil dan tidak penting.

  2. Garis pusaran dihaluskan dengan EMA untuk mengurangkan gerak lengkung.

  3. Fungsi Stop Loss dan Take Profit ditambah. nisbah kerugian / keuntungan boleh ditetapkan terlebih dahulu untuk kawalan risiko yang lebih baik.

  4. Pedagang boleh memilih antara strategi hanya panjang, hanya pendek atau panjang / pendek untuk memenuhi keperluan yang berbeza.

Dengan penambahbaikan ini, strategi ini dapat mengesan trend dengan lebih dipercayai dan berfungsi dengan baik dalam ujian belakang.

Analisis Kelebihan

  1. Indikator Vortex yang dipertingkatkan menapis isyarat yang tidak sah dan mengelakkan rehat palsu.

  2. Menggunakan ambang untuk isyarat dan bukannya salib mudah boleh lebih dipercayai mengesan titik pembalikan trend.

  3. Ciri-ciri stop loss / mengambil keuntungan membolehkan nisbah keuntungan / kerugian ditetapkan terlebih dahulu untuk mengawal risiko untuk setiap perdagangan, sejajar dengan prinsip perdagangan yang rasional.

  4. Memilih antara hanya panjang, hanya pendek atau panjang/pendek memberikan fleksibiliti untuk menyesuaikan diri dengan peringkat pasaran yang berbeza dan memenuhi keperluan peniaga yang berbeza.

  5. Strategi ini mempunyai parameter yang direka dengan baik dan hasil backtest yang baik, memberikan nilai praktikal.

Analisis Risiko

  1. Strategi ini berfungsi terutamanya untuk pasaran trend. Prestasi mungkin mengalami kesukaran semasa pasaran yang terikat julat.

  2. Garis pusaran secara semula jadi sensitif terhadap turun naik harga.

  3. Jika ambang ditetapkan terlalu tinggi, ia mungkin terlepas perdagangan. Jika ditetapkan terlalu rendah, ia mungkin menghasilkan isyarat palsu. Ujian yang luas diperlukan untuk mencari tahap optimum.

  4. Stop loss boleh diambil semasa peristiwa black swan. Pedagang perlu waspada terhadap risiko ini.

Arahan pengoptimuman

  1. Pertimbangkan untuk menggabungkan dengan penunjuk lain untuk pengesahan isyarat dan penilaian yang lebih komprehensif.

  2. Uji kepekaan parameter di pelbagai stok dan optimumkan tetapan.

  3. Penyelidikan teknik stop loss adaptif untuk menyesuaikan berhenti di sepanjang trend utama.

  4. Memperkenalkan pembelajaran mesin dan sebagainya untuk mengoptimumkan parameter secara automatik.

  5. Mengkaji kaedah pengindeksan berdasarkan strategi ini untuk meningkatkan kapasiti.

Kesimpulan

Strategi ini membuat banyak penambahbaikan berbanding Indikator Vortex tradisional dan membentuk sistem perdagangan kuantitatif yang agak matang dan boleh dipercayai. Menggabungkan penapisan trend dan kawalan risiko, ia mengelakkan risiko terlalu banyak dari perdagangan yang tersebar dan menggunakan keupayaan menangkap trend dari indikator itu sendiri. Dengan pengoptimuman parameter dan teknik gabungan yang lebih lanjut, strategi dapat dibuat lebih stabil dan responsif. Secara keseluruhan, ia mempunyai nilai praktikal sebagai versi yang ditingkatkan dari strategi Indikator Vortex.


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

// [Guz] Custom Vortex
// Custom version of the Vortex indicators that adds many features:
// -Triggers trades after a threshold is reached instead of the normal vortex lines cross (once the difference between the 2 lines is important enough)
// -Smooths the Vortex lines with an EMA
// -Adds Take Profit and Stop Loss selection
// -Adds the possibility to go Long only, Short only or both of them
// ! notice that it uses 10% position size and 0.04% trade fee, found on some crypto exchanges futures contracts
// Allows testing leverage with position size moddification (values above 100%, to be done with caution)
// Not an investment advice 

//@version=4
strategy(title="%-[Guz] Vortex Indicator Custom", shorttitle="%-[Guz] Vortex Indicator Custom", overlay=true)

period_ = input(300, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
ema_len = input(title="EMA Length", defval=7)
tresh= input(title="Threshold", defval=16.2, step=0.1)
VIP = ema(VMP / STR,ema_len)
VIM = ema(VMM / STR,ema_len)
//plot(VIP, title="VI +", color=#2962FF)
//plot(VIM, title="VI -", color=#E91E63)

condition_long = crossover(VIP-VIM, tresh/100)
condition_close = cross(VIP-VIM,0)
condition_short = crossunder(VIP-VIM, -tresh/100)

is_short=input(true,title="Do Short?")
is_long=input(true,title="Do Long?")


if (condition_long and is_long)
    strategy.entry("VortexLE", strategy.long, comment="Long Algo")
if (condition_short and is_short)
	strategy.entry("VortexSE", strategy.short, comment="Short Algo")
if (condition_close)
    strategy.close_all()

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


stop_loss_long_percent = input(2.5, title="Stop Loss Long", minval=0.1, step=0.1)
stop_loss_long = (1-stop_loss_long_percent/100)*strategy.position_avg_price

take_profit_long_percent = input(1.5, title="Take Profit Long", minval=0.1, step=0.1)
take_profit_long = (1+take_profit_long_percent/100)*strategy.position_avg_price


stop_loss_short_percent = input(2.5,title="Stop Loss Short", minval=0.1, step=0.1) 
stop_loss_short = (1+stop_loss_short_percent/100)*strategy.position_avg_price

take_profit_short_percent = input(1.7,title="Take Profit Short", minval=0.1, step=0.1)
take_profit_short = (1-take_profit_short_percent/100)*strategy.position_avg_price

strategy.exit("TP-SL Long", "VortexLE",  limit = take_profit_long , stop = stop_loss_long) //, trail_price = trail_price_long , trail_offset = trail_offset_long) //, trail_offset=tsl_offset_tick, trail_price=tsl_offset_tick) 
strategy.exit("TP-SL Short", "VortexSE",  limit = take_profit_short , stop = stop_loss_short)  
 


Lebih lanjut