Die “Doppel-Gleichgewichts-Ausfall-Strategie” ist eine übliche Technik-Analyse-Handelsstrategie. Die Strategie kombiniert zwei verschiedene Perioden mit einfachen Moving Averages (SMA) und Average True Rate (ATR) Indikatoren, um Markttrend-Wendepunkte zu erfassen und einen risikoarmen, ertragreichen Handel zu realisieren. Die Kernidee besteht darin, die Nachlässigkeit der Gleichgewichte und die Marktvolatilität zu nutzen, um ein Handelssignal zu erzeugen, wenn die Preise die Gleichgewichtslinie durchbrechen und die Schwankungen in einem kontrollierbaren Bereich liegen.
Die Hauptprinzipien der Strategie lauten wie folgt:
Wie aus den obigen Grundsätzen hervorgeht, ist die Strategie eine Trendstrategie, die Trendbeurteilungen aus einem linearen System und die Messung der Volatilität des ATR-Indikators kombiniert, wobei der Trend überwiegend verfolgt wird, während das Rücknahmerisiko kontrolliert wird.
Die “Doppel-Gleichgewichts-Hinterlassungs-Durchbruch-Strategie” hat folgende Vorteile:
Obwohl diese Strategie einige Vorteile hat, gibt es folgende Risiken:
In Bezug auf die oben genannten Risiken können Optimierungen und Verbesserungen in folgenden Bereichen vorgenommen werden:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Obwohl diese Optimierungen die Anpassungsfähigkeit, Stabilität und Profitabilität der Strategie verbessern können, ist darauf zu achten, dass eine Überoptimierung zu einer schlechten Strategie-Fitness führt, die außerhalb der Stichprobe schlecht funktioniert und daher eine ausreichende Rückmeldung innerhalb und außerhalb der Stichprobe erfordert.
Die “Doppel-Gleichgewichts-Rückstands-Breakout-Strategie” ist eine klassische Trend-Tracking-Strategie, die die Richtung des Trends durch ein Gleichgewichtssystem beurteilt, die ATR-Anzeige nutzt, um das Risiko zu kontrollieren und gleichzeitig das Risikomanagement zu berücksichtigen, während die Trendentwicklung erfasst wird. Trotz einiger Probleme mit der Rückstandsfähigkeit und der Häufigkeit des Handels kann die Performance der Strategie durch Optimierung der Stop-Loss-Stopps, Einführung von Signalfiltern, Parameter-Adaption, Optimierung und Positionsmanagement weiter verbessert werden.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="2 Moving Averages", shorttitle="2MA", overlay=true)
// Moving Averages
len = input(14, minval=1, title="Length MA1")
src = input(close, title="Source MA1")
ma1 = sma(src, len)
len2 = input(50, minval=1, title="Length MA2")
src2 = input(close, title="Source MA2")
ma2 = sma(src2, len2)
// Plotting Moving Averages
plot(ma1, color=#0b6ce5, title="MA1")
plot(ma2, color=#00ff80, linewidth=2, title="MA2")
// ATR Bands
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
upperBand = high + atr(atrLength) * atrMultiplier
lowerBand = low - atr(atrLength) * atrMultiplier
u =plot(upperBand, color=color.rgb(217, 220, 223, 84), title="ATR Upper Band")
l = plot(lowerBand, color=color.rgb(217, 220, 223, 84), title="ATR Lower Band")
fill(u, l, color=#471eb821, title="ATR Background")
// Conditions for plotting arrows
upArrowCondition = ma1 > ma2 and crossover(close, ma1)
downArrowCondition = ma1 < ma2 and crossunder(close, ma1)
// Plotting arrows
plotshape(upArrowCondition, style=shape.arrowup, color=color.rgb(66, 45, 255), size=size.normal, location=location.belowbar, title="Up Arrow")
plotshape(downArrowCondition, style=shape.arrowdown, color=color.red, size=size.normal, location=location.abovebar, title="Down Arrow")
// Checkbox for trade execution
showTrades = input(true, title="Hiển thị giao dịch")
// Buy Condition
if (upArrowCondition and showTrades)
strategy.entry("Buy", strategy.long)
// Sell Condition
if (downArrowCondition and showTrades)
strategy.entry("Sell", strategy.short)
// Stop Loss and Take Profit
stopLossBuy = low - atr(14) * atrMultiplier
takeProfitBuy = close + (close - stopLossBuy) * 2
stopLossSell = high + atr(14) * atrMultiplier
takeProfitSell = close - (stopLossSell - close) * 2
strategy.exit("Exit Buy", "Buy", stop=stopLossBuy, limit=takeProfitBuy)
strategy.exit("Exit Sell", "Sell", stop=stopLossSell, limit=takeProfitSell)