RSI-Zyklusübergreifende Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-25 11:20:59
Tags:

img

Übersicht

Diese Strategie nutzt die überkauften und überverkauften Prinzipien des RSI-Indikators und kombiniert Multi-Cycle-RSI, um Signale zu erzeugen und Kreuzzyklus-Operationen zu realisieren. Die Strategie beurteilt überkaufte und überverkaufte Signale nach den Zyklus-Einstellungen des RSI und verwendet den gleitenden Durchschnitt des RSI zum Filtern, um falsche Signale zu vermeiden. Sie erzeugt ein Kaufsignal, wenn der RSI seinen gleitenden Durchschnitt überschreitet, und ein Verkaufssignal, wenn er darunter überschreitet, was einen typischen gleitenden Durchschnitts-Crossover-Betriebsmodus bildet.

Strategie Logik

Die Strategie erzeugt hauptsächlich Handelssignale durch die Überkauf- und Überverkaufssteuerungen des RSI-Indikators. RSI steht für Relative Strength Index, seine Formel lautet: RSI = 100 - (100 / (1 + RS)), wobei RS das Verhältnis von durchschnittlichen Schließgewinnen zu durchschnittlichen Schließverlusten über einen Zeitraum ist. Der RSI-Index liegt zwischen 0 und 100, allgemein als überverkauft unter 30 und überkauft über 70.

Die Strategie setzt einen hohen Parameter Überkauf und einen niedrigen Parameter Überkauf. Wenn der RSI höher als Überkauf ist, wird er als überkauft beurteilt. Wenn der RSI niedriger als Überkauf ist, wird er als überverkauft beurteilt. Die Standardwerte von Überkauf und Überkauf in der Strategie sind 70 bzw. 30.

Um Kauf- und Verkaufssignale zu erzeugen, verwendet die Strategie die gleitende Durchschnittslinie des RSI-Indikators zum Filtern. Wenn der RSI über seine gleitende Durchschnittslinie geht, wird das Kaufsignal Es_compra generiert. Wenn der RSI unter seine gleitende Durchschnittslinie geht, wird das Verkaufssignal Es_venta generiert. Der gleitende Durchschnittsparameter periodos_media wird standardmäßig auf 14 Perioden festgelegt.

Nach der Erstellung von Kauf- und Verkaufssignalen eröffnet die Strategie Positionen für den Long- oder Short-Handel. Darüber hinaus setzt die Strategie auch Stop-Loss und Take-Profit in Prozent, um übermäßige Verluste zu vermeiden und Gewinne zu erzielen.

Vorteile der Strategie

  1. Verwenden Sie den RSI-Indikator, um überkaufte und überverkaufte Konditionen zu beurteilen, und vermeiden Sie das Verfolgen von Höchstwerten und Verkaufsschwellen.

  2. Der gleitende Durchschnitt des RSI-Indikators wird zum Filtern angewendet, um falsche Signale zu vermeiden.

  3. Kombination von mehrstündigen Einstellungen des RSI-Indikators zur Erzeugung stabilerer Handelssignale.

  4. Einrichtung von Stop-Loss- und Gewinnmechanismen zur effektiven Risikokontrolle.

  5. Die Strategielogik ist einfach und klar, leicht zu verstehen und zu ändern.

  6. Anpassungsfähige Parameter, an unterschiedliche Produkte und Zyklen angepasst.

Risiken der Strategie

  1. Der RSI-Indikator hat einen Verzögerungseffekt, kann das beste Timing für die Preisumkehr verpassen.

  2. Der gleitende Durchschnitt verursacht Handelssignalverzögerungen, da er keine Trendumkehrungen rechtzeitig erfassen kann.

  3. Festgelegte Parameter für Überkauf und Überverkauf sind nicht flexibel genug und müssen für verschiedene Zyklen und Produkte angepasst werden.

  4. Bei unzulässigen Stop-Loss- und Take-Profit-Einstellungen können Verluste oder verpasste Gewinne entstehen.

  5. Die Long- und Short-Positionen sind nur 1 Lot und können nicht vollständig für den Spread-Handel verwendet werden.

Optimierungsrichtlinien

  1. Kombination anderer Indikatoren wie MACD, KD für die Bewertung von Handelssignalen.

  2. Anwendung eines adaptiv gleitenden Durchschnitts zur Verfolgung von Trends.

  3. Dynamische Parameter für Überkauf und Überverkauf festlegen und anhand der Marktvolatilität anpassen.

  4. Optimieren Sie Stop-Loss- und Take-Profit-Algorithmen, wie zum Beispiel Trailing Stop-Loss.

  5. Hinzufügen eines Positionsmanagement-Mechanismus, dynamische Anpassung der Positionen anhand der Kapitalgröße.

  6. Hinzufügen einer Trendfilterung, um häufigen Handel in Bereichsgebundenen Märkten zu vermeiden.

  7. Backtest zur Optimierung der Parameter und Auswahl der optimalen Parameterkombination.

Zusammenfassung

Diese Strategie basiert auf den Überkauf- und Überverkaufsprinzipien des RSI-Indikators, verwendet gleitende Durchschnitte zur Filterung, um Handelssignale zu generieren und den typischen Kreuzzyklushandel zu realisieren. Die Strategie hat eine klare logische Struktur und Parameter-Einstellungen, die durch Parameter-Tuning an verschiedene Produkte und Zyklen angepasst werden können, was sie zu einer zuverlässigen und effektiven Kreuzzyklus-Handelsstrategie macht. Es gibt jedoch auch Einschränkungen bei Tools wie RSI und gleitendem Durchschnitt, die weitere Optimierungen erfordern, um die Strategieparameter anpassungsfähiger zu machen, Filterwirkungen besser zu machen und das Risiko zu senken und den Gewinn maximal zu erhöhen.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © samuelkanneman

//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime         = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime           = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)

//////Proceso///////

mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)

Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)

comprado= strategy.position_size > 0
vendido = strategy.position_size < 0

//time to test 
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)


// long

if (not comprado and Es_compra and dateFilter  )
    // realizar long
    cantidad = strategy.equity/hlc3
    strategy.entry ("compra", strategy.long , cantidad)
    SL := close*(1-(StopLoss/100))
    TP := close*(1+(TakeProfit/100))
    
if close >= TP
    strategy.close ("compra" , comment="Salto TP")  

if (comprado and Es_venta  )
    strategy.close ("compra" , comment="Sobre Venta")

if close <= SL
    strategy.close ("compra" , comment="Salto SL")
    
// short

if (not vendido and Es_venta and dateFilter  )
    // realizar short
    cantidad = strategy.equity/hlc3
    strategy.entry ("venta", strategy.short , cantidad)
    SL := close*(1+(StopLoss/100))
    TP := close*(1-(TakeProfit/100))
    
if close <= TP
    strategy.close ("venta" , comment="Salto TP")  

if (vendido and Es_compra  )
    strategy.close ("venta" , comment="Sobre Compra")

if close >= SL
    strategy.close ("venta" , comment="Salto SL")

    

    
    
   ///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)

bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)


// 1d 70 22 5 4 3 15    6 meses
//1h 70 20 6 4 5 7      1 mese
//15m 70 20 5 4 4 7      1 semana


Mehr