Stratégie multi-échéances basée sur l'indicateur RSI


Date de création: 2023-12-29 14:12:54 Dernière modification: 2023-12-29 14:12:54
Copier: 0 Nombre de clics: 647
1
Suivre
1623
Abonnés

Stratégie multi-échéances basée sur l’indicateur RSI

Aperçu

Cette stratégie est une stratégie de dépréciation de BTC basée sur le RSI. La stratégie obtient une courbe VWAP en calculant la valeur moyenne pondérée de la transaction (VWAP) pour chaque ligne K, puis applique l’indicateur RSI à cette courbe.

Principe de stratégie

  1. Calculer la valeur moyenne pondérée de la transaction pour chaque ligne K (VWAP) et obtenir une courbe VWAP
  2. L’indicateur RSI est appliqué à la courbe VWAP avec un paramètre de 20 jours, une ligne de survente de 85 et une ligne de survente de 30
  3. Lorsque l’indicateur RSI traverse la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente
  4. Après avoir détenu 28 lignes K, si l’indicateur RSI franchit à nouveau la ligne de vente excessive (30), la position est en baisse

Analyse des avantages

  1. L’utilisation du VWAP au lieu d’un simple prix de clôture reflète mieux le prix réel des transactions
  2. Utilisez l’indicateur RSI pour détecter les surachats et les surventeurs afin d’éviter les hauts et les bas
  3. Les opérations à travers les délais pour éviter d’être piégé
  4. Risque maîtrisé, 28 lignes K à l’arrêt

Risques et solutions

  1. Les prix ont augmenté rapidement en raison d’événements inattendus.
    • Une approche basée sur le temps réduit le risque d’être pris au piège
  2. Les paramètres sont mal réglés et les opportunités sont facilement manquées
    • Test et optimisation des paramètres RSI et des lignes de surachat et de survente
  3. La ligne K ne peut pas traverser pour accéder aux supermarchés
    • Adaptation flexible des paramètres en fonction de la tendance de l’indicateur

Direction d’optimisation

  1. Tester plus de combinaisons de paramètres pour trouver le meilleur
  2. Combiné avec MACD, KD et autres indicateurs, il permet de déterminer si une zone d’achat ou de vente excessive a été atteinte.
  3. Configuration des paramètres de test selon les variétés
  4. Optimisation des mécanismes de stop-loss en fonction des fluctuations du taux de stop-loss

Résumer

Cette stratégie utilise la combinaison de VWAP et RSI pour identifier le sur-achat et sur-vente de BTC, afin de gérer efficacement les risques. L’idée de la stratégie est claire et compréhensible, elle mérite d’être testée et optimisée pour les transactions en direct.

Code source de la stratégie
/*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="")