Dynamische Strategie für den Gewinnhandel

Schriftsteller:ChaoZhang, Datum: 2024-02-27 14:43:17
Tags:

img

Übersicht

Dieser Artikel stellt hauptsächlich eine quantitative Handelsstrategie namens Dynamic Trailing Take Profit Trading Strategy vor. Diese Strategie legt eine dynamische Take Profit-Linie auf der Grundlage des ATR-Indikators fest, um nach einer plötzlichen günstigen Kursbewegung innerhalb von 1-2 Kerzen schnellen Gewinn zu erzielen und Verluste zu vermeiden, wenn sich die Preise wieder drehen.

Grundsätze

Die Handelslogik dieser Strategie ist sehr einfach und klar.

  1. Verwenden Sie das Crossover von 14-Perioden-SMA und 28-Perioden-SMA als Signal für Long und Short. Wenn 14-Perioden-SMA über 28-Perioden-SMA geht, gehen Sie lang. Wenn 14-Perioden-SMA unter 28-Perioden-SMA geht, gehen Sie kurz.

  2. Berechnen Sie den ATR-Indikator und multiplizieren Sie ihn mit einem Faktor, um die dynamische Take-Profit-Position zu erhalten.

  3. Wenn die Positionsrichtung lang ist, addieren Sie den hohen Preis und die dynamische Gewinnkanalbreite, um die lange Gewinnlinie zu erhalten. Wenn die Positionsrichtung kurz ist, subtrahieren Sie die dynamische Gewinnkanalbreite vom niedrigen Preis, um die kurze Gewinnlinie zu erhalten.

  4. Sobald der Preis diese dynamische Take-Profit-Linie überschreitet, kann der Profit-Take-Profit innerhalb von 1-2 Bars nach einer plötzlichen starken Kursbewegung erfasst werden.

Durch die oben genannten Schritte erreicht diese Strategie einen einfachen, aber effizienten Effekt von Gewinnverfolgung und schneller Gewinnentnahme. Der ATR-Kanal bietet die dynamische Anpassungsfähigkeit für die Gewinnlinie, während die neu hinzugefügte 1-Bar-Bedingung gewährleistet, dass die Gewinnlinie nur unter plötzlichen günstigen Marktbedingungen ausgelöst wird. Dies kann den vorzeitigen Ausgang aufgrund von Gewinnspielen effektiv reduzieren.

Vorteile

Die Dynamic Trailing Take Profit Trading Strategy hat folgende Vorteile:

  1. Die Idee ist einfach und klar, leicht zu verstehen und umzusetzen, geeignet für Anfänger.

  2. Dynamische ATR-Gewinnentnahme kann automatisch Gewinne verfolgen und Gewinne nicht auf dem Tisch lassen.

  3. Das Hinzufügen von 1 Bar High/Low Condition verhindert, dass bei kleineren Bewegungen Profit ausgelöst wird.

  4. Die ATR-Länge und der Multiplikator können so angepasst werden, dass der Gewinngrad angepasst wird.

  5. Kann schnell aussteigen, um günstige Kursbewegungen zu erfassen.

  6. Sehr erweiterbar, einfach zu implementierende andere Stop-Loss-/Take-Profit-Strategien auf Basis dieses Rahmens.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Eine plötzliche ATR-Erweiterung kann zu einem vorzeitigen Take-Profit-Austritt führen.

  2. Kann Marktlärm nicht effektiv filtern, anfällig für falsches Signal.

  3. Bei der Entscheidungsfindung ausschließlich auf das SMA-Crossover zurückgreifen, was für komplexe Marktsituationen unwirksam ist.

  4. Es gibt keinen Stop-Loss-Mechanismus, um Verluste effektiv zu begrenzen.

  5. Standardparameter ist möglicherweise nicht für alle Produkte geeignet, eine Optimierung ist erforderlich.

Um die oben genannten Risiken zu reduzieren, können wir die folgenden Aspekte optimieren:

  1. Hinzufügen von Filterregeln auf der Grundlage anderer Indikatoren zur Beseitigung falscher Signale.

  2. Hinzufügen von Stop-Loss-Strategien, um Verluste pro Handel streng zu kontrollieren.

  3. Optimieren Sie die Parameter mit Walk Forward Analysis.

  4. Optimieren Sie die Parameter für verschiedene Produkte separat.

  5. Erhöhen Sie die Anzahl der Modelle für maschinelles Lernen für intelligentere Entscheidungen.

Optimierungsrichtlinien

Auf der Grundlage der Risikoanalyse umfassen die Optimierungsrichtungen vor allem:

  1. Hinzufügen eines Signalfilters: Fügen Sie Filterregeln hinzu, die auf Indikatoren wie MACD, Bollinger Band usw. basieren, um Lärm zu vermeiden.

  2. Hinzufügen der Stop-Loss-LinieDie Risikopositionen werden in der Tabelle 1 aufgeführt.

  3. Optimierung der Parameter: Optimieren von Parametern wie ATR-Länge, ATR-Multiplikator mithilfe von maschinellem Lernen.

  4. Risikostützung: Positionsdimensionierung, Risikoparameter auf der Grundlage verschiedener Produkte.

  5. Fusionsmodell: Kombinieren Sie diese Strategie mit maschinellem Lernen, neuronalen Netzwerken, um die Genauigkeit zu verbessern.

  6. Manuelle Intervention: Erlaubt manuelle Überschreitung der Gewinn-/Stop-Loss-Niveaus in kritischen Momenten.

Mit Optimierung in den oben genannten Richtungen können die Rentabilität und Stabilität der Strategie erheblich verbessert werden.

Schlussfolgerung

Zusammenfassend ist die Dynamic Trailing Take Profit Trading Strategy eine sehr praktische und effiziente Take Profit Trading Strategie. Sie hat eine klare und leicht verständliche Idee. Durch dynamische Take Profit kann sie automatisch Gewinne verfolgen und bei starken Trends schnell aussteigen. In der Zwischenzeit birgt diese Strategie auch einige Risiken. Sie kann durch Hinzufügen von Signalfiltern, Stop Loss, Optimierung von Parametern usw. verbessert werden, um sich an komplexere Marktumgebungen anzupassen. Insgesamt bietet diese Strategie einen sehr guten Rahmen, der weiteren Forschung und Anwendung würdig ist.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

if longCondition
    strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
    strategy.entry("Short", strategy.short, comment="short", alert_message="short")

atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na

plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)

strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")

// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
//     table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)


Mehr