Harami Schlusskursstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-28 16:50:34
Tags:

img

Übersicht

Die Harami Schlusskursstrategie ist eine quantitative Handelsstrategie, die auf Kerzenmustern basiert.

Strategie Logik

Die Kernlogik lautet: Wenn der aktuelle Kerzenstock eine rote Kerze und der vorherige eine grüne Kerze ist und der niedrigste Preis der aktuellen Kerze höher ist als der niedrigste Preis der vorherigen Kerze, der höchste Preis der aktuellen Kerze niedriger ist als der höchste Preis der vorherigen Kerze, bildet sich das Harami-Muster. Dies bedeutet, dass die Aufwärtstrenddynamik an Stärke verliert und es ein Signal für den Verkauf ist. Im Gegenteil, ein Harami-Muster mit zwei umgekehrten Kerzen bildet ein Kaufsignal.

Wenn der Durchschnitt des Kerzenkörpers größer als die Hälfte der Stop-Loss-Linie ist, wird der Stop-Loss ausgelöst.

Analyse der Vorteile

Die wichtigsten Vorteile der Harami-Schlusskursstrategie sind:

  1. Einfaches und vernünftiges Urteil, basierend auf Kerzenmustern, leicht zu verstehen und umzusetzen.
  2. Wenn sich die steigende Bandbreite zu einem Harami-Muster verengt, verliert die bullische Dynamik an Stärke und es ist ein guter Verkaufspunkt.
  3. Es gibt einen klaren Stop-Loss-Mechanismus zur Risikokontrolle.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Niedrige Überwachungsfrequenz, kann die besten Ein- und Ausstiegspunkte verpassen.
  2. Falsche bullische/bärenische Kerzen können falsche Signale erzeugen.
  3. Die Beurteilungen basieren ausschließlich auf Kerzenmustern ohne Berücksichtigung anderer technischer Indikatoren und Fundamentaldaten, was zu einer gewissen Blindheit führt.

Um diese Risiken abzuschwächen, wird empfohlen, zusammen mit dem Handelsvolumen, gleitenden Durchschnitten und anderen technischen Indikatoren umfassendere Beurteilungen über die Marktentwicklung zu treffen.

Optimierungsrichtlinien

Die Strategie des Schlusskurses von Harami kann auch in folgenden Aspekten verbessert werden:

  1. Der Umfang der Handelsgeschäfte wird häufig umgekehrt.
  2. Anpassung der Stop-Loss-Kriterien dynamisch anhand der Marktvolatilität und der Risikopräferenz.
  3. Identifizierung von Verkaufspunkten in der Nähe von wichtigen Unterstützungsniveaus in höheren Zeitrahmen, wenn sich Harami-Muster bilden.
  4. Kombination anderer technischer Indikatoren wie gleitender Durchschnitte zur Bestimmung der allgemeinen Marktentwicklung oder führender Indikatoren zur Prognose von Ein- und Ausstiegspunkten.

Zusammenfassung

Die Harami Schlusskursstrategie ist leicht zu verstehen und umzusetzen, um bestimmte Kauf- und Verkaufssignale basierend auf Kerzenmustern zu generieren. Aber sie hat auch einige Einschränkungen wie die Erzeugung falscher Signale und Blindheit. Diese Probleme weisen auch auf Richtungen für weitere Optimierungen hin, indem umfassendere Urteile mit Handelsvolumen, mehreren Zeitrahmen und anderen technischen Indikatoren angewendet werden. Dies kann die Wirksamkeit der Strategie erheblich verbessern.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Harami Strategy v1.0", shorttitle = "Harami str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == 1 and bar[1] == -1 and min > min[1] and max < max[1]
dn = bar == -1 and bar[1] == 1 and min > min[1] and max < max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Mehr