
Die Strategie ist ein quantitatives Handelssystem, das einen doppelt exponentiellen gleitenden Durchschnitt (EMA) und einen stochastischen Oszillator kombiniert. Verwenden Sie EMAs für 20 und 50 Perioden, um Markttrends zu bestimmen, und verwenden Sie den stochastischen Oszillator, um Handelsmöglichkeiten in überkauften und überverkauften Bereichen zu finden und so eine perfekte Kombination aus Trend und Momentum zu erreichen. Die Strategie verwendet strenge Maßnahmen zum Risikomanagement, darunter feste Stop-Loss- und Gewinnzieleinstellungen.
Die Kernlogik der Strategie gliedert sich in drei Teile: Trendbeurteilung, Einstiegszeitpunkt und Risikokontrolle. Die Trendbeurteilung beruht hauptsächlich auf der relativen Position der schnellen EMA (20 Perioden) und der langsamen EMA (50 Perioden). Wenn die schnelle Linie über der langsamen Linie liegt, wird dies als Aufwärtstrend beurteilt, andernfalls als Abwärtstrend. . Das Einstiegssignal wird durch den Crossover des stochastischen Oszillators bestätigt, der nach Handelsmöglichkeiten mit hoher Wahrscheinlichkeit in den überkauften und überverkauften Bereichen sucht. Die Risikokontrolle verwendet einen festen prozentualen Stop-Loss und eine 2-fache Take-Profit-Ratio-Einstellung, um sicherzustellen, dass jede Transaktion ein klares Risiko-Rendite-Verhältnis aufweist.
Diese Strategie kombiniert Trend- und Momentumindikatoren, um ein vollständiges Handelssystem zu erstellen. Der Hauptvorteil der Strategie liegt in ihrem klaren logischen Rahmen und ihrer strengen Risikokontrolle. In der tatsächlichen Anwendung ist jedoch immer noch eine Parameteroptimierung auf Grundlage spezifischer Marktbedingungen erforderlich. Durch kontinuierliche Verbesserung und Optimierung soll die Strategie eine stabile Leistung in verschiedenen Marktumgebungen aufrechterhalten.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA + Stochastic Strategy", overlay=true)
// Inputs for EMA
emaShortLength = input.int(20, title="Short EMA Length")
emaLongLength = input.int(50, title="Long EMA Length")
// Inputs for Stochastic
stochK = input.int(14, title="Stochastic %K Length")
stochD = input.int(3, title="Stochastic %D Smoothing")
stochOverbought = input.int(85, title="Stochastic Overbought Level")
stochOversold = input.int(15, title="Stochastic Oversold Level")
// Inputs for Risk Management
riskRewardRatio = input.float(2.0, title="Risk-Reward Ratio")
stopLossPercent = input.float(1.0, title="Stop Loss (%)")
// EMA Calculation
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
// Stochastic Calculation
k = ta.stoch(high, low, close, stochK)
d = ta.sma(k, stochD)
// Trend Condition
isUptrend = emaShort > emaLong
isDowntrend = emaShort < emaLong
// Stochastic Signals
stochBuyCrossover = ta.crossover(k, d)
stochBuySignal = k < stochOversold and stochBuyCrossover
stochSellCrossunder = ta.crossunder(k, d)
stochSellSignal = k > stochOverbought and stochSellCrossunder
// Entry Signals
buySignal = isUptrend and stochBuySignal
sellSignal = isDowntrend and stochSellSignal
// Strategy Execution
if buySignal
strategy.entry("Buy", strategy.long)
stopLoss = close * (1 - stopLossPercent / 100)
takeProfit = close * (1 + stopLossPercent * riskRewardRatio / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLoss, limit=takeProfit)
if sellSignal
strategy.entry("Sell", strategy.short)
stopLoss = close * (1 + stopLossPercent / 100)
takeProfit = close * (1 - stopLossPercent * riskRewardRatio / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLoss, limit=takeProfit)
// Plotting
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")