Dynamische Preisspanne - bahnbrechende Handelsstrategie - quantitatives System basierend auf Unterstützungs- und Widerstandsniveaus


Erstellungsdatum: 2024-12-11 15:03:50 zuletzt geändert: 2024-12-11 15:03:50
Kopie: 3 Klicks: 378
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Preisspanne - bahnbrechende Handelsstrategie - quantitatives System basierend auf Unterstützungs- und Widerstandsniveaus

Überblick

Die Strategie ist ein quantitatives Handelssystem, das auf Preisspanne-Breakthroughs basiert. Es setzt dynamisch die oberen und unteren Grenzen der Preisspanne und handelt, wenn die Preise diese kritischen Niveaus überschreiten. Die Kernidee der Strategie ist es, trendige Chancen zu erfassen, wenn der Markt die festgelegten Preisspanne überschreitet, und sich dynamisch an die Preisspanne anzupassen, um sich an Marktveränderungen anzupassen.

Strategieprinzip

Die Strategie basiert auf folgenden Kernmechanismen: Zunächst wird der entsprechende Schritt (step_size) entsprechend den Eigenschaften der verschiedenen Handelsarten festgelegt, der sich auf etwa 1,5% des Handelspreises bezieht. Das System setzt einen Preisbereich über und unter dem aktuellen Preis ein, der mehrere Signale auslöst, wenn der Preis die Obergrenze überschreitet; wenn die Obergrenze überschritten wird, wird ein Leersignal ausgelöst. Nach jedem Durchbruch wird der Preisbereich angepasst, um sich an die neue Marktumgebung anzupassen.

Strategische Vorteile

  1. Dynamische Anpassungsfähigkeit: Die Preisspanne passt sich automatisch an Marktveränderungen an, so dass die Strategie sich an unterschiedliche Marktbedingungen anpassen kann.
  2. Trend-Tracking-Fähigkeit ist hervorzuheben: Die Strategie kann starke Trends vollständig erfassen, indem sie gleichzeitige Anlagerungen zulässt.
  3. Die Risikokontrolle ist perfekt: Es gibt klare Stop-Loss-Bedingungen, die automatisch die Position löschen, wenn der Preis unter der Bandbreite fällt.
  4. Breite Anwendbarkeit: Die Strategie kann in mehreren Märkten angewendet werden, indem die entsprechenden Schrittlängen für verschiedene Handelsarten festgelegt werden.
  5. Hohe Berechnungs-Effizienz: Die Variablen werden auf Dauer gehalten und eine effiziente Berechnungsmethode wird verwendet, um sicherzustellen, dass die Strategie reibungslos läuft.

Strategisches Risiko

  1. Das Risiko eines Marktschocks: In einem zwischenstaatlich schwankenden Markt kann es zu häufigen False-Breakouts kommen, die zu einer Folge von Stop-Losses führen.
  2. Kapitalmanagementrisiken: Gleichzeitige Verlagerung kann zu einer zu starken Konzentration der Positionen führen und erfordert eine angemessene Kontrolle der Risikolocken in einer einzigen Richtung.
  3. Schlupfrisiko: Bei starken Schwankungen können größere Schlupfpunkte auftreten, die die Strategie beeinflussen.
  4. Parameter-Sensitivität: Die Rationalität der Schrittlänge hat einen direkten Einfluss auf die Effektivität der Strategie und muss umfassend getestet werden.

Richtung der Strategieoptimierung

  1. Einführung von Volatilitätsindikatoren: Schrittweiten können an die dynamischen Marktschwankungen angepasst werden, um die Strategieadaptivität zu verbessern.
  2. Erhöhung des Filtermechanismus: Hinzufügen von Trendbestätigungsindikatoren und Reduzierung der Verluste durch falsche Durchbrüche.
  3. Verbesserung der Positionsverwaltung: Entwerfen von detaillierteren Positionskontrollmechanismen, die Gewinne und Risiken ausgleichen.
  4. Optimierung der Auftragsdurchführung: Smart-Order-Routing kann hinzugefügt werden, um die Auswirkungen von Slippoints zu reduzieren.
  5. Erhöhung der Zeitdimension: Berücksichtigung der zeitlichen Merkmale des Marktes und Anpassung der Strategieparameter in verschiedenen Zeiträumen.

Zusammenfassen

Es ist eine Strategie, die durch die Einstellung und Anpassung von dynamischen Preissegmenten in Kombination mit flexibler Positionsverwaltung entwickelt wurde. Die Strategie bietet einen soliden Rahmen für die Quantifizierung des Handels. Durch kontinuierliche Optimierung und Verbesserung kann die Performance der Strategie weiter verbessert werden. Die Strategie ist so konzipiert, dass sie die verschiedenen Umstände des tatsächlichen Handels berücksichtigt, einschließlich der wichtigsten Faktoren wie Auftragsabwicklung und Recheneffizienz.

Strategiequellcode
/*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")