Die Ressourcen sind geladen. Beförderung...

Preisumkehrung mit Crossover-Erfassungsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-17 16:29:13
Tags:

img

Übersicht

Die Preisumkehrung mit Crossover-Capturing-Strategie ist eine zusammengesetzte Strategie, die Preisumkehrungshandelstechniken und Indikator-Crossovers kombiniert. Sie erzeugt zunächst Handelssignale unter Verwendung von Preisumkehrmustern und filtert dann die Signale mit Überkauf/Überverkaufskrossovers eines stochastischen Oszillators, um kurzfristige Umkehrungen auf dem Markt zu erfassen.

Strategie Logik

Die Strategie besteht aus zwei Teilstrategien:

  1. 123 Umkehrstrategie
  • Wenn sich der Schlusskurs in zwei Tagen von höher auf niedriger dreht und der 9-Tage-Stokastindikator sich in einem unteren Band befindet (unterhalb eines Schwellenwerts), wird ein Kaufsignal generiert
  • Wenn sich der Schlusskurs in zwei Tagen von niedriger zu höher dreht und der 9-Tage-Stokastindikator sich im oberen Band (über einer Schwelle) befindet, wird ein Verkaufssignal generiert
  1. Stochastische Crossover-Strategie
  • Wenn die %K-Linie unterhalb der %D-Linie kreuzt, während sich beide Linien in überkauften Niveaus befinden, wird ein Verkaufssignal generiert
  • Wenn die %K-Linie über die %D-Linie kreuzt, während beide Linien in Überverkauf liegen, wird ein Kaufsignal generiert

Die zusammengesetzte Strategie überprüft die Signale beider Teilstrategien und löst nur dann tatsächliche Trades aus, wenn sich die Signale in die gleiche Richtung ausrichten.

Vorteile

Die Strategie kombiniert Preisumkehrmuster und Indikatorenüberschreitungen, um sowohl die Preisbewegung als auch Indikatorinformationen zu bewerten, was dazu beiträgt, falsche Signale auszufiltern und Umkehrmöglichkeiten zur Verbesserung der Rentabilität aufzudecken.

Zu den spezifischen Vorteilen gehören:

  1. Schnelle Erfassung von Marktumkehrungen ohne lange Konsolidierungszeiten
  2. Erhöhte Signalgenauigkeit durch doppelte Validierung beider Teilstrategien
  3. Eine bessere Gewinnrate durch Kombination von Analyse der Preisbewegung und Indikatoren

Risiken

Diese Strategie birgt auch einige Risiken:

  1. Der Preis kann sich bei hoher Volatilität abrupt umkehren, was zu falschen Signalen führt
  2. Eine schlechte Einstellung der Indikatorparameter beeinträchtigt die Signalqualität
  3. Unsicher über den Zeitpunkt der Umkehrung, einige Zeit Risiko besteht

Diese Risiken können durch Anpassung der Parameter, Verwendung von Stop-Losses usw. verwaltet werden.

Möglichkeiten zur Verbesserung

Einige Möglichkeiten, wie die Strategie verbessert werden kann:

  1. Optimierung der Indikatorparameter
  2. Zusätzliche Filter wie Lautstärke hinzufügen
  3. Anpassung der Parameter an Symbole und Marktbedingungen
  4. Einbeziehung von Stop-Loss zur Risikokontrolle
  5. Einsatz von maschinellem Lernen für die Signalidentifizierung

Schlussfolgerung

Die Preisumkehrung mit der Crossover-Capturing-Strategie kombiniert mehrere komplementäre Strategien, um Gewinne zu erzielen und gleichzeitig Risiken zu kontrollieren.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// 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


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", 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, "---- Stochastic Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -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