Stratégie de trading quantitative basée sur les signaux de l'indicateur RSI


Date de création: 2023-09-14 20:26:49 Dernière modification: 2023-09-14 20:26:49
Copier: 0 Nombre de clics: 674
1
Suivre
1617
Abonnés

Cet article détaille une stratégie de quantification qui utilise l’indicateur RSI pour former un signal de transaction. Cette stratégie traite l’indicateur RSI et définit les conditions d’entrée et de sortie des transactions à plusieurs niveaux.

Premièrement, les principes stratégiques

Les principales logiques de négociation de la stratégie sont les suivantes:

  1. Calculer l’indicateur RSI et le traiter avec l’EMA pour obtenir l’indicateur d’oscillation traité.

  2. Les bandes de Brin sont calculées sur l’indicateur RSI traité, ce qui donne une trajectoire ascendante et descendante.

  3. Le RSI génère un signal d’achat lorsqu’il traverse la ligne d’entrée après avoir été traité; il génère un signal de vente lorsqu’il traverse la ligne d’entrée.

  4. Un signal de placement est généré lorsque l’indicateur entre dans la zone de survente.

De cette façon, les caractéristiques de l’indicateur RSI peuvent être utilisées pour capturer les opportunités de retournement et le traitement de l’indicateur pour améliorer la qualité du signal et la valeur de référence.

Deux, les avantages stratégiques

Le plus grand avantage de cette stratégie est que le processus de traitement des indicateurs augmente l’espace de paramètres, ce qui permet de contrôler strictement la fréquence des transactions et d’éviter les transactions excessives.

Un autre avantage est que les conditions d’entrée sont simples et intuitives, et que le moment de la transaction est déterminé par la valeur numérique claire de l’indicateur.

Enfin, le réglage de la marge d’excédent d’achat et de vente peut aider à arrêter les pertes en temps opportun et à contrôler le risque d’une seule transaction.

Troisièmement, les risques potentiels

Mais cette stratégie comporte aussi les risques suivants:

Tout d’abord, l’indicateur RSI se concentre sur le renversement de la tendance, ce qui peut générer de faux signaux.

Deuxièmement, une mauvaise configuration des paramètres peut également conduire à une optimisation excessive et à une incapacité à s’adapter aux changements de la structure du marché.

Enfin, un faible taux de victoire nécessite une certaine pression de perte.

Quatrième partie, résumé

Cet article présente principalement une stratégie de trading quantitatif utilisant l’indicateur RSI. Elle contrôle la fréquence des transactions par régulation de paramètres, ainsi que des règles d’entrée et de sortie claires.

Code source de la stratégie
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//-----------------------------------------------------------------
//This simple strategy base on RSI, EMA, Bollinger Bands to get Buy and Sell Signal with detail as below:
//-----------------------------------------------------------------
//1.Define Oscillator Line
//+ Oscillator Line is smoothed by ema(28) of RSI(14) on H1 Timeframe
//2.Define Overbought and Oversold
//+ Apply Bollinger Bands BB(80,3) on Oscillator Line and calculate %b
//+ Overbought Zone marked above level 0.8
//+ Oversold Zone marked below level 0.2
//3.Buy Signal
//+ Entry Long Positon when %b crossover Point of Entry Long
//+ Deafault Point of Entry Long is 0.2
//+ Buy signal marked by Green dot
//4.Sell Signal
//+ Entry Short Position when %b crossunder Point of Entry Short
//+ Deafault Point of Entry Short is 0.8
//+ Sell signal marked by Red dot
//5.Exit Signal
//+ Exit Position (both Long and Short) when %b go into Overbought Zone or Oversold Zone
//+ Exit signal marked by Yellow dot
//-----------------------------------------------------------------
strategy(title="RSI %b Signal [H1 Backtesting]", overlay=false)

//RSI
rsi_gr="=== RSI ==="
rsi_len = input(14, title = "RSI",inline="set",group=rsi_gr)
smoothed_len = input(28, title = "EMA",inline="set",group=rsi_gr)
rsi=ta.ema(ta.rsi(close,rsi_len),smoothed_len)
//rsi's BOLLINGER BANDS
pb_gr="=== %b ==="
length = input(80, title = "Length",inline="set1",group=pb_gr)
rsimult = input(3.0, title = "Multiplier",inline="set1",group=pb_gr)
ovb = input(0.8, title = "Overbought",inline="set2",group=pb_gr)
ovs = input(0.2, title = "Oversold",inline="set2",group=pb_gr)
et_short = input(0.8, title = "Entry Short",inline="set3",group=pb_gr)
et_long = input(0.2, title = "Entry Long",inline="set3",group=pb_gr)
[rsibasis, rsiupper, rsilower] = ta.bb(rsi, length, rsimult)
//rsi's %B
rsipB = ((rsi - rsilower) / (rsiupper - rsilower))
plot(rsipB, title="rsi's %B", color=rsipB>math.min(ovb,et_short)?color.red:rsipB<math.max(ovs,et_long)?color.green:color.aqua, linewidth=1)

h1=hline(1,color=color.new(color.red,100))
h4=hline(ovb,color=color.new(color.red,100))
h0=hline(0,color=color.new(color.green,100))
h3=hline(ovs,color=color.new(color.green,100))
h5=hline(0.5,color=color.new(color.silver,0),linestyle=hline.style_dotted)

fill(h1,h4, title="Resistance", color=color.new(color.red,90))
fill(h0,h3, title="Support", color=color.new(color.green,90))

//Signal
rsi_buy=
           rsipB[1]<et_long
           and
           rsipB>et_long
rsi_sell=
           rsipB[1]>et_short
           and
           rsipB<et_short
rsi_exit=
           (rsipB[1]>ovs and rsipB<ovs)
           or
           (rsipB[1]<ovb and rsipB>ovb)
plotshape(rsi_buy?rsipB:na,title="Buy",style=shape.circle,color=color.new(color.green,0),location=location.absolute)
plotshape(rsi_sell?rsipB:na,title="Sell",style=shape.circle,color=color.new(color.red,0),location=location.absolute)
plotshape(rsi_exit?rsipB:na,title="Exit",style=shape.circle,color=color.new(color.yellow,0),location=location.absolute)
//Alert
strategy.entry("Long",strategy.long,when=rsi_buy)
strategy.close("Long",when=rsi_exit)
strategy.entry("Short",strategy.short,when=rsi_sell)
strategy.close("Short",when=rsi_exit)
//EOF