
Die Strategie ist ein quantitatives Handelssystem, das eine Kombination aus einem beschleunigten Schwingungsindikator (AC) und einem zufälligen Indikator (Stochastic) enthält. Es erfasst die Veränderungen der Marktdynamik durch die Identifizierung von Abweichungen zwischen den Preisen und den technischen Indikatoren, um so eine potenzielle Trendwende vorherzusagen. Die Strategie integriert auch eine lineare SMA und einen relativ schwachen RSI, um die Signalzuverlässigkeit zu erhöhen, und setzt feste Stop-Losses ein, um das Risiko zu kontrollieren.
Die Kernlogik der Strategie basiert auf der synchronen Kombination von mehreren technischen Indikatoren. Zuerst wird der Beschleunigungs-Schock-Indikator ((AC) berechnet, der durch Abzug der Differenz zwischen dem 5- und 34-Zyklen-Mittelwert des Preismittels und dessen N-Zyklen-Mittelwert ermittelt wird. Gleichzeitig werden die K- und D-Werte der Zufallsindikatoren berechnet, um ein Rückschrittsignal zu bestätigen.
Es handelt sich um eine quantitative Handelsstrategie, die mehrere technische Kennzahlen kombiniert, um Marktwendepunkte zu erfassen, indem sie sich von Signalen abwendet. Die Vorteile der Strategie liegen in der Kreuzprüfung und dem ausgefeilten Risikokontrollsystem für mehrere Kennzahlen, aber auch in der Beachtung von Problemen wie False Breaks und Parameteroptimierung. Durch kontinuierliche Optimierung und Verbesserung wird die Strategie unter verschiedenen Marktumständen eine stabile Leistung aufweisen.
/*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"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JayQwae
//@version=5
strategy("Enhanced AC Divergence Strategy with Stochastic Divergence", overlay=true)
// Input settings
tp_pips = input.float(0.0020, "Take Profit (in price)", step=0.0001)
sl_pips = input.float(0.0040, "Stop Loss (in price)", step=0.0001) // 40 pips
ac_length = input.int(5, "AC Length")
rsi_length = input.int(14, "RSI Length")
stoch_k = input.int(14, "Stochastic K Length")
stoch_d = input.int(3, "Stochastic D Smoothing")
stoch_ob = input.float(80, "Stochastic Overbought Level")
stoch_os = input.float(20, "Stochastic Oversold Level")
// Accelerator Oscillator Calculation
high_low_mid = (high + low) / 2
ao = ta.sma(high_low_mid, 5) - ta.sma(high_low_mid, 34)
ac = ao - ta.sma(ao, ac_length)
// RSI Calculation
rsi = ta.rsi(close, rsi_length)
// Stochastic Oscillator Calculation
k = ta.sma(ta.stoch(close, high, low, stoch_k), stoch_d)
d = ta.sma(k, stoch_d)
// Stochastic Divergence Detection
stoch_bull_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ta.lowest(k, 5) > ta.lowest(k[1], 5)
stoch_bear_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ta.highest(k, 5) < ta.highest(k[1], 5)
// Main Divergence Detection
bullish_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ac > ac[1] and stoch_bull_div
bearish_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ac < ac[1] and stoch_bear_div
// Plot divergences
plotshape(bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Strategy rules
if (bullish_div)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + tp_pips, stop=close - sl_pips)
if (bearish_div)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - tp_pips, stop=close + sl_pips)
// Alerts
if (bullish_div)
alert("Bullish Divergence detected! Potential Buy Opportunity", alert.freq_once_per_bar)
if (bearish_div)
alert("Bearish Divergence detected! Potential Sell Opportunity", alert.freq_once_per_bar)