Crossover-Strategie für hohe und niedrige gleitende Durchschnitte zur Erfassung kleiner Trends


Erstellungsdatum: 2023-09-28 11:44:04 zuletzt geändert: 2023-09-28 11:44:04
Kopie: 1 Klicks: 780
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie zielt darauf ab, kurzfristige Forex-Trends zu erfassen, EMA-Kreuzungen und RSI als Handelssignale zu verwenden und in Kombination mit dem ADX-Filter in den Markt einzutreten, um Gewinne mit einem Trend-Tracking-Stopp-Methode zu sperren. Die Strategie gilt für alle Währungspaare, aber hauptsächlich für die 1-Stunden-Charts der wichtigsten Währungspaare.

Strategieprinzip

Die Strategie basiert auf folgenden Indikatoren und Bedingungen, um Handelssignale zu erstellen:

  • Schnelle 5-Zyklus-EMA: Blaue Linie
  • 10 Zyklen langsamer EMA: rote Linie
  • 10-Perioden-RSI für den Schlusskurs Mittelpreis (Hochpreis + Tiefpreis/2)
  • 14 Perioden ADX

Eintrittssignale:

  • Überschneidung: Wenn ein schneller EMA einen langsamen EMA von unten durchbricht und der RSI-Linie von einem Tiefpunkt nach oben über 50 geht
  • Hoher Kopf: Hoher Kopf, wenn der schnelle EMA von oben durch den langsamen EMA geht und die RSI-Linie von oben nach unten 50 brecht
  • ADX > 25 ist der beste Zeitpunkt für eine zusätzliche Leerstellung.

Ausgangssignal:

  • Beweglicher Stop-Loss, Tracking-Stop-Distanz von 150 Punkten, Stop-Win-Distanz von 400 Punkten
  • Neue Signale zeigen, dass die Lage stabil ist.
  • Jedes Freitagabend ist alles aus.

Die Strategie nutzt die Kennziffern Meselinie-Kreuzung, RSI-Überbuchung und ADX-Trendentscheidung, um eine strenge Einstiegsmechanik zu bilden, die nach der Trendgenerierung die Gewinne abschließen und die Stop-Loss-Verfolgung verfolgen kann, um kurzfristige Trends effektiv zu erfassen.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit EMA-Schnell-Schnell-Linien-Kreuzungen als Grundlage für die Trendbeurteilung, schnelle Linie nach oben, die langsame Linie zeigt ein bullish Trend, und nach unten gekreuzte, die Beobachtung der Veränderung des Trends.

  2. Der RSI wird als kurzfristiger Anpassungssignal betrachtet, um einen unnötigen Eintritt in einen schwankenden Markt zu vermeiden.

  3. Der ADX-Indikator wird verwendet, um die Existenz eines echten Trends zu beurteilen, und kann einen Teil des Geräusches effektiv filtern. Die Handelssignale werden nur dann berücksichtigt, wenn der ADX-Wert größer als 25 ist, um eine klare Tendenz zu gewährleisten.

  4. Die Verwendung von mobilen Stop-Loss- und Stop-Stop-Methoden, um die Gewinne zu maximieren, die Stop-Loss-Garantie, die Risiken zu kontrollieren, die Stop-Loss-Distanz von 150 Punkten und die Stop-Stop-Distanz von 400 Punkten zu verfolgen, um den Trend kontinuierlich zu verfolgen.

  5. Es wird erwartet, dass die Börse am Freitag alle Positionen vor dem Ende der Börse platzen wird, um die Risiken am Wochenende zu vermeiden und die Regelmäßigkeit der Geschäfte zu wahren.

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Die EMA-Gehaltslinie-Kreuzung-Strategie ist anfällig für falsche Durchbruchsignale. Virtualisierung kann zu Verlusten führen. Sie können die Gehaltslinie-Parameter entsprechend anpassen oder andere Indikatoren filtern.

  2. Der RSI-Indikator beurteilt nur Überkauf und Überverkauf und kann keine Trendwende bestätigen. Die Visualisierung kann den Trend verpassen oder den Markt umkehren. Die Verwendung oder Anpassung der Parameter kann in Kombination mit anderen Indikatoren in Betracht gezogen werden.

  3. Der ADX-Indikator beurteilt nur, ob ein Trend vorliegt, und die Eintrittszeit kann ungenau sein. Es kann in Betracht gezogen werden, andere Beurteilungen hinzuzufügen oder die ADX-Filterbedingungen zu senken.

  4. Die Stop-Loss-Stopp-Einstellungen können zu fest sein, um sich an Marktveränderungen anzupassen. Verschiedene Parameter können getestet oder durch manuelle Intervention rechtzeitig angepasst werden.

  5. Eine verpasste gute Trendlaufchance kann durch eine wöchentliche Zwangs-Platzierung in Betracht gezogen werden, um sie zu einem täglichen Abschluss oder zu einem späteren Zeitpunkt in eine bedingte Platzierung umzuwandeln.

Optimierungsrichtung

Die Strategie kann auch in folgenden Richtungen optimiert werden:

  1. Verschiedene Kombinationen von Mittellinienparametern werden getestet, um die optimale Mittellinienlänge zu finden. Die Mittellinienneigung kann ermittelt werden.

  2. Versuchen Sie, verschiedene RSI-Parameter oder Kombinationen mit dem KDJ-Indikator auszuprobieren, um die Überkauf- und Überverkaufsanalyse weiter zu optimieren.

  3. Optimierung von ADX-Parametern, Suche nach geeigneteren ADX-Filterbedingungen und Verbesserung der Einstiegsqualität.

  4. Die Kombination aus Festpunktzahl der mobilen Verluststopper und ATR-Dynamic Tracking Verluststopper wird getestet.

  5. Die Einführung einer intraday-Breakout-Rückstellungsstrategie, die nach der Trendbestätigung eingesetzt wird, kann auf 5-minütigen oder 15-minütigen Diagrammen berücksichtigt werden.

  6. Ein zusätzliches Modul zur Positionsverwaltung basierend auf der Volatilität, das die Positionen dynamisch an Marktschwankungen anpasst.

  7. Versuchen Sie, die Parameter automatisch zu optimieren, um die Anpassungsfähigkeit der Strategien zu erreichen.

Zusammenfassen

Die Strategie ist insgesamt eine sehr einfache und direkte Trendverfolgungsstrategie, die die Richtung des Trends anhand von linearer Kreuzung, RSI-Filter, Falschbrüche und ADX-Betrachtungen beurteilt. Die Optimierung der Strategie besteht hauptsächlich darin, eine bessere Kombination von Indikatoren zu finden, die Flexibilität der Trendbeurteilung zu ermöglichen und dynamische Positionsverwaltung einzuführen. Die Strategie hat durch die Analyse der Code-Logik eine gewisse Machbarkeit, muss jedoch noch weiter getestet und optimiert werden, um sie in die Praxis umzusetzen.

Strategiequellcode
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Hucklekiwi Pip - HLHB Trend-Catcher System", shorttitle="HLHB TCS", overlay=true,
  default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------------------------------
// HLHB Trend-Catcher System as described on BabyPips.com
//
// Strategy Author: Hucklekiwi Pip 
// Coded By: Backtest Rookies
// -----------------------------------------------------------------------------
//
// Refs:
//   - Original System: https://www.babypips.com/trading/forex-hlhb-system-explained
//   - Updated System: https://www.babypips.com/trading/forex-hlhb-system-20190311
//
//
// Description (From Hucklekiwi Pip)
// 
//   The HLHB System simply aims to catch short-term forex trends.
//   It is patterned after the Amazing Crossover System that Robopip once backtested.
//   In fact, it was one of his highest-scoring mechanical systems in 2014! 
//   The system can be applied to any pair, but since I’m into major pairs, 
//   I’m applying it to the 1-hour charts of EUR/USD and GBP/USD.
// -----------------------------------------------------------------------------
// STRATEGY REQUIREMENTS
// -----------------------------------------------------------------------------
//
// Setup
// -----
//  - EUR/USD 1-hour chart
//  - GBP/USD 1-hour chart
//  - 5 EMA: blue line
//  - 10 EMA: red line
//  - RSI (10) applied to the median price (HL/2)
//  - ADX (14)
//
// Entry
// -----
//  - BUY when the 5 EMA crosses above the 10 EMA from underneath and the RSI 
//    crosses above the 50.0 mark from the bottom.
//  - SELL when the 5 EMA crosses below the 10 EMA from the top and the RSI 
//    crosses below the 50.0 mark from the top.
//  - Make sure that the RSI did cross 50.0 from the top or bottom and not just 
//    ranging tightly around the level.
//  - ADX > 25 for Buy and Sells
//
// Exit
// ----
//  - Use a 50-pip trailing stop and a 200-pip profit target. This increases the 
//    chances of the system riding longer trends.
//  - Close the trade when a new signal materializes.
//  - Close all trades by the end of the week.
// 
// -----------------------------------------------------------------------------

// Strategy Varaibles
// -------------------
ema_fast_len = input(5, title='Fast EMA Length')
ema_slow_len = input(10 , title='Slow EMA Length')
rsi_len = input(10, title='Slow EMA Length')
session_end_hour = input(16, minval=0, maxval=23, title='Weekly Session End (Hour)')
session_end_minute = input(0, minval=0, maxval=59, title='Weekly Session End (Minute)')
// Targets taken from the update post which states 150 & 400 instead of 50 and 200.
profit_target = input(400, title='Profit Target (Pips/Points)')
trailing_stop_dist = input(150, title='Trailing Stop Distance (Pips/Points)')
adx_filt = input(true, title='User ADX Filter')
adx_min = input(25, minval=0, title='Minimum ADX Level')
adx_len = input(14, title="ADX Smoothing")
di_len = input(14, title="DI Length")

// Setup the Indicators
ema_fast = ema(close, ema_fast_len)
ema_slow = ema(close, ema_slow_len)
rsi_ind = rsi(close, rsi_len)

// ADX
adx_dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx_adx(dilen, adxlen) =>
	[plus, minus] = adx_dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[adx_sig, adx_plus, adx_minus] = adx_adx(di_len, adx_len)


// Strategy Logic
ema_long_cross = crossover(ema_fast, ema_slow)
ema_short_cross = crossunder(ema_fast, ema_slow)
rsi_long_cross = crossover(rsi_ind, 50)
rsi_short_cross = crossunder(rsi_ind, 50)
adx_check = adx_filt ? adx_sig >= adx_min : true

longCondition = ema_long_cross and rsi_long_cross and adx_check
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ema_short_cross and rsi_short_cross and adx_check
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("SL/TP", "Long", profit=profit_target,  loss=trailing_stop_dist, trail_points=trailing_stop_dist)  
strategy.exit("SL/TP", "Short", profit=profit_target, loss=trailing_stop_dist, trail_points=trailing_stop_dist)  

// Friday = 6
// If we miss the hour for some reason (due to strange timeframe), then close immediately
// Else if we are on the closing hour, then check to see if we are on or passed the close minute
close_time = dayofweek == 6 ? 
  hour[0] > session_end_hour ? true :
  hour[0] == session_end_hour ?
      minute[0] >= session_end_minute :
  false : false

strategy.close_all(when=close_time)

// Plotting
plot(ema_fast, color=blue, title="Fast EMA")
plot(ema_slow, color=red, title="Slow EMA")

plotshape(rsi_long_cross, style=shape.triangleup, size=size.tiny, location=location.belowbar, color=green, title='RSI Long Cross Marker')
plotshape(rsi_short_cross, style=shape.triangledown, size=size.tiny, location=location.abovebar, color=red, title='RSI Short Cross Marker')

// ADX Filter Highlight
bgcolor(adx_filt and adx_check ? orange : na, transp=90)