Strategi kuantitatif jangka pendek berdasarkan RSI dan VWAP


Tarikh penciptaan: 2024-01-19 14:21:15 Akhirnya diubah suai: 2024-01-19 14:21:15
Salin: 0 Bilangan klik: 982
1
fokus pada
1617
Pengikut

Strategi kuantitatif jangka pendek berdasarkan RSI dan VWAP

Gambaran keseluruhan

Strategi ini dinamakan sebagai strategi garis pendek RSI-VWAP. Strategi ini menggunakan RSI dan purata nilai tertimbang ((VWAP) sebagai petunjuk teknikal, menetapkan isyarat overhead, dan kemudian menghasilkan keputusan membeli dan menjual. Strategi ini berusaha untuk menangkap fenomena overbought dan oversold di pasaran pada garis pendek, dengan harapan untuk mendapatkan keuntungan yang lebih banyak.

Prinsip Strategi

  1. Gunakan RSI untuk menentukan sama ada pasaran berada dalam keadaan overbought atau oversold. Nilai RSI lebih tinggi daripada 80 adalah kawasan overbought, dan lebih rendah daripada 20 adalah kawasan oversold.
  2. Indeks RSI menggunakan VWAP dan bukan harga penutupan sebagai data sumber. VWAP lebih dapat mencerminkan harga dagangan purata pada hari itu.
  3. Sinyal beli dihasilkan apabila nilai RSI melintasi 20 dari kawasan oversold. Sinyal jual dihasilkan apabila nilai RSI melintasi 80 dari kawasan oversold.
  4. Strategi ini hanya melakukan overhead, tidak melakukan overhead.

Analisis kelebihan

  1. Menggunakan VWAP sebagai sumber data RSI, menjadikan penunjuk RSI lebih tepat dalam menilai pasaran, dan mengelakkan tertipu oleh penembusan palsu.
  2. Hanya melakukan lebih banyak kepala, mengurangkan frekuensi operasi, yang membantu untuk mendapatkan keuntungan yang stabil dalam jangka panjang.
  3. Parameter penunjuk RSI adalah 17, sesuai untuk operasi garis pendek.
  4. Menggunakan kaedah operasi garis pendek dengan jumlah transaksi yang tidak tinggi, mengurangkan kos transaksi dan membantu memperoleh kadar keuntungan yang lebih tinggi.

Analisis risiko

  1. Terdapat risiko over-fitting dalam analisis kuantitatif, dan mungkin terdapat perbezaan dalam keputusan yang diperoleh.
  2. “Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa.
  3. Kriteria penilaian overbought dan oversold mungkin tidak sesuai untuk semua jenis dan perlu menyesuaikan parameter untuk pelbagai jenis.
  4. Mana-mana penunjuk teknikal boleh menghasilkan isyarat yang salah dan tidak dapat mengelakkan kerugian sepenuhnya.

Risiko boleh dikurangkan dengan melonggarkan piawaian overbought dan oversold, mengesahkan isyarat dalam kombinasi dengan petunjuk lain, dan menyesuaikan jarak parameter.

Arah pengoptimuman

  1. Uji kesan parameter yang berbeza terhadap kesan strategi, mengoptimumkan panjang RSI dan melampaui ambang jual beli.
  2. Meningkatkan strategi berhenti kerugian, mengunci sebahagian keuntungan dengan cara berhenti bergerak, berhenti masa dan sebagainya, mengurangkan penarikan balik.
  3. Menapis isyarat dalam kombinasi dengan petunjuk lain untuk meningkatkan ketepatan isyarat.
  4. Menetapkan julat parameter yang berasingan mengikut ciri-ciri pelbagai baka, menjadikan strategi lebih sesuai untuk pelbagai baka.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi garis pendek yang mudah dan praktikal. Menggunakan VWAP membuat penghakiman indikator RSI lebih tepat, hanya untuk mengurangkan frekuensi operasi.

Kod sumber strategi
/*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)))