Die Ressourcen sind geladen. Beförderung...

Impulsindicator Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-01 14:50:26
Tags:

img

Übersicht

Diese Strategie verwendet die Überschneidung des RSI-Indikators und seines gleitenden Durchschnitts als Handelssignale, die zu den gängigen Momentum-Indikator-Strategien gehören. Sein Kernprinzip besteht darin, die Differenz zwischen dem RSI-Indikator und dem einfachen gleitenden Durchschnitt SMA_RSI des RSI zu verfolgen und dann den einfachen gleitenden Durchschnitt SMA_RSI2 dieser Differenz zu berechnen. Wenn SMA_RSI2 über die Schwelle überschreitet, gehen Sie lang. Wenn Sie unter die Schwelle überschreiten, schließen Sie die Position.

Strategieprinzip

Die Strategie verwendet 3 Parameter, um den RSI-Indikator und seine beiden einfachen gleitenden Durchschnitte mit verschiedenen Perioden zu berechnen. Erstens berechnen Sie den regulären RSI-Indikator mit Periodengrad. Dann berechnen Sie den length2 Period simple moving average SMA_RSI des RSI. Schließlich berechnen Sie die Differenz delta zwischen RSI und SMA_RSI, und berechnen Sie dann den length3 Period simple moving average SMA_RSI2 des delta. Wenn SMA_RSI2 über die vom Benutzer definierte Schwelle geht, machen Sie lange Trades. Wenn SMA_RSI2 unter die Schwelle geht, schließen Sie Positionen.

Da SMA_RSI2 der gleitende Durchschnitt des Differenzdelta ist, kann er die Dynamik und Trendänderungen des RSI-Indikators widerspiegeln und die Essenz des RSI-Indikators selbst erfassen.

Analyse der Vorteile

Die Strategie kombiniert die Vorteile von RSI-Indikatoren und ihren gleitenden Durchschnitten, um Preistrends zu folgen und durch Lärm irreführend zu vermeiden.

Die spezifischen Vorteile sind:

  1. Verwendung von Delta, um Preisschwankungen zu mildern und falsche Signale zu reduzieren
  2. Einfache und unmittelbare Form des gleitenden Durchschnitts-Crossovers, leicht zu beherrschen
  3. Mehr anpassbare Parameter für den Markt
  4. Stabiler Gewinn, geringere Auslastung

Risiken und Verbesserungen

Diese Strategie birgt auch einige Risiken, die sich hauptsächlich in folgenden Aspekten widerspiegeln:

  1. Größerer Stop-Loss bei bedeutenden Marktbewegungen
  2. Unstabiler Gewinn bei variabler Entwicklung

Es sind folgende Aspekte zu verbessern:

  1. Optimierung der Parameter zur Steigerung der Stabilität
  2. Hinzufügen von Stop-Loss-Mechanismen zur Kontrolle einzelner Verluste
  3. Kombination mit anderen Indikatoren zur Verbesserung der Signalqualität

Schlussfolgerung

Diese Strategie ist relativ einfach und universell. Durch die Erhöhung der Praktikabilität des RSI-Indikators selbst durch delta-arithmetische Operationen und die Verwendung von Crossover zum Beurteilen hat sie eine gute Zugrundeziehungskontrolle und ist eine sehr praktische Momentum-Indikatorstrategie.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy ("RSI&SMA", overlay=false )
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp((9999), (1), (1), 0, 0)
_testPeriod() => true

length = input(3, minval=1, title = "RSI period")
length2 = input(21, minval=1, title = "RSI SMA-1")
length3 = input(13, minval=1, title = "RSI SMA-2")
threshold  = input(0,step=0.5, title="Threshold")
filter = input(false, title="Use filter?") 


up = rma (max (change (close), 0), length)
down = rma (-min (change (close), 0), length)
RSI = down == 0? 100: up == 0? 0: 100-100 / (1 + up / down)

SMA_RSI = sma(RSI, length2)
delta = RSI-SMA_RSI
SMA_RSI2 = sma(delta, length3)
Long = crossover(SMA_RSI2, threshold) 
Short = crossunder(SMA_RSI2, threshold) 

plot(threshold, color=color.silver)
plot(SMA_RSI2, color= SMA_RSI2 > 0 ? color.blue : color.purple)
//plot(SMA_RSI, color=color.green)
//plot(delta, color=color.red)

long_condition =  Long and (filter ? close > ema(close, 200) : true) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition =  Short
strategy.close('BUY', when=short_condition)


Mehr