Die Strategie für die Umkehrung des Harami-Backtests

Schriftsteller:ChaoZhang, Datum: 2023-11-23 11:47:10
Tags:

img

Übersicht

Die "Bearish Harami Reversal Backtest"-Strategie identifiziert bearish Harami Umkehrmuster in Kerzenkarten und handelt automatisch mit ihnen.

Strategie Logik

Der Kernmustererkennungsindikator dieser Strategie ist: Der Schluss der ersten Kerze ist eine lange bullische Kerze und der Schluss der zweiten Kerze befindet sich innerhalb des Körpers der ersten Kerze und bildet eine bärische Kerze. Dies zeigt ein potenzielles bärisches Harami-Umkehrmuster an. Wenn sich dieses Muster bildet, geht die Strategie kurz.

Die spezifische Logik lautet:

  1. Berechnen, ob die Körpergröße der ersten Kerze ABS ((Close1 - Open1) größer als die festgelegte Mindestkörpergröße ist
  2. Überprüfen Sie, ob die erste Kerze bullisch ist Schließen1 > Öffnen1
  3. Überprüfen Sie, ob die aktuelle Kerze bärisch ist Öffnen > Schließen
  4. Überprüfen Sie, ob die aktuelle Kerze s offen ist kleiner oder gleich dem vorherigen Schließen Offener <= Schließen1
  5. Überprüfen Sie, ob die vorherige Kerze s offen ist kleiner oder gleich dem aktuellen Kerze s schließen Open1 <= Schließen
  6. Überprüfen Sie, ob der aktuelle Kerzenkörper kleiner ist als der vorherige Körper
  7. Wenn alle Voraussetzungen erfüllt sind, hat sich ein Bären-Harami gebildet und die Strategie geht zu kurz.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Nutzt das starke bärische Umkehrsignal von Harami für eine höhere Gewinnwahrscheinlichkeit
  2. Die Ergebnisse der umfangreichen Backtest-Daten sind positiv
  3. Einfache, klare Logik, die leicht zu verstehen und zu optimieren ist
  4. Anpassungsfähige Stop-Loss- und Take-Profit-Verfahren zur Risikokontrolle

Risikoanalyse

Es gibt auch einige Risiken:

  1. Der Markt kann falsche Ausbrüche haben, die zu Verlustpositionen führen, Stopp Loss erweitern oder Filter hinzufügen.
  2. Hohe Volatilität kann zu einem vorzeitigen Stop-Loss führen.
  3. Unzureichende Backtestdaten spiegeln möglicherweise nicht die realen Marktbedingungen wider.

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Zusatz von Volume, MACD und anderen Filtern zur Verbesserung der Signalqualität
  2. Optimieren Sie Stop-Loss- und Take-Profit-Strategien, passen Sie die Level dynamisch an
  3. Erhöhung der Effizienz der Positionshaltung, Kombination mit Trend und anderen Faktoren zur Verringerung ineffizienter Trades
  4. Versuche verschiedene Handelsprodukte, um Alternativen mit geringerer Volatilität zu finden

Schlussfolgerung

Die Bearish Harami Reversal Backtest Strategie verfügt über eine klare, leicht verständliche Logik, gute Backtest-Ergebnisse und kontrollierbare Risiken.


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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/01/2019 
//    This is a bearish reversal pattern formed by two candlesticks in which a short 
//    real body is contained within the prior session's long real body. Usually the 
//    second real body is the opposite color of the first real body. The Harami pattern 
//    is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))


Mehr