Normalisierte Value-at-Risk-Handelsstrategie mit dynamischer Schwelle

SMA ATH ATL 风险归一化 动态阈值 止损策略 价格偏离度
Erstellungsdatum: 2025-06-13 11:16:39 zuletzt geändert: 2025-06-13 11:16:39
Kopie: 0 Klicks: 251
2
konzentrieren Sie sich auf
319
Anhänger

Normalisierte Value-at-Risk-Handelsstrategie mit dynamischer Schwelle Normalisierte Value-at-Risk-Handelsstrategie mit dynamischer Schwelle

Überblick

Die Strategie basiert auf der Quantifizierung der Abweichungen zwischen dem Preis und dem langfristigen Moving Average. Die Strategie berechnet die paralogische Differenz zwischen dem aktuellen Preis und dem 374-Zyklus-Simplemoving Average und berechnet eine Risikomarke zwischen 0 und 1. Wenn der Risikowert unter dem spezifischen Risikowert liegt, ist die Strategie für ein niedriges Marktrisiko geeignet. Wenn der Risikowert höher ist, ist die Strategie für ein hohes Marktrisiko geeignet.

Strategieprinzip

Der Kern der Strategie besteht darin, die Risikostatus des Marktes durch die Vereinheitlichung der Risikovaluation zu quantifizieren und somit die Handelsentscheidungen zu leiten. Die konkreten Berechnungsschritte sind wie folgt:

  1. Ein einfacher gleitender Durchschnitt (SMA) mit 374 Zyklen wird als langfristige Trendreferenz verwendet.
  2. Berechnen Sie die paritätische Differenz zwischen dem aktuellen Schlusskurs und dem 374-Zyklus-SMA und multiplizieren Sie es mit dem Zeitfaktor ((bar_index in der 0.395-fachen)), um den ursprünglichen Risikowert zu erhalten.
  3. Die historischen Höchststände (ATH) und Tiefststände (ATL) der ursprünglichen Risiken werden verfolgt und dokumentiert.
  4. Der ursprüngliche Risikowert wird homogenisiert, so dass der Bereich zwischen 0 und 1 standardisiert wird.
  5. Es wurden verschiedene Handelsschwellen auf der Grundlage der klassifizierten Risiken festgelegt:
    • Risiko unter 0,3: Auslöser für ein Kaufsignal
    • Risiko von mehr als 0,6 oder 0,7: Auslösung von Pluralsignalen
    • Risiko von mehr als 0,7: Auslöser des Verkaufssignals
    • Risiko von weniger als 0,4: Triggerung eines Leerlaufsignals

Die Strategie bietet außerdem einen Stop-Loss-Mechanismus mit einer festen Punktzahl von 5 Punkten, um den maximalen Verlust eines einzelnen Handels zu kontrollieren. Darüber hinaus zeigt die Strategie die verschiedenen Signalpositionen auf der Tabelle an, um potenzielle Handelsmöglichkeiten zu erkennen.

Strategische Vorteile

  1. Quantifizierung des RisikosDie Analyse der Risiken von Binary Options Trading (BOS) basiert auf den folgenden Komponenten: Durch die Standardisierung wird die komplexe Marktsituation vereinfacht, um Risikomessungen zwischen 0 und 1 zu ermitteln, die intuitiv und leicht verständlich sind und die Handelsentscheidungen erleichtern.

  2. AnpassungsfähigkeitDie Verwendung historischer Höchst- und Tiefpunkte zur Vereinheitlichung ermöglicht es dem Indikator, sich an unterschiedliche Marktumgebungen und zyklische Merkmale anzupassen und die Einschränkungen fester Parameter zu umgehen.

  3. RegressionsprinzipDie Strategie basiert auf der Abweichung der Preise von der langfristigen Durchschnittslinie und entspricht der durchschnittlichen Rücklaufcharakteristik der Finanzmärkte.

  4. Zeitfaktor-AnpassungDurch die Einführung des Zeitfaktors ((bar_index in der 0,395-fachen) wird die Risikoberechnung dynamisch im Laufe der Zeit angepasst, um den Regeln der Marktentwicklung zu entsprechen.

  5. RisikomanagementEin integriertes Stop-Loss-System, das die maximale Verlustmenge für einen einzelnen Handel direkt steuert, hilft, das Geld zu schützen.

  6. BildsignaleDie Bezeichnung von Signalpositionen durch Etiketten reduziert die Beurteilungsschwierigkeiten der Händler und erhöht die Praktikabilität der Strategie.

  7. Parameter sind präziseWeniger Kernparameter verringern das Risiko einer Überpassung und erhöhen die Anpassungsfähigkeit der Strategie unter unterschiedlichen Marktbedingungen.

Strategisches Risiko

  1. Langfristige Verzögerung der gleitenden DurchschnitteDie 374-Zyklus-SMA hat eine signifikante Verzögerung, die in einem schnell wechselnden Markt zu Signalverzögerungen führen kann, die den besten Einstiegs- oder Ausstiegszeiten verpassen.

  2. Fixed Stop-Loss ist nicht flexibelDie Strategie verwendet eine feste Punktzahl als Stop-Standard, ohne die Unterschiede in der Volatilität in verschiedenen Märkten und Perioden zu berücksichtigen, was zu einer zu lockeren oder zu strengen Stop-Loss führen kann.

  3. Threshold-SensitivitätStrategie-Handelssignale sind stark abhängig von vorgegebenen Risikoterminien (z. B. 0,3, 0,4, 0,6, 0,7), die möglicherweise nicht für alle Marktumstände gelten.

  4. EinheitlichkeitsbeschränkungenDie Verwendung historischer Extreme zur Vereinheitlichung kann bei neuen Extremen eine Neuausrichtung erfordern, und mangelnde historische Daten können zur Ungenauigkeit der Vereinheitlichung führen.

  5. RückverfolgbarkeitDie Strategie ist abhängig von historischen Höchst-/Tiefrisikowerten, was zu einer Abweichung der zukünftigen Funktion in der vorausschauenden Rückmessung führen kann, wobei die tatsächliche Anwendung weniger wirksam sein kann als die Rückmessung.

  6. Herausforderungen bei der Optimierung von ParameternSchlüsselparameter wie SMA-Zyklen, Risikominderungen und Stop-Loss-Punkte müssen für verschiedene Märkte optimiert werden, was die Komplexität der Strategieoptimierung erhöht.

Die Lösungsansätze umfassen: die Verwendung von adaptiven Stop-Mechanismen anstelle von Fixed-Point-Stopps; die Einführung von Volatilitätsindikatoren zur Anpassung der Risikominderung; die Verwendung von Mehrzyklus-Bestätigungssignalen; die Erhöhung der Trendfilterbedingungen zur Vermeidung von Rückschlägen; Signalbestätigung in Kombination mit anderen technischen Indikatoren.

Richtung der Strategieoptimierung

  1. Anpassungs- und Schadensbegrenzung: Umwandlung von Fixpunkt-Stopps in dynamische Stopps, die auf dem ATR basieren, so dass die Stop-Levels automatisch an die Marktvolatilität angepasst werden können, z. B. mit einer Stop-Distanz von 1,5 mal ATR.

  2. Dynamische Risikoverminderung: Die Fix-Risiko-Thresholds ((0.3, 0.4, 0.6, 0.7) werden in Thresholds umgewandelt, die auf der Grundlage von Marktdynamiken angepasst werden, und es kann in Erwägung gezogen werden, diese Thresholds mit Hilfe von Volatilitäts- oder Trendstärke-Indikatoren anzupassen.

  3. Trendfilter hinzufügenEinführung von Trendbeurteilungsmechanismen, z. B. die Verwendung von Moving Average- oder ADX-Indikatoren mit längeren Perioden, um nur in Richtung des Haupttrends zu handeln und Rückwärtsoperationen zu vermeiden.

  4. SignalbestätigungErhöhung der Signalbestätigungsanforderungen, beispielsweise die Anforderung, dass die Risikoindikatoren für mehrere aufeinanderfolgende Zyklen außerhalb des Schwellenwerts bleiben, bevor ein Signal ausgelöst wird, um falsche Signale zu reduzieren.

  5. Zeit-Filter hinzugefügtEs gibt eine Vielzahl von Möglichkeiten, um die Signalqualität zu verbessern: Erhöhung der Handelszeitfenster, Vermeidung bekannter ineffizienter oder hochflüchtiger Handelszeiten und Verbesserung der Signalqualität.

  6. Optimierung der Moving-Average-Zyklus: Versuchen Sie, verschiedene SMA-Zyklen (z. B. 200, 300, 450 usw.) anstelle der festgelegten 374-Zyklen zu testen, um Parameter zu finden, die besser für einen bestimmten Markt geeignet sind.

  7. Verbesserte FinanzverwaltungEinführung eines dynamischen Positionsmanagementmechanismus, der den Kapitalanteil pro Transaktion an das absolute Niveau des Risikowertes und die Änderung der Rate anpasst, um ein Risikobalance zu erreichen.

  8. Multizyklus-Analyse-RahmenScaling-Strategie: Risikoindikatoren für mehrere Zeiträume berücksichtigen, nur wenn die Signale für verschiedene Zeiträume übereinstimmen, um die Signalzuverlässigkeit zu erhöhen.

Diese Optimierungsrichtungen zielen darauf ab, die Anpassungsfähigkeit der Strategie zu verbessern, Falschsignale zu reduzieren, das Risikomanagement zu optimieren und die Gesamtperformance zu verbessern. Durch die Kombination mehrerer Optimierungspunkte kann ein robusteres Handelssystem aufgebaut werden.

Zusammenfassen

Die Strategie vereinfacht komplexe Marktsituationen zu Risikovaluationen zwischen 0 und 1 und spiegelt intuitiv den Überkauf-Überverkauf-Zustand des Marktes wider.

Die Kernvorteile der Strategie liegen in ihrer Anpassungsfähigkeit und der Fähigkeit, Risiken zu quantifizieren und durch die dynamische Verfolgung historischer Höchstwerte zu vereinheitlichen, so dass die Indikatoren an unterschiedliche Marktbedingungen angepasst werden können. Die integrierte Stop-Loss-Mechanik bietet zugleich eine grundlegende Risikokontrolle.

Die Strategie hat jedoch auch Grenzen, wie die Langzeitrücklage der gleitenden Durchschnitte, die Festsetzung von Abschnitten und die Nichtanpassung von Stopps an Marktveränderungen. Um die Strategie zu verbessern, können Optimierungsmaßnahmen wie die Einführung von dynamischen Stop-Loss-Mechanismen, die automatische Anpassung an Risikobeschränkungen, Trendfilter und Mehrzeitbestätigung in Betracht gezogen werden.

Insgesamt bietet die standardisierte Strategie für den dynamischen Wertminderungshandel eine systematische Methode zur Identifizierung von Marktrisiko und zur Anleitung von Handelsentscheidungen, die als Hilfsmittel für den mittleren und langen Handel geeignet ist. Durch eine vernünftige Parameteroptimierung und Risikomanagement hat die Strategie das Potenzial, in verschiedenen Marktumgebungen eine stabile Leistung zu erzielen.

Strategiequellcode
/*backtest
start: 2025-05-13 00:00:00
end: 2025-06-11 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
//@author=Skywalking2874
strategy("Risk Trading Strategy", overlay=false, max_bars_back=5000)

// 输入参数
risk_prices = input.bool(true, "Display the price corresponding with risk thresholds")

// 计算指标值
find_ath(_src) => 
    var ath = 0.0
    if _src > ath
        ath := _src
    ath

find_atl(_src) =>
    var atl = 2.5
    if _src < atl
        atl := _src
    atl

threeseventyfour = ta.sma(close, 374)
average = (math.log(close) - math.log(threeseventyfour)) * math.pow(bar_index, 0.395)
highest_value = find_ath(average)
lowest_value = find_atl(average)
average_normalized = (average - lowest_value) / (highest_value - lowest_value)

// 绘图
plot(average_normalized, color=color.new(color.blue, 0), title="Risk")

// 交易信号定义
longCondition = average_normalized < 0.3
exitLongCondition1 = average_normalized >= 0.6
exitLongCondition2 = average_normalized >= 0.7
shortCondition = average_normalized > 0.7
exitShortCondition = average_normalized <= 0.4

// 执行交易
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Stop Loss", "Buy", stop=close - 5 * syminfo.pointvalue)

if (exitLongCondition1 or exitLongCondition2)
    strategy.close("Buy")

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Stop Loss", "Sell", stop=close + 5 * syminfo.pointvalue)

if (exitShortCondition)
    strategy.close("Sell")

// 绘制标签
if (risk_prices)
    price_zero = threeseventyfour * math.exp((0.0*(highest_value-lowest_value)+lowest_value)/(math.pow(bar_index, 0.395)))
    price_point_three = threeseventyfour * math.exp((0.3*(highest_value-lowest_value)+lowest_value)/(math.pow(bar_index, 0.395)))
    price_point_four = threeseventyfour * math.exp((0.4*(highest_value-lowest_value)+lowest_value)/(math.pow(bar_index, 0.395)))
    price_point_six = threeseventyfour * math.exp((0.6*(highest_value-lowest_value)+lowest_value)/(math.pow(bar_index, 0.395)))
    price_point_seven = threeseventyfour * math.exp((0.7*(highest_value-lowest_value)+lowest_value)/(math.pow(bar_index, 0.395)))
    
    label.new(bar_index, price_zero, "Buy Signal", color=color.green, textcolor=color.white, style=label.style_label_up)
    label.new(bar_index, price_point_three, "Exit Long Signal", color=color.blue, textcolor=color.white, style=label.style_label_up)
    label.new(bar_index, price_point_four, "Exit Short Signal", color=color.orange, textcolor=color.white, style=label.style_label_up)
    label.new(bar_index, price_point_six, "Exit Long Signal 2", color=color.blue, textcolor=color.white, style=label.style_label_up)
    label.new(bar_index, price_point_seven, "Sell Signal", color=color.red, textcolor=color.white, style=label.style_label_up)