Stratégie de trading quantitative basée sur les indicateurs de tendance TRSI et SUPER


Date de création: 2023-12-15 16:05:51 Dernière modification: 2023-12-15 16:05:51
Copier: 0 Nombre de clics: 738
1
Suivre
1621
Abonnés

Stratégie de trading quantitative basée sur les indicateurs de tendance TRSI et SUPER

Aperçu

Cette stratégie combine un indicateur relativement faible (TRSI) et un indicateur de tendance supérieure (SUPER Trend) pour former un ensemble plus complet de stratégies de trading quantitatives. La stratégie est principalement utilisée pour capturer les tendances de la ligne moyenne et longue, tout en utilisant des indicateurs à court terme pour filtrer les signaux de trading bruyants.

Principe de stratégie

  1. Calculer l’indicateur TRSI pour déterminer si le marché est en sur-achat et en sur-vente et envoyer un signal d’achat et de vente
  2. Filtrez les signaux de bruit à l’aide de l’indicateur SUPER Trend pour confirmer les tendances fondamentales
  3. Définition d’un stop-loss à différentes étapes du tableau de bord

Plus précisément, la stratégie commence par calculer l’indicateur TRSI pour déterminer si le marché est en zone de survente, puis calculer l’indicateur SUPER Trend pour déterminer la direction de la grande tendance. La combinaison des deux émet un signal de transaction.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La combinaison d’indicateurs multiples améliore la précision du signal.
  2. Il s’agit d’un indicateur de tendance à la hausse.
  3. Le système de stop-loss est raisonnable, les bénéfices à différents stades sont retirés dans des proportions différentes, et les risques sont contrôlés.

Analyse des risques

Cette stratégie présente aussi des risques:

  1. Les traders de la ligne moyenne et longue ne peuvent pas saisir les opportunités de la ligne courte.
  2. Le paramètre TRSI n’est pas correctement configuré et peut avoir manqué une période de survente.
  3. Le paramètre SUPER Trend n’est pas correctement configuré et peut envoyer un mauvais signal.
  4. L’espace d’arrêt est trop grand pour contrôler efficacement le risque.

Nous pouvons optimiser ces risques de plusieurs façons:

Direction d’optimisation

  1. En combinant plus d’indicateurs de courte ligne, identifier plus d’opportunités de trading.
  2. Ajustez les paramètres TRSI pour réduire la marge d’erreur.
  3. Tester et optimiser les paramètres de SUPER Trend
  4. Il s’agit d’un système qui permet de suivre en temps réel les lignes de stop.

Résumer

Cette stratégie utilise plusieurs indicateurs, tels que le TRSI et le SUPER Trend, pour former une stratégie de trading quantitative plus complète. Elle permet d’identifier efficacement les tendances de la ligne moyenne et longue, tout en réglant les risques de contrôle des arrêts de perte.

Code source de la stratégie
/*backtest
start: 2022-12-14 00:00:00
end: 2023-11-26 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title = "SuperTREX strategy", overlay = true)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
length = input( 14 )
overSold = input( 35 )
overBought = input( 70 )
HTF = input("W", type=input.resolution)
ti = change( time(HTF) ) != 0
p = fixnan( ti ? close : na )

vrsi = rsi(p, length)
price = close
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

xy=(entry_value+entry_value)/2

// INPUTS //
st_mult   = input(4,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =xy - (st_mult * atr(st_period))
dn_lev =xy + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := entry_value[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := entry_value1[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend
plot(xy,color = trend == 1 ? color.green : color.red)

buy=crossover( close, st_line) 
sell1=crossunder(close, st_line) 
 


buy1=buy
//

sell=sell1


// STRATEGY

plotshape(buy , title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon
// Take profit

//
l = buy 
s1=sell 
if l 
    strategy.entry("buy", strategy.long)
if s1 
    strategy.entry("sell", strategy.short)
per(pcnt) =>  strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=2, minval=0.01)
tp2=input(title=" Take profit2", defval=4, minval=0.01)
tp3=input(title=" Take profit3", defval=6, minval=0.01)
tp4=input(title=" Take profit4", defval=8, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)