Die Harami Schlusskursstrategie ist eine quantitative Handelsstrategie, die auf Kerzenmustern basiert.
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
Wenn der Durchschnitt des Kerzenkörpers größer als die Hälfte der Stop-Loss-Linie ist, wird der Stop-Loss ausgelöst.
Die wichtigsten Vorteile der Harami-Schlusskursstrategie sind:
Diese Strategie birgt auch einige Risiken:
Um diese Risiken abzuschwächen, wird empfohlen, zusammen mit dem Handelsvolumen, gleitenden Durchschnitten und anderen technischen Indikatoren umfassendere Beurteilungen über die Marktentwicklung zu treffen.
Die Strategie des Schlusskurses von Harami kann auch in folgenden Aspekten verbessert werden:
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()