Die Ressourcen sind geladen. Beförderung...

VWAP-RSI Überverkauft unter BTC-Kurzstrategie

Schriftsteller:ChaoZhang, Datum: 29.12.2023 14:12:54
Tags:

img

Übersicht

Dies ist eine BTC-Short-Strategie über Zeitrahmen hinweg, die auf dem RSI-Indikator von VWAP basiert. Sie berechnet den Volumengewichteten Durchschnittspreis (VWAP) jeder Kerze, um eine VWAP-Kurve zu erhalten, und wendet dann den RSI-Indikator auf die Kurve an.

Strategie Logik

  1. Berechnen Sie den VWAP-Wert jeder Kerze, um eine VWAP-Kurve zu erhalten
  2. Anwendung des RSI-Indikators auf die VWAP-Kurve mit einer Laufzeit von 20 Tagen, überkauftem Niveau bei 85 und überverkauftem Niveau bei 30
  3. Wenn der RSI von der überkauften Zone (85) in die überverkaufte Zone (30) überschreitet, öffnen Sie eine Leerposition
  4. Schließung der Position nach 28 Candlesticks oder wenn der RSI erneut die Überverkaufsgrenze (30) überschreitet

Analyse der Vorteile

  1. Verwenden Sie VWAP anstelle des einfachen Schlusskurses, um den tatsächlichen Handelspreis widerzuspiegeln
  2. Identifizieren Sie den Überkauf/Überverkauf mit RSI, um zu vermeiden, dass Sie hoch kaufen und niedrig verkaufen
  3. Handel über Zeiträume hinweg, um nicht gefangen zu werden
  4. Kontrollierbares Risiko mit 28 Stop-Loss-Candlesticks

Risiken und Lösungen

  1. Die Preise steigen aufgrund von Schwarzen Schwanen rasant an und sind nicht in der Lage, Verluste zu stoppen.
    • Einführung von Zeitrahmenhandel zur Verringerung der Gefahr, eingeschlossen zu werden
  2. Unangemessene Parametereinstellungen, leicht verpasste Gelegenheiten
    • Test und Optimierung von RSI-Parametern und Überkauf/Überverkauf
  3. RSI nicht in die Überverkaufszone gelangen kann
    • Kombination mit anderen Indikatoren zur Bestimmung des Trends, flexible Anpassung der Parameter

Optimierungsrichtlinien

  1. Testen Sie mehr Parameterkombinationen, um das optimale zu finden
  2. Kombination mit MACD, KD usw. zur Beurteilung des Überkauf-/Überverkaufsstatus
  3. Versuchsparameter-Einstellungen für verschiedene Anlagen getrennt
  4. Optimieren Sie den Stop-Loss-Mechanismus, setzen Sie den Stop-Loss-Bereich basierend auf der Volatilität ein

Zusammenfassung

Diese Strategie identifiziert den BTC-Überkauf-/Überverkaufsstatus mit der Kombination von VWAP und RSI. Durch den Handel über Zeitrahmen hinweg kann sie Risiken effektiv kontrollieren. Die Strategielogik ist klar und leicht verständlich und lohnt sich für den Live-Handel weiter zu testen und zu optimieren.


/*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="")

Mehr