Die Noro
Die Strategie berechnet zunächst den Durchschnitt der höchsten und niedrigsten Preise über einen bestimmten Zeitraum, um einen mittleren Preiskanal zu konstruieren. Wenn der Preis von unten über den Kanal bricht, gilt es als langes Signal. Wenn der Preis von oben unter den Kanal bricht, gilt es als kurzes Signal.
Gleichzeitig beinhaltet die Strategie zwei Hilfsregeln: schneller RSI und Kerzenfarbe. Wenn der schnelle RSI unter 25% liegt, deutet dies auf einen Überverkaufsstatus hin und die Preise können sich erholen. Zusammen mit einem Ausbruch über dem Kanal erzeugt dies ein stärkeres Langsignal. Im Gegensatz dazu, wenn der schnelle RSI über 75% liegt, deutet er auf einen Überkaufstatus hin und die Preise können fallen. Zusammen mit einem Ausbruch unter dem Kanal erzeugt dies ein stärkeres Kurzsignal. Darüber hinaus verfolgt die Strategie die Veränderungen der Kerzenfarbe über die letzten zwei Kerzen. Zwei aufeinanderfolgende rote Kerzen verstärken das kurze Signal, während zwei aufeinanderfolgende grüne Kerzen das lange Signal verstärken.
Durch die Kombination dieser drei Signalindikatoren kann die Strategie mittelfristige und langfristige Trends effektiv identifizieren und entsprechend Positionen festlegen.
Der größte Vorteil dieser Strategie besteht darin, dass mehrere Indikatoren zur Bestimmung der Trendrichtung und zur Vermeidung von Lärm durch kurzfristige Marktschwankungen verwendet werden.
Der Preiskanal zeigt deutlich die Trendrichtung und -stärke an. Durchbrüche der Kanalbänder stellen eine neue Phase des Trends mit starken Signalen dar.
Der schnelle RSI beurteilt überkaufte/überverkaufte Bedingungen, um zu vermeiden, dass Trends an Wendepunkten verfolgt werden.
Die Validierung der Farbe der Kerze überprüft die Trendbeständigkeit weiter.
Die Strategie wird nur bei zwei aufeinanderfolgenden, gleichfarbigen Kerzen eingesetzt, die den Kanal durchbrechen und falsche Signale von kurzfristigen Schwingungen vermeiden.
Der einfache durchschnittliche Stop-Loss schließt Positionen, sobald sich die Farbe der Kerze ändert, wodurch Verluste effektiv minimiert werden.
Für diese Strategie sind auch einige Risiken zu beachten:
Bei falschen Einstellungen der Preiskanalparameter kann es zu zu breiten oder zu engen Kanälen kommen, zu fehlenden Trendwechselpunkten oder zu übermäßigen falschen Signalen kommen.
Bei falschen Einstellungen der schnellen RSI-Parameter kann es nicht möglich sein, überkaufte/überverkaufte Konditionen genau zu identifizieren, wodurch Rückkehrmöglichkeiten verpasst werden.
Der einfache Stop-Loss-Mechanismus kann bei unruhigen Trends zu empfindlich sein und zu einer übermäßigen Positionöffnung und -schließung führen.
Sie kann die tatsächliche Fortführung des Trends nach dem Durchbruch des Preiskanals nicht vorhersagen, was zu verstärkten Verlusten führt.
Sie kann sich nicht an schwarze Schwanen angepaßt werden, die plötzliche Auswirkungen auf den Markt haben und zu großen Verlusten führen.
Zu den wichtigsten Möglichkeiten zur Verbesserung der Strategie gehören:
Dynamische Anpassung der Preiskanalparameter, um sich besser an die Volatilität in verschiedenen Perioden und Märkten anzupassen.
Einbeziehung von Volatilitätsmaßnahmen zur Anpassung der RSI-Parameter, die die Empfindlichkeit bei hoher Volatilität senken und bei geringer Volatilität erhöhen.
Hinzufügen von Trailing Stop-Mechanismen mit Stop-Levels, die auf der Trendvolatilität basieren, um überempfindliche Stop-Outs zu vermeiden.
Verbesserung der Identifizierung der Ausbruchstärke und der Abweichungen zwischen Bären und Bären, um falsche Ausbrüche zu vermeiden.
Einbeziehung historischer Datenmodelle, um Trendwendepunkte mit hoher Wahrscheinlichkeit zu schätzen und die Eingabegenauigkeit zu verbessern.
Optimierung der Positionsgrößenmodelle zur dynamischen Anpassung der Zuteilungen anhand der Risikobedingungen.
Insgesamt ist Noro
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", 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(true, defval = true, title = "Short") usecol = input(true, defval = true, title = "Use color strategy") usersi = input(true, defval = true, title = "Use RSI strategy") lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel") showcl = input(true, defval = true, title = "Show center-line") 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") src = close //Price channel lasthigh = highest(src, pch) lastlow = lowest(src, pch) center = (lasthigh + lastlow) / 2 trend = low > center ? 1 : high < center ? -1 : trend[1] col = showcl ? blue : na plot(center, color = col, linewidth = 2) //Bars bar = close > open ? 1 : close < open ? -1 : 0 rbars = sma(bar, 2) == -1 gbars = sma(bar, 2) == 1 //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Signals body = abs(close - open) abody = sma(body, 10) up1 = rbars and close > center and usecol dn1 = gbars and close < center and usecol up2 = fastrsi < 25 and close > center and usersi dn2 = fastrsi > 75 and close < center and usersi exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2) lot = strategy.equity / close * lev //Trading if up1 or up2 if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, 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()