Auf einem Momentumindikator basierende trendfolgende Handelsstrategie


Erstellungsdatum: 2023-12-12 14:52:11 zuletzt geändert: 2023-12-12 14:52:11
Kopie: 0 Klicks: 559
1
konzentrieren Sie sich auf
1621
Anhänger

Auf einem Momentumindikator basierende trendfolgende Handelsstrategie

Überblick

Diese Strategie basiert auf dem dynamischen Indikator RSI und dem Exponential Moving Average (EMA) und dem Simple Moving Average (SMA) für die Erstellung von Handelssignalen. Sie gehört zu den Strategien der Trendverfolgung.

Strategieprinzip

Die Strategie verwendet drei Bedingungen, um ein Handelssignal zu erzeugen:

  1. RSI > 45: Ein RSI von mehr als 45 ist ein gutes Kaufsignal
  2. EMA ((RSI) > SMA ((RSI): Eine EMA-Linie, die größer als die SMA-Linie ist, zeigt an, dass der RSI nach oben beschleunigt und zu einem guten Dynamiksignal gehört
  3. EMA ((Schlusskurs)) > SMA ((Schlusskurs): EMA-Linie größer als SMA-Linie zeigt, dass sich der Preistrend beschleunigt

Wenn zwei der drei Bedingungen erfüllt sind, wird ein Kaufsignal erzeugt; wenn nicht alle erfüllt sind, wird ein Verkaufsignal erzeugt.

Die Strategie bietet außerdem ein “Always Buy” -Modus, um die Leistung des Systems selbst im Verhältnis zu den großen Wetten zu testen.

Strategische Stärkenanalyse

  1. Die Dynamik des RSI zur Beurteilung der Marktentwicklung kann dazu beitragen, Positionen in Zeiten von Marktschwankungen zu reduzieren.
  2. In Kombination mit der EMA und der SMA kann die Richtung der Trends beurteilt werden, um die Trendentwicklung der Preise rechtzeitig zu erfassen
  3. Die Regeln sind einfach, klar, leicht zu verstehen und zu optimieren.
  4. Die Vorteile der “Always Buy” Zitrone Modellprüfung

Strategische Risikoanalyse

  1. Abhängig von den Parameter-Einstellungen, bei denen falsche Parameter dazu führen, dass häufig gehandelt wird oder gute Handelschancen verpasst werden
  2. Bei wichtigen Nachrichten kann es zu großen kurzfristigen Preisschwankungen kommen, die zu Stop-Losses führen.
  3. Die Strategie allein kann nicht bestimmen, wann sich der Trend umkehren wird, sondern muss mit anderen Indikatoren kombiniert werden.

Optimierungsrichtung

  1. Optimieren Sie die Parameter des RSI, EMA und SMA, um die beste Kombination zu finden
  2. Weitere technische Indikatoren wie Volumen, MACD und andere
  3. Erhöhung der Trendwende-Indikatoren und Verringerung der Verlustwahrscheinlichkeit

Zusammenfassen

Die Strategie als Ganzes gehört zu den mittelfrequenten Handelsstrategien, die darauf abzielen, mittelfristige Preistrends zu erfassen und kurzfristige Marktschwankungen zu vermeiden. Die Vorteile und Risiken sind deutlich. Durch die Optimierung der Parameter und den Reichtum an Regeln kann die Strategie-Stabilität weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L Unitrend",overlay=false, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)
tradingMode = input.string("Unitrend", "Trading Mode", ["Unitrend", "Always Buy"], tooltip="Choose the Trading Mode by trying Both in your Backtesting. I use it if one is far better then the other one.")
compoundingMode = input.bool(false)
leverage = input.float(1.0,step=0.1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade unleveraged (%)", minval=0.1, maxval=100, step=0.1) / 100
TPFactor = input.float(2, step=0.1)




var disableAdditionalBuysThisDay = false
var lastTrade = time
if(time > lastTrade + 1000 * 60 * 60 * 8 or tradingMode == "Always Buy")
    disableAdditionalBuysThisDay := false

if(strategy.position_size != strategy.position_size[1])
    lastTrade := time
    disableAdditionalBuysThisDay := true

//Trade Logic
SCORE = 0

//rsi momentum
RSIFast = ta.ema(ta.rsi(close,50),24)
RSISlow = ta.sma(ta.rsi(close,50),24)
RSIMomentum = RSIFast / RSISlow
goodRSIMomentum = RSIMomentum > 1
SCORE := goodRSIMomentum ? SCORE + 1 : SCORE

//rsi trend
RSITrend = RSISlow / 45
goodRSI = RSITrend > 1
SCORE := goodRSI ? SCORE + 1 : SCORE

//price trend
normalTrend = ta.ema(close,50) / ta.sma(close,50)
goodTrend = normalTrend > 1
SCORE := goodTrend ? SCORE + 1 : SCORE



isBuy =  SCORE > 1 or tradingMode == "Always Buy"
isSell = false //SCORE == 0

//plot(SCORE, color=isBuy ? color.green : #ffffff88)
//reduced some of the values just for illustrative purposes, you can buy after the signal if the trendlines seem to grow
plot(1, color=isBuy ? #77ff7733 : SCORE == 2 ? #ffff0033 : SCORE == 1 ? #ff888833 : #ff000033,linewidth=10)
plot(1 - (1 - RSIMomentum) * 6,color=#00F569)
plot(1 - (1 - RSITrend) * 0.25,color=#00DB9B)
plot(1 - (1 - normalTrend) * 20,color=#00F5EE)


strategy.initial_capital = 50000
if(isBuy and not(disableAdditionalBuysThisDay))
    if(compoundingMode)
        strategy.entry("Long", strategy.long, (strategy.equity / close) * leverage)
    else
        strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)


if(strategy.position_size != 0)
    strategy.exit("TP/SL Long", "Long", stop=strategy.position_avg_price * (1 - (1 - SL_Factor)), limit=strategy.position_avg_price * (1 + (1 - SL_Factor) * TPFactor))