Cross-Timeframe-Strategie basierend auf dem RSI-Indikator


Erstellungsdatum: 2023-12-29 14:12:54 zuletzt geändert: 2023-12-29 14:12:54
Kopie: 0 Klicks: 647
1
konzentrieren Sie sich auf
1623
Anhänger

Cross-Timeframe-Strategie basierend auf dem RSI-Indikator

Überblick

Diese Strategie basiert auf dem RSI-Indikator, um BTC-Deflation zu erzeugen. Die Strategie erhält eine VWAP-Kurve durch Berechnung des geschuldeten, gewichteten Durchschnittspreises für jede K-Linie (VWAP) und wendet dann den RSI-Indikator auf diese Kurve an.

Strategieprinzip

  1. Berechnen Sie die Transaktionsmenge für jede K-Linie mit einem gewichteten Durchschnittspreis (VWAP) und erhalten Sie eine VWAP-Kurve
  2. Der RSI-Indikator wird auf die VWAP-Kurve angewendet, wobei die Parameter 20 Tage sind, die Überkauflinie 85 ist und die Überverkauflinie 30 ist.
  3. Wenn der RSI-Indikator von der Überkaufzone ((85) nach unten durch die Überverkaufszone ((30) geht, ist die Position leer
  4. Wenn der RSI-Indikator nach 28 K-Linien die Überverkaufsgrenze (30) wieder durchbricht, wird die Position platziert.

Analyse der Stärken

  1. Die Verwendung von VWAPs als einfache Schlusspreise spiegelt die tatsächlichen Transaktionspreise besser wider
  2. Der RSI-Indikator wird verwendet, um Überkaufe und Überverkäufe zu erkennen, um zu verhindern, dass die Kurse nach oben oder unten gehen.
  3. Über die Zeitrahmen hinweg, um nicht in die Falle zu geraten
  4. Das Risiko ist kontrollierbar, 28 K-Linien sind erloschen.

Risiken und Lösungen

  1. Die jüngsten Ereignisse haben zu einem raschen Anstieg der Preise geführt, der nicht aufzuhalten war.
    • Ein zeitlich übergreifender Rahmen zur Verringerung des Risikos von Ausbeutung
  2. Die Parameter sind falsch eingestellt und es ist leicht, Chancen zu verpassen.
    • Testen und Optimieren von RSI-Parametern und Überkauf-Überverkaufslinien
  3. Die K-Linie kann nicht durch die Supermarktzone.
    • Flexible Anpassung der Parameter in Kombination mit anderen Indikatoren

Optimierungsrichtung

  1. Test mehr Parameterkombinationen, um die besten zu finden
  2. In Kombination mit MACD, KD und anderen Indikatoren, um zu bestimmen, ob eine Überkauf-Überverkaufszone betreten wird
  3. Einstellung der Testparameter je nach Sorte
  4. Optimierung der Stop-Loss-Mechanismen, die Stop-Loss-Werte auf Basis der Schwankungen festlegen

Zusammenfassen

Die Strategie identifiziert die Überkauf- und Überverkaufssituation von BTC in Kombination mit VWAP und RSI und kann Risiken effektiv kontrollieren. Die Strategie ist klar und verständlich und sollte weiter getestet und optimiert werden.

Strategiequellcode
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4

strategy("Soran Strategy 2 - SHORT SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)


// ----------------- Inputs ----------------- //

reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).

// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28


stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)

stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)


// --------------- Laguerre ----------------- //

laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")

laguerre_cal(s,g) =>
    l0 = 0.0
    l1 = 0.0
    l2 = 0.0
    l3 = 0.0
    l0 := (1 - g)*s+g*nz(l0[1])
    l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
    l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
    l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
    (l0 + 2*l1 + 2*l2 + l3)/6


// ---------------- Rsi VWAP ---------------- //

rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))

rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV


// ------------------ Plots ----------------- //

prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)


// ---------------- Positions: only shows the Short and close shoret positions --------------- //

timebull = stratbull and time > stratstart
timebear = stratbear and time > stratstart


strategy.entry("Short", false, when = timebear and crossunder(rsiVWAP, ovrbgt), comment="")
strategy.close("Short", when = timebear and crossunder(rsiVWAP, ovrsld)[lateleave] or crossover(rsiVWAP, ovrsld), comment="")