Handelsstrategie zur Umkehrung der doppelten Schwingung

Schriftsteller:ChaoZhang, Datum: 2023-10-11 14:47:25
Tags:

Übersicht

Dies ist eine doppelte Schwingungs-Tracking-Umkehrhandelsstrategie, die die Stochastische Indikator-Umkehrstrategie und den Chaikin-Volatilitätsindikator kombiniert, um zuverlässigere Handelssignale zu erhalten.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

  1. Strategie zur Umkehrung des Stochastischen Indikators

Dieser Teil verwendet die schnelle Linie und die langsame Linie des stochastischen Indikators, um Handelssignale zu erzeugen. Es geht lang, wenn der Schlusskurs zwei aufeinanderfolgende Tage unter dem vorherigen Schlusskurs liegt und die schnelle Linie über der langsamen Linie liegt. Es geht kurz, wenn der Schlusskurs zwei aufeinanderfolgende Tage über dem vorherigen Schlusskurs liegt und die schnelle Linie unter der langsamen Linie liegt.

  1. Chaikin-Volatilitätsindikator

Dieser Indikator berechnet die Veränderung des Spreads zwischen den höchsten und niedrigsten Preisen über einen bestimmten Zeitraum. Wenn der Spread wächst, signalisiert er eine zunehmende Volatilität und eine Short-Position kann eingenommen werden. Wenn der Spread schrumpft, signalisiert er eine abnehmende Volatilität und eine Long-Position kann eingenommen werden.

Das endgültige Handelssignal ist eine Kombination der Signale aus den beiden Teilen. Wenn das stochastische Indikatorsignal und das Volatilitätsindikatorsignal übereinstimmen, wird dieses Signal genommen. Ansonsten wird kein Handel durchgeführt, wenn die beiden Signale nicht übereinstimmen.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die Kombination von zwei verschiedenen Indikatoren verbessert die Genauigkeit des Signals.

  2. Der Doppelbestätigungsmechanismus verringert Falschsignale und kontrolliert das Risiko.

  3. Die Konzentration auf Umkehrungen als Haupthandelsrichtung ermöglicht Gewinne an Trendwendepunkten.

  4. Flexible Parameter-Einstellungen machen es an verschiedene Produkte und Zeitrahmen anpassbar.

  5. Die Feinabstimmung der Indikatorparameter ermöglicht eine Optimierung.

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Die Umkehrsignale können falsch beurteilt werden, was zu Verlusten führt.

  2. Kurzgeschäfte bei stark steigender Volatilität haben Verlustrisiken. Stop Loss kann das Risiko kontrollieren.

  3. Die Kombination von zwei Indikatoren kann bei extremen Marktschwankungen scheitern.

  4. Die Überwachung zweier Indikatoren erhöht die Arbeitsbelastung, der automatisierte Handel kann die Arbeitsbelastung verringern.

Verbesserungsrichtlinien

Zu den Verbesserungen dieser Strategie gehören:

  1. Testen Sie mehr Parameterkombinationen, um optimale Parameter zu finden.

  2. Zusätzliche Bestätigungsindikatoren wie Volumen usw. werden hinzugefügt.

  3. Hinzufügen von Stop-Loss-Mechanismen wie Trailing-Stop, Zone-Stop usw., um das Risiko weiter zu kontrollieren.

  4. Optimierung des Geldmanagements wie Fixed Fractional, Kelly etc. zur Verbesserung der Gewinneffizienz.

  5. Testanwendbarkeit für mehr Produkte und Zeitrahmen mit unterschiedlichen Parameter-Einstellungen.

Schlussfolgerung

Diese Strategie kombiniert doppelte Indikatoren für Handelssignale, wobei der Fokus auf der Erfassung von Umkehrungen liegt. Sie hat Vorteile wie hohe Signalgenauigkeit und gute Risikokontrolle und bietet Raum für Verbesserungen. Mit Optimierungen von Parametern, Stop Loss, Geldmanagement usw. kann sie zu einer robusten mittelfristigen bis langfristigen Umkehrhandelsstrategie verbessert werden.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/07/2019
// 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
// Chaikin's Volatility indicator compares the spread between a security's
// high and low prices. It quantifies volatility as a widening of the range
// between the high and the low price.
// You can use in the xPrice1 and xPrice2 any series: Open, High, Low, Close, HL2,
// HLC3, OHLC4 and ect...
//
// 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

ChaikinVolatility(Length, ROCLength, Trigger) =>
    pos = 0
    xPrice1 = high
    xPrice2 = low
    xPrice = xPrice1 - xPrice2
    xROC_EMA = roc(ema(xPrice, Length), ROCLength)
    pos := iff(xROC_EMA < Trigger, 1,
	         iff(xROC_EMA > Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chaikin Volatility", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCV = input(10, minval=1)
ROCLength = input(12, minval=1)
Trigger = input(0, minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChaikinVolatility = ChaikinVolatility(LengthCV, ROCLength, Trigger)
pos = iff(posReversal123 == 1 and posChaikinVolatility == 1 , 1,
	   iff(posReversal123 == -1 and posChaikinVolatility == -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