Diese Strategie verwendet dynamische Zeitrahmen-Hoch-Niedrig-Breakouts, um Handelssignale zu generieren. Sie bestimmt, ob man kauft oder verkauft, indem man die höchsten und niedrigsten Preise des aktuellen Zeitrahmens mit dem Schlusskurs des vorherigen Zeitrahmens plus oder minus eine bestimmte Anzahl von Punkten vergleicht. Dieser Ansatz kann sich an verschiedene Markttrends und Volatilität anpassen, wodurch die Anpassungsfähigkeit und Flexibilität der Strategie verbessert wird.
Der Kern dieser Strategie besteht darin, die Höchst- und Tiefpunkte verschiedener Zeitrahmen zu verwenden, um Preistrends zu bestimmen. Zuerst erhält sie den höchsten Preis, den niedrigsten Preis und die Schlusskursdaten, die dem vom Benutzer gewählten Zeitrahmen entsprechen. Dann bestimmt sie das Kaufsignal, indem sie vergleicht, ob der höchste Preis des aktuellen Zeitrahmens größer ist als der Schlusskurs des vorherigen Zeitrahmens plus eine bestimmte Anzahl von Punkten. Ebenso bestimmt sie das Verkaufssignal, indem sie vergleicht, ob der niedrigste Preis des aktuellen Zeitrahmens kleiner ist als der Schlusskurs des vorherigen Zeitrahmens minus eine bestimmte Anzahl von Punkten. Sobald ein Kauf- oder Verkaufssignal erscheint, wird die Strategie entsprechend Positionen öffnen oder schließen. Darüber hinaus markiert die Strategie die Kauf- und Verkaufssignale auf dem Chart und zeichnet die Aktienkurve der Strategie für eine intuitive Bewertung der Strategie.
Die Dynamic Timeframe High-Low Breakout-Strategie erzeugt Handelssignale basierend auf Preisbreaks von Hoch- und Tiefpunkten in verschiedenen Zeitrahmen. Die Strategie-Logik ist klar, anpassungsfähig und einfach zu implementieren und zu optimieren. Sie hat jedoch auch Probleme wie Parameterempfindlichkeit, Überanpassung und Marktrisiko, die in der tatsächlichen Anwendung kontinuierlich optimiert und verbessert werden müssen. Durch dynamische Anpassung von Parametern, Einführung von Risikomanagement, Kombination mit anderen Indikatoren und Optimierung der Codeeffizienz können die Robustheit und Rentabilität der Strategie weiter verbessert werden und wirksame Werkzeuge und Ideen für den quantitativen Handel bereitgestellt werden.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(" NIFTY 65-15 ", overlay=true) // Define input options for point settings and timeframe points = input.int(60, title="Point Threshold", minval=1, step=1) timeframe = input.timeframe("60", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"]) // Calculate high and low of the selected timeframe high_timeframe = request.security(syminfo.tickerid, timeframe, high) low_timeframe = request.security(syminfo.tickerid, timeframe, low) close_timeframe = request.security(syminfo.tickerid, timeframe, close) // Define conditions for Buy and Sell buyCondition = high_timeframe > (close_timeframe[1] + points) sellCondition = low_timeframe < (close_timeframe[1] - points) // Entry and exit rules if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Close the positions based on the conditions if (sellCondition) strategy.close("Buy") if (buyCondition) strategy.close("Sell") // Plot Buy and Sell signals on the chart plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar) // Plot the equity curve of the strategy plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)