Strategie zur Kombination von Trendumkehrung und Volatilität

Schriftsteller:ChaoZhang, Datum: 23.10.2023
Tags:

img

Übersicht

Diese Strategie kombiniert eine Trendumkehrstrategie mit einer statistischen Volatilitätsstrategie, um stärkere Handelssignale zu generieren.

Wie es funktioniert

Die Strategie besteht aus zwei Teilen:

  1. Trendumkehrstrategie

    • Identifizieren Sie Trendumkehrpunkte unter Verwendung von 123 Muster. Gehen Sie insbesondere lang, wenn der Schlusskurs 2 aufeinanderfolgende Tage gestiegen ist und die 9-tägige Stochastic Slow Line unter 50 liegt; gehen Sie kurz, wenn der Schlusskurs 2 aufeinanderfolgende Tage gefallen ist und die 9-tägige Stochastic Fast Line über 50 liegt.
  2. Statistische Volatilitätsstrategie

    • Berechnen Sie die 30-Tage-statistische Volatilität mit der Extreme Value-Methode.

Die Strategie erzeugt ein Handelssignal nur, wenn beide Strategien sich auf die Richtung einigen (sowohl lang als auch kurz).

Analyse der Vorteile

Die Combo-Strategie verbessert die Signalzuverlässigkeit durch die Kombination zweier verschiedener Arten von Strategien:

  1. Das Muster 123 erfasst die Trendumkehrpunkte genau und vermeidet, durch einmalige Preisspitzen irregeführt zu werden.

  2. Die statistische Volatilität konzentriert sich auf Hochvolatilitäts- und Hochopportunitätsperioden, die auf den Marktbewegungen des letzten Monats basieren.

Durch die gegenseitige Überprüfung erfassen die beiden Strategien die wichtigsten Marktturnpunkte genauer und erzeugen genauere Handelssignale.

Risikoanalyse

  1. 123 Muster können das Risiko falscher Ausbrüche nicht vollständig vermeiden.

  2. Die statistische Volatilität berücksichtigt nur historische Daten und kann zukünftige Volatilitätsveränderungen nicht vorhersagen.

  3. Beide Strategien beruhen stark auf Parameter-Tuning. Schlechte Parameter-Einstellungen können die Signalqualität erheblich beeinträchtigen.

  4. Obwohl der Kombinationsansatz insgesamt zuverlässiger ist, kann er einige starke Signale von einzelnen Strategien verpassen.

Verbesserungsbereiche

  1. Mehr Indikatoren wie Bollinger-Bänder, KDJ zu integrieren, um einen Abstimmungsmechanismus zu bilden.

  2. Fügen Sie maschinelle Lernalgorithmen hinzu, um die Wahrscheinlichkeit einer Trendumkehr mit mehr historischen Daten zu bestimmen.

  3. Setzen Sie Signalstärke Schwellen, um Lärm zu filtern.

  4. Optimierung der Parameter für verschiedene Produkte und Zeitrahmen.

  5. Hinzufügen von Stop-Loss-Mechanismen zur Risikokontrolle der kombinierten Strategie.

Schlussfolgerung

Die Strategie verbessert die Signalqualität durch die Kombination von Trendumkehr- und statistischer Volatilitätsstrategien und liefert so genauere Handelssignale rund um Marktturnpunkte.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/07/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator used to calculate the statistical volatility, sometime 
// called historical volatility, based on the Extreme Value Method.
// Please use this link to get more information about Volatility.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


SV(Length,TopBand,LowBand) =>
    pos = 0.0
    xMaxC = highest(close, Length)
    xMaxH = highest(high, Length)
    xMinC = lowest(close, Length)
    xMinL = lowest(low, Length)
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    nRes = iff(Vol < 0,  0, iff(Vol > 2.99, 2.99, Vol))
    pos := iff(nRes > TopBand, 1,
    	     iff(nRes < LowBand, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Statistical Volatility", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Statistical Volatility ----")
LengthSV = input(30, minval=1)
TopBand = input(0.005, step=0.001)
LowBand = input(0.0016, step=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSV = SV(LengthSV,TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSV == 1 , 1,
	   iff(posReversal123 == -1 and posSV == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mehr