Handelsstrategie mit doppeltem gleitendem Durchschnittsumkehr und dreifachem Bottom-Flash-Combo

Schriftsteller:ChaoZhang, Datum: 2023-10-26
Tags:

img

Übersicht

Diese Handelsstrategie nutzt die Vorteile der gleitenden Durchschnittsumkehr und der dreifachen Bottom-Flash-Technischen Indikatoren für die Kombinationsanwendung voll aus.

Strategieprinzipien

Die Strategie besteht aus zwei Teilen:

  1. Eine Kombination aus 2-Tage- und 20-Tage- gleitenden Durchschnitten. Kauf- und Verkaufssignale werden erzeugt, wenn der 2-Tage-gleitende Durchschnitt vom 20-Tage-gleitenden Durchschnitt abweicht.

  2. Das Auftreten dieses Musters ist ein Signal für eine kurzfristige Umkehrung. Die Formungsbedingung lautet: der Tiefpunkt des mittleren Tages ist niedriger als der vorherige und der nächste Tag und der Schlusskurs des nächsten Tages ist höher als der Höchstwert des vorherigen Tages.

Wenn die 2-Tage- und 20-Tage- gleitenden Durchschnitte gleichzeitig Umkehrsignale zeigen und mit der Richtung des dreifachen Bottom-Flash-Mustersignals übereinstimmen, werden Kauf- oder Verkaufsaktionen durchgeführt.

Wenn der 2-Tage- gleitende Durchschnitt den 20-Tage-gleitenden Durchschnitt nach oben oder unten durchbricht, werden Kauf-/Verkaufssignale generiert.

Wenn das Dreifach-Boden-Blitzmuster erkannt wird, wird das Musterrichtungsignal auf 1 oder -1 gesetzt.

Durch Filtern mit der Kombination von gleitenden Durchschnitten und Mustern können somit einige falsche Signale herausgefiltert werden, wodurch die Handelsstrategie zuverlässiger wird.

Vorteile

  1. Die Kombination mehrerer technischer Indikatoren kann sich gegenseitig ergänzen und überprüfen und die Signalzuverlässigkeit verbessern.

  2. Die Umkehrung des gleitenden Durchschnitts kann die Umkehrpunkte der Trends rechtzeitig erfassen und von Umkehrungen profitieren.

  3. Der 20-tägige gleitende Durchschnitt verfolgt die mittelfristigen und langfristigen Trends, und der 2-tägige gleitende Durchschnitt erfasst Eingangspunkte nach kurzfristigen Anpassungen.

  4. Die Strategie ist nicht parametersensitiv und leicht umzusetzen und zu optimieren.

Risiken

  1. Umkehrmuster sind anfällig für Fehleinschätzungen, und um ihre Zuverlässigkeit zu beurteilen, ist Erfahrung erforderlich.

  2. Die Umkehrsignale können verzögert sein, was die Beobachtung von Mustermerkmalen und eine angemessene Positionsanpassung erfordert.

  3. Für verschiedene Handelssorten sind Tests und Optimierungen erforderlich, und einige Parameter müssen möglicherweise angepasst werden.

  4. Die Verlustkontrolle muss einen Stop-Loss-Mechanismus einführen, um wichtige Umkehrpunkte zu vermeiden.

Optimierung

  1. Versuche verschiedene Kombinationen gleitender Durchschnitte, um die besten Parameter für die Sorte auszuwählen.

  2. Einführung weiterer Hilfsindikatoren wie Volumen, Bollinger Bands usw. für die Mehrindikatorüberprüfung.

  3. Ein Stop-Loss-Modul zur Steuerung von Abzügen und Risiken.

  4. Optimieren Sie den Zeitpunkt des Eintritts, um zu vermeiden, dass Probleme zu früh oder zu spät auftreten.

  5. Parameteroptimierung für bestimmte Sorten durchführen, um die Anpassungsfähigkeit zu verbessern.

Zusammenfassung

Die Strategie nutzt die Vorteile der gleitenden Durchschnittsumkehrung und der kurzfristigen Muster voll aus, um eine effektive Kombination beider zu erzielen, die die Stabilität und Gewinnrate von Handelssystemen verbessern kann.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length ) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
	pos

BarR()=>
    pos = 0.0
    pos :=	iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
    	     iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1  = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2  = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc  = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader  = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)

StartTrade = true
prePos3Bar = BarR()

posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
	   iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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