RSI-VWAP Strategi Quant jangka pendek

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

img

Gambaran umum

Strategi ini disebut RSI-VWAP Short-term Strategy. Strategi ini menggunakan indikator RSI dan Volume Weighted Average Price (VWAP) sebagai indikator teknis untuk menghasilkan sinyal panjang dan pendek dan dengan demikian membuat keputusan beli dan jual.

Prinsip Strategi

  1. Gunakan indikator RSI untuk menentukan apakah pasar terlalu banyak dibeli atau terlalu banyak dijual.
  2. Indikator RSI menggunakan VWAP sebagai sumber data.
  3. Sinyal beli dihasilkan ketika RSI melintasi 20 dari area oversold. Sinyal jual dihasilkan ketika RSI melintasi 80 dari area overbought.
  4. Strategi ini hanya panjang dan tidak pergi pendek. yaitu, hanya membeli di oversold dan menjual di overbought.

Analisis Keuntungan

  1. Menggunakan VWAP sebagai sumber data untuk RSI membuat indikator RSI menilai pasar dengan lebih akurat, menghindari tertipu oleh breakout palsu.
  2. Hanya pergi panjang mengurangi frekuensi perdagangan dan membantu mendapatkan pengembalian stabil jangka panjang.
  3. Parameter RSI adalah 17, yang cocok untuk operasi jangka pendek.
  4. Metode perdagangan frekuensi rendah mengharapkan lebih sedikit perdagangan, mengurangi biaya transaksi dan membantu mendapatkan tingkat pengembalian yang lebih tinggi.

Analisis Risiko

  1. Ada risiko overfit dalam backtesting strategi kuantum dan hasil sebenarnya mungkin berbeda dari backtest.
  2. Tidak mampu memanfaatkan peluang dalam tren penurunan dengan hanya pergi panjang.
  3. Kriteria overbought dan oversold mungkin tidak sesuai dengan semua produk, parameter perlu disesuaikan untuk produk yang berbeda.
  4. Setiap indikator teknis dapat menghasilkan sinyal palsu dan kerugian tidak dapat dihindari sepenuhnya.

Risiko dapat dikurangi dengan melonggarkan kriteria overbought dan oversold, menggabungkan indikator lain untuk mengkonfirmasi sinyal, menyesuaikan rentang parameter, dll.

Arahan Optimasi

  1. Uji efek dari parameter yang berbeda pada kinerja strategi dan optimalkan panjang RSI dan ambang overbought/oversold.
  2. Tambahkan strategi stop loss untuk mengunci beberapa keuntungan melalui stop loss bergerak, stop loss waktu dll, mengurangi drawdowns.
  3. Filter sinyal dengan menggabungkan indikator lain untuk meningkatkan akurasi sinyal.
  4. Tetapkan rentang parameter independen sesuai dengan karakteristik produk yang berbeda sehingga strategi dapat lebih sesuai dengan produk yang berbeda.

Kesimpulan

Secara keseluruhan ini adalah strategi jangka pendek yang sederhana dan praktis. Menggunakan VWAP membuat penilaian RSI lebih akurat, hanya pergi panjang mengurangi frekuensi perdagangan. Ide strategi jelas dan mudah dipahami dan diimplementasikan, cocok untuk pemula perdagangan kuant. Tapi strategi indikator tunggal hampir tidak dapat sempurna dan membutuhkan pengoptimalan konstan untuk kinerja 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 banyak