RSI-VWAP Strategi kuant jangka pendek

Penulis:ChaoZhang, Tarikh: 2024-01-19 14:21:15
Tag:

img

Ringkasan

Strategi ini dinamakan RSI-VWAP Short-term Strategy. Ia menggunakan penunjuk RSI dan Volume Weighted Average Price (VWAP) sebagai penunjuk teknikal untuk menjana isyarat panjang dan pendek dan dengan itu membuat keputusan membeli dan menjual. Strategi ini bertujuan untuk menangkap fenomena overbought dan oversold di pasaran jangka pendek untuk mencapai pulangan yang berlebihan.

Prinsip Strategi

  1. Gunakan penunjuk RSI untuk menentukan sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual.
  2. Penunjuk RSI menggunakan VWAP dan bukannya harga penutupan sebagai data sumber.
  3. Isyarat beli dihasilkan apabila RSI melintasi 20 dari kawasan oversold. Isyarat jual dihasilkan apabila RSI melintasi 80 dari kawasan overbought.
  4. Strategi ini hanya berjalan lama dan tidak pergi pendek. iaitu, hanya membeli dalam oversold dan menjual dalam overbought.

Analisis Kelebihan

  1. Menggunakan VWAP sebagai sumber data untuk RSI menjadikan penunjuk RSI menilai pasaran dengan lebih tepat, mengelakkan ditipu oleh pecah palsu.
  2. Hanya pergi panjang mengurangkan kekerapan perdagangan dan membantu mendapatkan pulangan stabil jangka panjang.
  3. Parameter RSI adalah 17, yang sesuai untuk operasi jangka pendek.
  4. Kaedah perdagangan frekuensi rendah menjangkakan lebih sedikit dagangan, mengurangkan kos transaksi dan membantu mendapatkan kadar pulangan yang lebih tinggi.

Analisis Risiko

  1. Terdapat risiko terlalu sesuai dalam pengujian semula strategi kuant dan hasil sebenar mungkin berbeza dari pengujian semula.
  2. Tidak dapat merebut peluang dalam trend menurun dengan hanya pergi lama.
  3. Kriteria overbought dan oversold mungkin tidak sesuai untuk semua produk, parameter perlu diselaraskan untuk produk yang berbeza.
  4. Mana-mana penunjuk teknikal boleh menghasilkan isyarat palsu dan kerugian tidak dapat dielakkan sepenuhnya.

Risiko boleh dikurangkan dengan melonggarkan kriteria overbought dan oversold, menggabungkan penunjuk lain untuk mengesahkan isyarat, menyesuaikan julat parameter, dan lain-lain.

Arahan pengoptimuman

  1. Uji kesan parameter yang berbeza pada prestasi strategi dan optimumkan panjang RSI dan ambang overbought / oversold.
  2. Tambah strategi stop loss untuk mengunci beberapa keuntungan melalui stop loss bergerak, stop loss masa dan lain-lain, mengurangkan drawdowns.
  3. Menapis isyarat dengan menggabungkan penunjuk lain untuk meningkatkan ketepatan isyarat.
  4. Tetapkan julat parameter bebas mengikut ciri-ciri produk yang berbeza supaya strategi dapat lebih sesuai dengan produk yang berbeza.

Kesimpulan

Secara keseluruhan ini adalah strategi jangka pendek yang mudah dan praktikal. Menggunakan VWAP menjadikan penilaian RSI lebih tepat, hanya pergi lama mengurangkan kekerapan perdagangan. Idea strategi jelas dan mudah difahami dan dilaksanakan, sesuai untuk pemula perdagangan kuant. Tetapi mana-mana strategi penunjuk tunggal hampir tidak dapat menjadi sempurna dan memerlukan pengoptimuman berterusan untuk prestasi langsung yang lebih baik.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Xaviz

//#####©ÉÉÉɶN###############################################
//####*..´´´´´´,,,»ëN########################################
//###ë..´´´´´´,,,,,,''%©#####################################
//###'´´´´´´,,,,,,,'''''?¶###################################
//##o´´´´´´,,,,,,,''''''''*©#################################
//##'´´´´´,,,,,,,'''''''^^^~±################################
//#±´´´´´,,,,,,,''''''''^í/;~*©####æ%;í»~~~~;==I±N###########
//#»´´´´,,,,,,'''''''''^;////;»¶X/í~~/~~~;=~~~~~~~~*¶########
//#'´´´,,,,,,''''''''^^;////;%I^~/~~/~~~=~~~;=?;~~~~;?ë######
//©´´,,,,,,,''''''''^^~/////X~/~~/~~/~~»í~~=~~~~~~~~~~^;É####
//¶´,,,,,,,''''''''^^^;///;%;~/~~;í~~»~í?~?~~~?I/~~~~?*=íÑ###
//N,,,,,,,'''''''^^^^^///;;o/~~;;~~;£=»í»;IX/=~~~~~~^^^^'*æ##
//#í,,,,,''''''''^^^^^;;;;;o~»~~~~íX//~/»~;í?IíI»~~^/*?'''=N#
//#%,,,'''''''''^^^^^^í;;;;£;~~~//»I»/£X/X/»í*&~~~^^^^'^*~'É#
//#©,,''''''''^^^^^^^^~;;;;&/~/////*X;í;o*í»~=*?*===^'''''*£#
//##&''''''''^^^^^^^^^^~;;;;X=í~~~»;;;/~;í»~»±;^^^^^';=''''É#
//##N^''''''^^^^^^^^^^~~~;;;;/£;~~/»~~»~~///o~~^^^^''''?^',æ#
//###Ñ''''^^^^^^^^^^^~~~~~;;;;;í*X*í»;~~IX?~~^^^^/?'''''=,=##
//####X'''^^^^^^^^^^~~~~~~~~;;íííííí~~í*=~~~~Ií^'''=''''^»©##
//#####£^^^^^^^^^^^~~~~~~~~~~~íííííí~~~~~*~^^^;/''''='',,N###
//######æ~^^^^^^^^~~~~~~~~~~~~~~íííí~~~~~^*^^^'=''''?',,§####
//########&^^^^^^~~~~~~~~~~~~~~~~~~~~~~~^^=^^''=''''?,íN#####
//#########N?^^~~~~~~~~~~~~~~~~~~~~~~~~^^^=^''^?''';í@#######
//###########N*~~~~~~~~~~~~~~~~~~~~~~~^^^*'''^='''/É#########
//##############@;~~~~~~~~~~~~~~~~~~~^^~='''~?'';É###########
//#################É=~~~~~~~~~~~~~~^^^*~'''*~?§##############
//#####################N§£I/~~~~~~»*?~»o§æN##################

//@version=4
strategy("RSI-VWAP INDICATOR", overlay=false)

// ================================================================================================================================================================================
// RSI VWAP INDICATOR
// ================================================================================================================================================================================

// Initial inputs
Act_RSI_VWAP = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE")
RSI_VWAP_length = input(17, "RSI-VWAP LENGTH")
RSI_VWAP_overSold = input(19, "RSI-VWAP OVERSOLD", type=input.float)
RSI_VWAP_overBought = input(80, "RSI-VWAP OVERBOUGHT", type=input.float)

// RSI with VWAP as source
RSI_VWAP = rsi(vwap(close), RSI_VWAP_length)

// Plotting, overlay=false
r=plot(RSI_VWAP, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : RSI_VWAP < RSI_VWAP_overSold ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
h1=plot(RSI_VWAP_overBought, color = color.gray, style=plot.style_stepline)
h2=plot(RSI_VWAP_overSold, color = color.gray, style=plot.style_stepline)
fill(r,h1, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : na, transp = 60)
fill(r,h2, color = RSI_VWAP < RSI_VWAP_overSold ? color.lime : na, transp = 60)

// Long only Backtest
strategy.entry("Long", strategy.long, when = (crossover(RSI_VWAP, RSI_VWAP_overSold)))
strategy.close("Long", when = (crossunder(RSI_VWAP, RSI_VWAP_overBought)))

Lebih lanjut