Langfristige Volatilitätsstrategien basierend auf der Erkennung von Höhen und Tiefen

Schriftsteller:ChaoZhang, Datum: 2024-02-18 09:57:11
Tags:

基于高低点识别的长线期波动策略

Übersicht

Die Hoch-Tief-Break-Strategie ist eine langfristige Volatilitätsstrategie, die auf der Identifizierung von Hoch-Tief-Punkten basiert. Die Strategie richtet sich in Richtung der Parameter der Strategierichtung und macht mehr, wenn der höchste Preis eines bestimmten Fensterzeitraums gebrochen wird, und länger, wenn der niedrigste Preis eines bestimmten Fensterzeitraums gebrochen wird.

Die Strategie

Die Strategie richtet sich anhand der Richtungsparameter nach dem höchsten und niedrigsten Preis der letzten N-K-Line, also dem hohen und niedrigen Punkt der Schwankung, anhand der eingegebenen Parameter.

Darüber hinaus setzt die Strategie auch einen Stop-Loss-Level. Nach dem Öffnen einer Position wird der Stop-Loss-Line nahe dem niedrigsten Preis gesetzt; nach dem Auslassen der Position wird der Stop-Loss-Line nahe dem höchsten Preis gesetzt. Dies kann die großen Verluste eines einseitigen Marktes effektiv vermeiden.

Stärkenanalyse

Der größte Vorteil dieser Strategie besteht darin, die wichtigsten Schwankungen in der Nähe von Hoch- und Tiefpunkten zu erfassen, um einen Gewinn zu erzielen. Zusätzlich wird das Risiko durch die Einrichtung einer Stop-Loss-Linie effektiv kontrolliert.

Die spezifischen Vorteile:

  1. Die Strategie ist klar, man kommt rein und aus, indem man die Höhen und Tiefen durchbricht.

  2. Es ist eine klassische Praxis in der technischen Analyse, um die Höhe und Tiefe der Swing zu nutzen, um nach Umkehrmöglichkeiten zu suchen.

  3. Die Risiken werden durch die Einrichtung von Stop-Loss-Einstellungen kontrolliert, um die großen Verluste durch einseitige Märkte zu vermeiden.

  4. Die Codestruktur ist klar, leicht zu verstehen und zu ändern.

  5. Verschiedene Parameter können eingegeben werden, um die Strategie zu optimieren, wie z. B. die Anzahl der Perioden an den höchsten und niedrigsten Punkten anzupassen.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie bestehen darin, dass falsche Transaktionen bei hohen und niedrigen Punkten verhindert werden.

  1. Die höchsten Tiefen können mit falschen Durchbrüchen verbunden sein, was zu falschen Einstiegen führt.

  2. In der Nähe des Durchbruchs könnte ein starker Stopp ausgelöst werden.

  3. Trends können sich leicht bilden, aber es kostet viel, um die Höhen und Tiefen zu bestimmen.

  4. Eine falsche Einstellung der Parameter kann auch die Funktionsweise der Strategie beeinträchtigen.

Die entsprechenden Lösungen umfassen:

  1. Optimierung der Parameter, Anpassung der Periodenanzahl der Höchst- und Mindestpunkte.

  2. Das ist ein großes Problem.

  3. Unterscheiden Sie die Eigenschaften der Sorte und vermeiden Sie die Verwendung von Trendsorten.

  4. Dynamische Optimierung von Parametern mit Hilfe von Machine Learning.

Strategische Optimierung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Maximal-Mindestpunkt-Pykelzahlen-Optimierung: Die aktuelle feste Periodenzahl kann in dynamische Optimierungen umgewandelt werden, um die Überoptimierung durch die feste Mode zu vermeiden.

  2. Erhöhung der Stoppverlust-Optimierung: Die Stoppverlustgröße kann dynamisch anhand von Indikatoren wie ATR, Schwankungsrate und anderen angepasst werden.

  3. Kombination von mehreren Zeitzyklen: Trends können in höheren Zeitzyklen identifiziert werden, während niedrigere Zeitzyklen den Einstieg bestimmen.

  4. Erhöhung des Maschinellen Lernens: Methoden wie Neural Networks werden verwendet, um die Wahrscheinlichkeit eines potentiellen Höhen- und Tiefenbruchs vorherzusagen und die Wirkung zu verbessern.

  5. Optimierte Stop-Loss-Algorithmen: Verbesserte Algorithmen, um die Auslösung von Null-Stop-Loss-Triggern so weit wie möglich zu reduzieren, sofern ein Stop-Loss garantiert wird.

Zusammenfassung

Die Strategie des Höhen- und Tiefenbruchs als Ganzes ist eine sehr praktische langfristige Quantitationsstrategie. Sie steuert Risiken durch die Erfassung von Umkehrchancen in der Nähe von Höhen- und Tiefen und setzt Stopp-Losses ein, um Rückgänge zu kontrollieren, während sie Gewinne garantiert. Die Parameter für die Strategie sind flexibel eingestellt, klar gedacht und sind eine empfehlenswerte Strategie.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)


Weitere Informationen