Diese Strategie zielt darauf ab, die prozentuale Preisänderung von Aktien innerhalb eines bestimmten Zeitraums zu erkennen und Handelssignale zu erzeugen, wenn ein Schwellenwert überschritten wird.
Der Eingabeparameter x stellt die Anzahl der zu überprüfenden Kerzenperioden dar, wobei bei 5-minütigen Kerzen ein Standardwert von 5 gilt.
Berechnen Sie die prozentuale Veränderung des aktuellen Schlusskurses gegenüber dem Schlusskurs vor x Perioden, gespeichert als trueChange1 und trueChange2.
Die Eingabeparameter percentChangePos und percentChangeNeg stellen die Schwellenwertprozentsatzänderung dar, wobei die Standardwerte 0,4% und -0,4% liegen.
Wenn trueChange1 größer als percentChangePos ist, wird ein Kaufsignal generiert. Wenn trueChange2 kleiner als percentChangeNeg ist, wird ein Verkaufssignal generiert.
Hinzufügen von Text- und Hintergrundfarben für den Kauf- und Verkaufsstatus.
Setzen Sie Ein- und Ausstiegsregeln anhand der Signale.
Alarme und Zeichnungen einrichten.
Verwenden Sie die prozentuale Veränderung anstelle der absoluten Preisänderung, die an verschiedene Bestände angepasst werden kann.
Flexible Festlegung von positiven und negativen Prozentsatzschwellen, um Bollinger-Band-Breakouts zu ermitteln.
Einstellbare Nachweisperiode zur Ermittlung von Trendänderungen in verschiedenen Zeitrahmen.
Konfigurierbare Alarme, um wichtige Signale zu erfassen.
Einfache und unkomplizierte Signallogik, leicht zu verstehen und zu verwenden.
Kurzfristige Rückschläge bei Marktöffnung erfassen.
Eine prozentuale Veränderung bestimmt nicht die Trendrichtung, kann irreführende Signale erzeugen.
Die Standardparameter sind möglicherweise nicht für alle Bestände geeignet, eine spezifische Anpassung ist erforderlich.
Keine Stop Loss vorhanden, nicht in der Lage, Verluste zu begrenzen.
Häufige Signale, möglicherweise hohe Handelskosten.
Nicht in der Lage, die Marktstruktur zu bestimmen, anfällig für Whipsaws in verschiedenen Märkten.
Lösungen:
Kombinieren Sie mit Trendindikatoren wie linearer Regression, um den Gesamttrend zu bestimmen.
Optimierung der Parameter anhand der Bestandseigenschaften.
Implementieren Sie einen ordnungsgemäßen Stop-Loss.
Filtern Sie Signale, um zu vermeiden, dass Sie zu viel handeln.
Marktstrukturen aus höheren Zeitrahmen zu messen, um Handelsschwierigkeiten zu vermeiden.
Hinzufügen von Stop-Loss-Mechanismen wie Trailing Stop-Loss, um Verluste zu begrenzen.
Fügen Sie Filterbedingungen wie Volumen, gleitende Durchschnitte hinzu, um Whipsaws zu vermeiden.
Optimieren Sie die Ein- und Ausstiegsregeln mit Indikatoren wie dem MACD.
Verwenden Sie maschinelles Lernen, um Parameter automatisch zu optimieren.
Analyse der Marktstruktur, um Probleme zu vermeiden.
Dynamisch festgelegte Parameter auf der Grundlage von Volatilität und Liquidität.
Kombination mit einer höheren Zeitrahmenanalyse zur Ermittlung des Gesamttrends.
Diese Strategie erzeugt Trades, indem sie prozentualen Preiswandel mit vorgegebenen Schwellenwerten vergleicht, was sie zu einer kurzfristigen Mittelumkehrstrategie macht. Die Vorteile liegen in ihrer Einfachheit, Flexibilität und Fähigkeit, plötzliche Marktbewegungen zu erfassen. Die Nachteile sind Risiken, die durch Optimierungen und einen ordnungsgemäßen Einsatz mit Trendanalyse und Risikomanagement angegangen werden können. Insgesamt hat sie eine solide Logik und kann eine effektive kurzfristige Handelsstrategie sein, wenn sie richtig verbessert wird.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // created by Oliver strategy("Percentage Change strategy w/BG color", overlay=true, scale=scale.none, precision=2) x = input(5, title = 'x candles difference', minval = 1) trueChange1 = (close - close[x]) / close[x] * 100 percentChangePos = input(0.4, title="Percent Change") //if (percentChange > trueChange) then Signal plotChar1 = if percentChangePos > trueChange1 false else true plotchar(series=plotChar1, char='🥶', color=color.green, location=location.top, size = size.tiny ) trueChange2 = (close - close[x]) / close[x] * 100 percentChangeNeg = input(-0.4, title="Percent Change") plotChar2 = if percentChangeNeg < trueChange2 false else true plotchar(series=plotChar2, char='🥵', color=color.red, location=location.top, size = size.tiny) //------------------------------------------------------------------------ UpColor() => percentChangePos < trueChange1 DownColor() => percentChangeNeg > trueChange2 //Up = percentChangePos < trueChange1 //Down = percentChangeNeg > trueChange2 col = percentChangePos < trueChange1 ? color.lime : percentChangeNeg > trueChange2 ? color.red : color.white //-------- condColor = percentChangePos < trueChange1 ? color.new(color.lime,50) : percentChangeNeg > trueChange2 ? color.new(color.red,50) : na //c_lineColor = condUp ? color.new(color.green, 97) : condDn ? color.new(color.maroon, 97) : na //barcolor(Up ? color.blue : Down ? color.yellow : color.gray, transp=70) //Background Highlights //bgcolor(condColor, transp=70) //--------- barcolor(UpColor() ? color.lime: DownColor() ? color.red : na) bgcolor(UpColor() ? color.lime: DownColor() ? color.red : na) //------------------------------------------------------------------------ buy = percentChangePos < trueChange1 sell = percentChangeNeg > trueChange2 //------------------------------------------------------------------------ /////////////// Alerts /////////////// alertcondition(buy, title='buy', message='Buy') alertcondition(sell, title='sell', message='Sell') //------------------------------------------------- if (buy) strategy.entry("My Long Entry Id", strategy.long) if (sell) strategy.entry("My Short Entry Id", strategy.short) /////////////////// Plotting //////////////////////// plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)