Stratégie de swing trading RSI basée sur des ajustements intra-annuels


Date de création: 2024-02-29 10:54:45 Dernière modification: 2024-02-29 10:54:45
Copier: 0 Nombre de clics: 592
1
Suivre
1617
Abonnés

Stratégie de swing trading RSI basée sur des ajustements intra-annuels

Aperçu

Cette stratégie est une stratégie de trading basée sur les oscillations du RSI, ajustées au cours de l’année, qui émet des signaux de trading lorsque l’indicateur RSI touche le bas et le haut en suivant les caractéristiques de oscillation entre les indicateurs RSI sur les trajectoires de hausse et de baisse définies.

Principe de stratégie

  1. Définition de la longueur moyenne de la MA, des paramètres du RSI, de la trajectoire ascendante et descendante, des paramètres de stop loss et de la portée des cycles de négociation
  2. Calculer le RSI, le RSI est égal à la moyenne de la hausse plus la moyenne de la baisse.*100
  3. Tracer le RSI et les hauts et les bas
  4. Le RSI sur la descente est un signal de multiplication, sur la descente est un signal de rupture
  5. Ouverture d’une position et constitution d’une liste OCO
  6. Arrêtez et arrêtez les pertes selon la logique d’arrêt et d’arrêt définie

Analyse des forces stratégiques

  1. En définissant des cycles de transactions annuels, on évite certains environnements externes inappropriés.
  2. L’indicateur RSI peut effectivement refléter les situations de sur-achat et de survente, et peut filtrer une partie du bruit en définissant des intervalles raisonnables pour les transactions de choc.
  3. La fixation d’un OCO en combinaison avec un arrêt-stop-loss permet une gestion efficace des risques.

Analyse stratégique des risques

  1. L’exactitude de l’évaluation critique du RSI n’est pas garantie et il peut y avoir un certain risque d’erreur.
  2. Une mauvaise configuration du cycle de négociation de l’année peut vous faire rater de meilleures opportunités de négociation ou vous amener dans un environnement de négociation inapproprié.
  3. Un stop-loss trop élevé peut entraîner des pertes plus importantes, un stop-loss trop faible peut entraîner des bénéfices trop faibles.

L’optimisation peut être réalisée en ajustant les paramètres RSI, la durée du cycle de négociation, le stop loss ratio, etc.

Orientation de l’optimisation de la stratégie

  1. Tester les valeurs optimales du RSI sur différents marchés à différentes périodes
  2. Analyser les cycles de l’ensemble du marché pour déterminer les meilleures périodes de l’année
  3. Déterminer le ratio de stop-loss raisonnable à l’aide d’une retrospective
  4. Optimiser le choix des variétés de transactions et augmenter la taille des positions
  5. Optimisation combinée à d’autres techniques ou indicateurs de trading plus performants

Résumer

La stratégie suit la tendance des transactions par le biais de la caractéristique de choc de l’indicateur RSI sur des cycles déterminés au cours de l’année, ce qui permet de contrôler efficacement le risque de négociation. Une plus grande efficacité de la stratégie peut être obtenue grâce à l’optimisation des paramètres et à l’optimisation des règles.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Bitlinc MARSI Study AST",shorttitle="Bitlinc MARSI Study AST",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1000,currency="USD",pyramiding=0, calc_on_order_fills=false)

// === General Inputs ===
lengthofma = input(62, minval=1, title="Length of MA")
len = input(31, minval=1, title="Length")
upperband = input(89, minval=1, title='Upper Band for RSI')
lowerband = input(10, minval=1, title="Lower Band for RSI")
takeprofit =input(1.25, title="Take Profit Percent")
stoploss =input(.04, title ="Stop Loss Percent")
monthfrom =input(8, title = "Month Start")
monthuntil =input(12, title = "Month End")
dayfrom=input(1, title= "Day Start")
dayuntil=input(31, title= "Day End")

// === Innput Backtest Range ===
//FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
//FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
//ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === Create RSI ===
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi,linewidth = 2, color=purple)

// === Plot Bands ===
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=blue, transp=95)

// === Entry and Exit Methods ===
longCond =  crossover(rsi,lowerband)
shortCond =  crossunder(rsi,upperband)

// === Long Entry Logic ===
if (  longCond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
    strategy.cancel(id="LONG")

// === Short Entry Logic ===    
if ( shortCond   ) 
    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")

// === Take Profit and Stop Loss Logic ===
//strategy.exit("Take Profit LONG", "LONG", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
//strategy.exit("Take Profit SHORT", "SHORT", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
strategy.exit("LONG TAKE PROFIT", "LONG", profit = close * takeprofit / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", profit = close * takeprofit / syminfo.mintick)
strategy.exit("LONG STOP LOSS", "LONG", loss = close * stoploss / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", loss = close * stoploss / syminfo.mintick)