Die Ressourcen sind geladen. Beförderung...

Dynamische Preiszone Breakout-Handelsstrategie auf Basis eines quantitativen Support- und Widerstandssystems

Schriftsteller:ChaoZhang, Datum: 2024-12-11 15:03:50
Tags:

img

Übersicht

Diese Strategie ist ein quantitatives Handelssystem, das auf Preisspanne-Breakouts basiert. Sie funktioniert, indem dynamisch obere und untere Preislimits festgelegt und Trades ausgeführt werden, wenn die Preise diese Schlüsselniveaus durchbrechen. Das Kernkonzept besteht darin, Trendchancen zu erfassen, wenn der Markt aus den festgelegten Preisbereichen ausbricht, während er sich durch dynamische Anpassung der Preiszonen an die Marktänderungen anpasst. Die Strategie verwendet ein flexibles Positionsmanagement, das zusätzliche Trades in der gleichen Richtung ermöglicht, um die Gewinne aus den wichtigsten Trends zu maximieren.

Strategieprinzipien

Die Strategie basiert auf den folgenden Kernmechanismen: Erstens setzt sie geeignete Schrittgrößen für verschiedene Handelsinstrumente, typischerweise etwa 1,5% des Kurses des Instruments. Das System legt Preiszonen über und unter den aktuellen Preis fest, die lange Signale auslösen, wenn die Preise über die obere Grenze und kurze Signale auslösen, wenn sie unter die untere Grenze brechen. Nach jedem Ausbruch passen sich die Preiszonen an, um sich an das neue Marktumfeld anzupassen. Die Strategie unterstützt die Hinzufügung von Positionen in die gleiche Richtung, so dass bis zu 200 Positionen möglich sind, was die Gewinnmaximierung bei starken Trends ermöglicht. Die Auftragsverarbeitung umfasst mehrere Sicherheitsmaßnahmen, einschließlich der Verarbeitung beim Barschließen, der Neuberechnung nach der Handelsausführung und der Berechnung bei jedem Preis-Tick.

Strategische Vorteile

  1. Starke dynamische Anpassung: Preiszonen passen sich automatisch an Marktveränderungen an, so dass sich die Strategie an unterschiedliche Marktbedingungen anpassen kann.
  2. Ausgezeichnete Fähigkeit, Trends zu verfolgen: Durch die Bereitstellung zusätzlicher Positionen in dieselbe Richtung kann die Strategie aus starken Trends vollständig Kapital schlagen.
  3. Umfassende Risikokontrolle: Es werden klare Stop-Loss-Bedingungen festgelegt und die Positionen werden automatisch geschlossen, wenn die Preise unter die Zone fallen.
  4. Breite Anwendbarkeit: Die Strategie kann auf verschiedenen Märkten durch geeignete Stufengrößenparameter für verschiedene Handelsinstrumente angewendet werden.
  5. Hohe Rechenleistung: Verwendet eine variable Persistenz und effiziente Berechnungsmethoden, um einen reibungslosen Strategiebetrieb zu gewährleisten.

Strategische Risiken

  1. Schwankende Marktrisiken: Häufige falsche Ausbrüche in Bereichsgebundenen Märkten können zu aufeinanderfolgenden Stopps führen.
  2. Positionsmanagementrisiko: Die Addition von Positionen in die gleiche Richtung kann zu einer übermäßigen Konzentration führen, die eine angemessene Kontrolle der gerichteten Risikopositionen erfordert.
  3. Schwankungsrisiko: Ein erheblicher Schwankungsrisiko in volatilen Perioden kann sich auf die Strategieergebnisse auswirken.
  4. Parameterempfindlichkeit: Die Wirksamkeit der Strategie hängt unmittelbar von geeigneten Schrittgrößen-Einstellungen ab und erfordert gründliche Tests.

Strategieoptimierungsrichtlinien

  1. Einbeziehung von Volatilitätsindikatoren: Dynamische Anpassung der Stufengrößen anhand der Marktvolatilität zur Verbesserung der Anpassungsfähigkeit der Strategie.
  2. Hinzufügen von Filtermechanismen: Hinzufügen von Trendbestätigungsindikatoren zur Verringerung von Verlusten durch falsche Ausbrüche.
  3. Verbesserung des Positionsmanagements: Ausarbeitung detaillierter Positionskontrollmechanismen zur Balancierung von Renditen und Risiken.
  4. Optimierung der Auftragsausführung: Hinzufügen eines intelligenten Auftragsroutings zur Verringerung der Auswirkungen von Schlupf.
  5. Einbeziehung der Zeitdimension: Berücksichtigen Sie die Merkmale der Marktzeit, um die Strategieparameter in verschiedenen Perioden anzupassen.

Zusammenfassung

Dies ist ein gut konzipierter Trend, der der Strategie mit klarer Logik folgt. Durch dynamische Preiszoneneinstellungen und Anpassungen, kombiniert mit flexiblem Positionsmanagement, kann die Strategie Markttrendchancen effektiv erfassen. Während es Raum für Optimierung gibt, bietet die Strategie insgesamt einen robusten quantitativen Handelsrahmen. Durch kontinuierliche Optimierung und Verbesserung kann die Strategieleistung weiter verbessert werden.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// 每个图表上画对应间隔的横线,自己手画吧
// 同方向追加20单,订单成交后重新计算,每个tick重新计算,变量保存1000个周期,k线结束后再处理一次订单,按照代码顺序来绘制plot
strategy("Price Level Breakout Strategy", overlay=true, pyramiding=200, calc_on_order_fills=true, calc_on_every_tick=true, max_bars_back=1000, process_orders_on_close=true, explicit_plot_zorder=true)
// var创建持久性变量,:=是更新变量,不重新声明
// 这个是全局变量
// a = array.new<string>(200)
// array.push(a, "a")
// plot(close, color = array.get(a, close > open ? 1 : 0))
string ticker = syminfo.ticker
var float step_size = 1000
// label.new(x=bar_index, y=close, text="当前品种代码: " + ticker)
// 根据定值画1.5的平行线
if ticker == "000300"
    step_size := 4000 * 0.015
if ticker == "XAUUSD"
    step_size := 3000 * 0.016
if ticker == "BTCUSD"
    step_size := 60000 * 0.015
if ticker == "SILVER"
    step_size := 50 * 0.015
if ticker == "UKOIL"
    step_size := 150 * 0.015
if ticker == "GBPUSD"
    step_size := 1.6 * 0.015
if ticker == "EURUSD"
    step_size := 1.1 * 0.015
    // 从0开始画200条间隔线
if ticker == "USDJPY"
    step_size := 100 * 0.015
var float start_value = close
var float up_number = close + step_size
var float low_number = close - step_size
// hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// plot(1)
// 当价格突破上限,产生买入信号
if close > up_number
    // 生成买入信号
    strategy.entry(id = "Buy", direction = strategy.long)
    // 更新新的价格区间
    start_value := start_value + step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Sell")
// 当价格跌破下限,产生卖出信号
if close < low_number
    // 生成卖出信号
    strategy.entry("Sell", strategy.short)
    // 更新新的价格区间
    start_value := start_value - step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Buy")


Mehr