RSI-VWAP kurzfristige Quant-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-19 14:21:15
Tags:

img

Übersicht

Diese Strategie wird RSI-VWAP Short-Term Strategy genannt. Sie verwendet den RSI-Indikator und den Volume Weighted Average Price (VWAP) als technische Indikatoren, um lange und kurze Signale zu generieren und somit Kauf- und Verkaufsentscheidungen zu treffen.

Strategieprinzip

  1. Der RSI-Indikator wird verwendet, um festzustellen, ob der Markt überkauft oder überverkauft ist.
  2. Der RSI-Indikator verwendet VWAP anstelle des Schlusskurses als Quelldaten. VWAP spiegelt den durchschnittlichen Handelspreis des Tages besser wider.
  3. Ein Kaufsignal wird erzeugt, wenn der RSI von der Überverkaufszone bis 20 überschreitet. Ein Verkaufssignal wird erzeugt, wenn der RSI von der Überkaufszone bis 80 überschreitet.
  4. Diese Strategie ist nur langfristig und nicht kurzfristig, d. h. nur in Überverkauf und in Überkauf zu kaufen.

Analyse der Vorteile

  1. Die Verwendung von VWAP als Datenquelle für den RSI ermöglicht es dem RSI-Indikator, den Markt genauer zu beurteilen und sich nicht durch falsche Ausbrüche irrezuführen.
  2. Nur ein Long-Going reduziert die Handelsfrequenz und hilft, langfristig stabile Renditen zu erzielen.
  3. Der RSI-Parameter beträgt 17, was für kurzfristige Operationen geeignet ist.
  4. Die Niedrigfrequenzhandelsmethode erwartet weniger Geschäfte, reduziert die Transaktionskosten und trägt dazu bei, höhere Renditen zu erzielen.

Risikoanalyse

  1. Es besteht ein Überanpassungsrisiko beim Quant-Strategie-Backtesting und die tatsächlichen Ergebnisse können sich von den Backtests unterscheiden.
  2. Nicht in der Lage, Chancen in Abwärtstrends zu nutzen, indem man nur lang geht.
  3. Die Kriterien für Überkauf und Überverkauf entsprechen möglicherweise nicht allen Produkten, die Parameter müssen für verschiedene Produkte angepasst werden.
  4. Jeder technische Indikator kann falsche Signale erzeugen und Verluste können nicht vollständig vermieden werden.

Die Risiken können verringert werden, indem die Kriterien für Überkauf und Überverkauf angemessen gelockert, andere Indikatoren zur Bestätigung von Signalen kombiniert, Parameterbereiche angepasst usw. werden.

Optimierungsrichtlinien

  1. Testen Sie die Auswirkungen verschiedener Parameter auf die Strategieleistung und optimieren Sie die RSI-Länge und die Überkauf-/Überverkaufsschwellen.
  2. Fügen Sie Stop-Loss-Strategien hinzu, um durch bewegliche Stop-Loss, Time-Stop-Loss usw. einige Gewinne zu erzielen und die Drawdowns zu reduzieren.
  3. Filtern Sie Signale, indem Sie andere Indikatoren kombinieren, um die Genauigkeit des Signals zu verbessern.
  4. Es werden unabhängige Parameterbereiche nach den Merkmalen der verschiedenen Produkte festgelegt, damit die Strategie besser auf die verschiedenen Produkte abgestimmt ist.

Schlussfolgerung

Im Großen und Ganzen ist dies eine einfache und praktische kurzfristige Strategie. Die Verwendung von VWAP macht das RSI-Urteil genauer, nur langfristig reduziert die Handelsfrequenz. Die Strategieidee ist klar und leicht zu verstehen und umzusetzen, geeignet für Quant-Trading-Anfänger. Aber jede einzelne Indikatorstrategie kann kaum perfekt sein und muss ständig optimiert werden, um eine bessere Live-Performance zu erzielen.


/*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)))

Mehr