Umgekehrte Tang Xiao Channel-Druck-Handelsstrategie


Erstellungsdatum: 2024-01-24 15:07:18 zuletzt geändert: 2024-01-24 15:07:18
Kopie: 0 Klicks: 595
1
konzentrieren Sie sich auf
1617
Anhänger

Umgekehrte Tang Xiao Channel-Druck-Handelsstrategie

Überblick

Die inverse Tangshou-Strategie ist eine quantitative Handelsstrategie, die auf Tangshou-Indikatoren basiert. Die Strategie kombiniert Stop-Loss-Stopps und Tracking-Stopps, um Risikomanagement zu ermöglichen.

Wenn der Preis die obere und untere Grenze des Tangshou-Kanals berührt, wird die Position mehr als kurz gemacht, wobei Stop-Loss und Stop-Stop eingestellt werden. Wenn ein Stop-Loss auftritt, kann die Eröffnung einer neuen Position erst nach einer bestimmten Zeit ausgesetzt werden. Während der Positionshaltung wird der Gewinn durch die Verfolgung des Stop-Losses gesperrt.

Strategieprinzip

Die Strategie basiert auf dem 20-Tage-Tang Shao-Kanal-Index, der die Oberbahn, Unterbahn und Mittellinie umfasst.

Positionsöffnung

Wenn der Preis die Unterbahn berührt, wird eine Mehrposition eröffnet; wenn der Preis die Oberbahn berührt, wird eine Leerposition eröffnet.

Wenn zuvor ein gleichzeitiger Verlust aufgetreten ist, sollte ein bestimmter Zyklus ausgesetzt werden (z. B. 3 K-Linien), um die Jagd nach dem Drachen zu vermeiden.

Stop-Loss und Stop-Stop-Logik

Ein Stop-Loss mit festen Anteilen und ein Take-Profit mit dynamischen Anpassungen bei jeder Position.

Take Profit wird berechnet anhand des Risiko-Gewinn-Verhältnisses (z.B. 2) und des Stop-Loss-Prozentsatzes (z.B. 22%).

Verfolgung der Stop-Loss-Logik

Ein Tracking-Stop während der Haltestelle:

Bei mehreren Positionen wird der Stop-Loss auf den Mittelpunkt zwischen dem Einstiegspreis und dem Mittelwert angepasst, wenn der Preis die Mittellinie überschreitet.

Die Zwischenlinie wird durch die Hinterkopf-Position angepasst.

Strategische Vorteile

  1. Mit dem Tang-Shou-Kanal-Index hat man eine gewisse Fähigkeit, bahnbrechende Ereignisse zu erfassen.

  2. Das ist ein sehr guter Weg, um eine Position zu eröffnen, die dem Trading-Gedanken der Umkehrung entspricht.

  3. Stop-Loss-Suspension Vermeidung von Drachenjagd, Verfolgung von Stop-Loss-Lock-Profit, mit gutem Risikomanagement.

  4. Die Regeln der Strategie sind klar und verständlich und leicht umzusetzen.

Strategisches Risiko

  1. Der Tangshou-Kanal als Trendindikator ist anfällig für falsche Durchbrüche bei der Bilanzierung und kann zu Verlusten führen.

  2. Die Fixed Stop-Losses sind leicht zu ersetzen, und die Stop-Loss-Spanne sollte entsprechend angepasst werden.

  3. Die Anpassung der Tracking-Stop-Loss-Marge ist sehr leicht auszuschalten, und die Frequenz der Anpassung sollte ausgeglichen werden.

  4. Die falsche Einstellung der Parameter beeinflusst auch die Strategie.

Richtung der Strategieoptimierung

  1. Die Länge des Tangshou-Kanals kann optimiert werden, um die optimale Kombination von Parametern zu finden.

  2. Ein zusätzliches Modul zur Positionsverwaltung, wie z. B. das regelmäßige Zurücksetzen der Aussetzungsprozesse.

  3. In Kombination mit anderen Indikatoren Trends zu beurteilen, um trendige False Breaks zu vermeiden.

  4. Aktivieren Sie den dynamischen Stopp und passen Sie die Stoppposition in Echtzeit an.

Zusammenfassen

Die Reverse Tangshaw-Strategie integriert mehrere Funktionen wie Trendbeurteilung, Risikomanagement und andere Funktionen. Die Grundlagen sind vollständig. Durch die kontinuierliche Optimierung der Parameter und die Kombination mit anderen Indikatoren oder Modellen kann die Robustheit der Strategie weiter verbessert und die Rendite erhöht werden.

Strategiequellcode
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)

// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")

// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2  // Calculating the Centerline

// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")

// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none

// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    if (close[1] < strategy.position_avg_price[1])
        longSLHitBar := bar_index
        lastTradeDirection := 1

if (strategy.position_size[1] < 0 and strategy.position_size == 0)
    if (close[1] > strategy.position_avg_price[1])
        shortSLHitBar := bar_index
        lastTradeDirection := -1

// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)

// Trade Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)

// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na

// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
    if (close > centerline)
        trailingStopLong := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)

// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
    if (close < centerline)
        trailingStopShort := (strategy.position_avg_price + centerline) / 2
    stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)

// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)