
Die Strategie ist ein kurzfristiges Handelssystem, das auf einer Kombination von doppelten Mittellinien-Kreuzungen und RSI-Indikatoren basiert. Die Strategie verwendet den 9-Zyklus- und 21-Zyklus-Indikator-Moving Average (EMA) als Trendbeurteilungsgrundlage und kombiniert den relativ starken RSI-Indikator (RSI) als Dynamikbestätigungstool, um das Risiko zu verwalten, indem sie feste Stop-Loss- und Stop-Stops setzt.
Die Kernlogik der Strategie basiert auf der Synergie zweier technischer Indikatoren. Erstens wird die Richtung des Markttrends durch die Kreuzung von 9-Zyklus-EMA und 21-Zyklus-EMA bestimmt, wobei ein Aufwärtstrend festgestellt wird, wenn ein kurzfristiger EMA aufwärts durch die langfristige EMA geht. Wenn ein kurzfristiger EMA abwärts durch die langfristige EMA geht, wird ein Abwärtstrend festgestellt.
Durch die Kombination von Equilibrium-Cross- und RSI-Indikatoren baut die Strategie ein relativ vollständiges Short-Line-Handelssystem auf. Die Vorteile der Strategie liegen in der Signalklarheit und der Risikokontrolle, aber es gibt auch einige Optimierungsmöglichkeiten. Die Stabilität und Profitabilität der Strategie können durch die Hinzufügung von Mechanismen wie Dynamic Stop Loss, Time Filter und andere weiter verbessert werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("abo 3llash - EMA + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Parameters
emaShortLength = input.int(9, title="Short EMA Length")
emaLongLength = input.int(21, title="Long EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
stopLossPercent = input.float(1, title="Stop Loss Percentage") / 100
takeProfitPercent = input.float(2, title="Take Profit Percentage") / 100
// Calculating EMAs and RSI
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// Buy and Sell Conditions
buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought
sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold
// Plotting the EMAs
plot(emaShort, title="Short EMA", color=color.blue)
plot(emaLong, title="Long EMA", color=color.red)
// Generating buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Execution
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Set Stop Loss and Take Profit for Buy
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * (1 + takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Set Stop Loss and Take Profit for Sell
stopLossLevel = close * (1 + stopLossPercent)
takeProfitLevel = close * (1 - takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevel, limit=takeProfitLevel)