Strategie zur Kombination von quantitativer Umkehrung und Volumen

Schriftsteller:ChaoZhang, Datum: 21.09.2023
Tags:

Übersicht

Diese Strategie kombiniert zwei quantitative Handelsstrategien, um genauere und zuverlässigere Handelssignale zu generieren. Die erste Strategie basiert auf Preisumkehrung und die zweite auf Volumenanalyse. Die kombinierten Signale können die Rentabilität effektiv verbessern.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

  1. Umkehrstrategie

Verwendet den STO-Indikator für Umkehrsignale. Läuft lang, wenn die Schließung für 2 Tage steigt und die STO-Slowline unter 50 liegt. Läuft kurz, wenn die Schließung für 2 Tage fällt und die STO-Fastline über 50 liegt.

  1. Volumenstrategie

Analyse der Preis-Volumen-Beziehung über einen Zeitraum, um die Richtung zu bestimmen, wobei der gleitende Durchschnitt glättet.

Es geht lang, wenn beide Strategien lang signalisieren, und geht kurz, wenn beide kurz signalisieren.

Die Kombination verbessert die Signalqualität, indem sie die falschen Signale beider Strategien erheblich reduziert.

Vorteile

  • Kombiniert zwei unabhängige Strategien, um die Genauigkeit zu verbessern
  • Umkehrung erfasst Umschlagmöglichkeiten, Volumen prognostiziert zukünftige Richtung
  • Verschiedene Strategientypen überprüfen sich gegenseitig und verringern falsche Signale
  • Einfache direkte Kombination, einfach umzusetzen
  • Parameter jeder Strategie können separat optimiert werden

Risiken

  • Risikovolle Rückschläge ohne strenge Ausstiegsregeln
  • Volumenanalyse kann verzögert sein
  • Reine Indikator-basierte, erfordert technische Analyse
  • Für gleitende Durchschnitte benötigt werden längere Datenreihen
  • Die Parameter können für alle Produkte nicht universell sein

Die Risiken können verringert werden, indem

  • Optimierung der STO für eine bessere Umkehrerkennung
  • Hinzufügen von Indikatoren zur Bestätigung von Volumenüberschreitungen
  • Optimierung der gleitenden Durchschnittsperioden
  • Ergänzende Diagrammmusteranalyse
  • Getrennte Parameterprüfungen nach Produkten

Anweisungen zur Verbesserung

Die Strategie kann verbessert werden, indem

  1. Optimierung der STO-Parameter

    Feinabstimmungswerte K, D für die besten Kombinationen

  2. Sekundäre Bestätigung von Lautstärkerückgängen

    Mit Indikatoren wie MACD, BOLL usw.

  3. Optimierung der gleitenden Durchschnittsperioden

    Verschiedene Testperioden für stabilere Signale

  4. Hinzufügen von Diagrammmustern

    Einfügen von Mustern zusätzlich zu Combo-Signalen

  5. Produktspezifische Parameterprüfung

    Die Parameter können je nach Produkt unterschiedlich sein.

Zusammenfassung

Diese Strategie kombiniert Umkehr- und Volumenstrategien für eine verbesserte Signalqualität und -genauigkeit. Aber die Optimierung von Parametern, zusätzliche technische Indikatoren usw. können die Leistung weiter verbessern. Wir können kontinuierlich anhand von Backtest-Ergebnissen anpassen, im Live-Handel validieren, um eine wirklich robuste Combo-Strategie zu erhalten. Dies erfordert immense Zeit und Mühe, aber die Belohnungen werden auch erheblich sein.


/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/10/2020
// 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 is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// 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


FVI(Samples,Perma,Cintra,Cinter) =>
    pos = 0
    xhl2 = hl2
    xhlc3 = hlc3
    xClose = close
    xIntra = log(high) - log(low)
    xInter = log(xhlc3) - log(xhlc3[1])
    xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
    xStDevInter = stdev(sma(xInter, Samples) , Samples)
    xVolume = volume
    TP = xhlc3
    TP1 = xhlc3[1]
    Intra = xIntra
    Vintra = xStDevIntra
    Inter = xInter
    Vinter = xStDevInter
    CutOff = Cintra * Vintra + Cinter * Vinter
    MF = xClose - xhl2 + TP - TP1
    FveFactor =  iff(MF > CutOff * xClose, 1, 
                  iff(MF < -1 * CutOff * xClose, -1,  0))
    xVolumePlusMinus = xVolume * FveFactor
    Fvesum = sum(xVolumePlusMinus, Samples)
    VolSum = sum(xVolume, Samples)
    xFVE = (Fvesum / VolSum) * 100
    xEMAFVE = ema(xFVE, Perma)
    pos :=iff(xFVE > xEMAFVE, 1,
    	   iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
	   iff(posReversal123 == -1 and posFVI == -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