Die Ressourcen sind geladen. Beförderung...

Anpassungsfähige, nachträgliche und ausgewogene Handelsstrategie mit Take-Profit und Stop-Loss

Schriftsteller:ChaoZhang, Datum: 2024-12-12 14:25:36
Tags:OCAGAP

img

Übersicht

Diese Strategie ist ein anpassungsfähiges Handelssystem, das auf Lücken und Preisbewegungen basiert und durch flexible Einstiegspunkte und dynamische Take-Profit/Stop-Loss-Einstellungen stabile Renditen erzielt.

Strategieprinzipien

Die Strategie arbeitet durch mehrere Kernmechanismen:

  1. Gap-Trading-Mechanismus: Identifiziert Auf- und Abwärtstruppen und platziert Stop-Orders auf Gap-Niveaus
  2. Trendfollowing: Bestimmt die Trendrichtung anhand des Verhältnisses zwischen Eröffnungs- und Schlusskurs
  3. Pyramiden: Ermöglicht bis zu 100 Befehle in die gleiche Richtung
  4. Dynamische TP/SL: Festlegt dynamisch auf Basis des durchschnittlichen Positionspreises die Gewinn- und Stop-Loss-Level
  5. OCA-Auftragsverwaltung: Verwenden von OCA-Auftragsgruppen, um die gegenseitige Exklusivität von TP- und SL-Auftragen sicherzustellen
  6. Grenzwerte für den Intraday-Handel: Risikokontrolle durch Festlegung der maximalen innerhalb des Tages ausgeführten Aufträge

Strategische Vorteile

  1. Hohe Anpassungsfähigkeit: Die Strategie passt die Handelsrichtung und die Positionsgröße automatisch an die Marktbedingungen an
  2. Risikopositionen, für die die Risikopositionen in den einzelnen Risikokapitalbereichen definiert werden, sind zu berücksichtigen.
  3. Hohe Flexibilität: Unterstützt Pyramiden, um mehr Gewinn auf Trendmärkten zu erzielen
  4. Hohe Ausführungseffizienz: Verwendet Stop-Orders zur schnellen Positionsbildung auf Schlüsselpreisniveaus
  5. Hohe Systematisierung: Vollständig systematische Handelsentscheidungen reduzieren emotionale Störungen

Strategische Risiken

  1. Schwankungsrisiko: Auf schnelllebigen Märkten kann ein erheblicher Schwankungsrisiko auftreten.
  2. Überhandelsrisiko: Häufige Ein- und Ausstiege können zu hohen Transaktionskosten führen
  3. Systematisches Risiko: Auf stark volatilen Märkten können größere Verluste entstehen
  4. Kapitalmanagementrisiko: Pyramidenbildung kann zu einer übermäßigen Kapitalnutzung führen
  5. Technisches Risiko: Unterbrechungen des Programms können zu Problemen beim Auftragsmanagement führen

Strategieoptimierungsrichtlinien

  1. Einbeziehung von Volatilitätsindikatoren: Dynamische Anpassung der TP/SL-Parameter anhand der Marktvolatilität
  2. Optimierung des Pyramidenmechanismus: Ausarbeitung detaillierter Positionsgrößenregelungen zur Vermeidung übermäßiger Kapitalnutzung
  3. Verbesserung der Risikokontrolle: Hinzufügen von mehr Risikokontrollindikatoren wie maximalen Intraday-Zuschlagsgrenzen
  4. Verbesserung der Auftragsausführung: Optimierung des Auftragsprogressionsmechanismus zur Verringerung der Folgen von Ausrutschen
  5. Marktstimmungsanalyse hinzufügen: Optimieren Sie den Eintrittszeitpunkt durch Einbeziehung von Volumen und anderen Indikatoren

Zusammenfassung

Dies ist eine gut konzipierte Handelsstrategie mit strenger Logik, die die Handelsstabilität und -sicherheit durch mehrere Mechanismen gewährleistet. Die Hauptvorteile liegen in ihrer Anpassungsfähigkeit und Risikokontrolle, während auf Risiken durch Marktvolatilität geachtet werden muss. Durch kontinuierliche Optimierung und Verbesserung hat die Strategie das Potenzial, eine stabile Performance in verschiedenen Marktumgebungen zu erhalten.


/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
backtestStartDate = input(timestamp("1 Jan 1990"),
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
inTradeWindow = true
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
// strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
if inTradeWindow and upGap
    strategy.entry("GapUp", strategy.long, stop = high[1])
else
    strategy.cancel("GapUp")
if inTradeWindow and dn
    strategy.entry("Dn", strategy.short, stop = close)
else
    strategy.cancel("Dn")
if inTradeWindow and dnGap
    strategy.entry("GapDn", strategy.short, stop = low[1])
else
    strategy.cancel("GapDn")
if inTradeWindow and up
    strategy.entry("Up", strategy.long, stop = close)
else
    strategy.cancel("Up")
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false)
if inTradeWindow and not revCond and XQty > 0
    strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  "TPSL")
    strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL")
if XQty == 0 or revCond
    strategy.cancel("TP")
    strategy.cancel("SL")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Verwandt

Mehr