Stratégie de base de Super Trend


Date de création: 2023-10-11 15:14:54 Dernière modification: 2023-10-11 15:14:54
Copier: 0 Nombre de clics: 907
1
Suivre
1617
Abonnés

Aperçu

La stratégie de base de super-trend est une stratégie de trading algorithmique fiable et rentable basée sur trois indicateurs forts: l’indicateur de super-trend (ATR), l’indicateur de force relative (RSI) et l’indicateur de moyenne mobile (EMA). Cette stratégie vise à identifier la direction et la force des tendances du marché, à entrer dans le marché au point d’entrée optimal et à sortir du marché lorsqu’un point d’arrêt ou d’arrêt est atteint.

Principe de stratégie

La stratégie utilise un indicateur de super-tendance pour déterminer si le prix est en tendance haussière ou baissière. L’indicateur de super-tendance est basé sur la moyenne de l’amplitude réelle et un facteur, qui est en hausse lorsque le prix est supérieur à la super-tendance et en baisse lorsque le prix est inférieur à la super-tendance.

L’indice de la relative faiblesse est utilisé pour détecter les conditions de surchauffe et de surachat ou de survente. Lorsque le RSI est supérieur à 50, c’est un marché fort et vice versa. Le RSI peut filtrer les fausses ruptures.

Les moyennes mobiles indicielles sont utilisées pour déterminer la direction de la tendance à long terme. Les prix sont tendance à la hausse quand ils sont supérieurs à l’EMA et à la baisse quand ils sont inférieurs.

Les signaux de trading de cette stratégie sont les suivants:

Entrée multiple: le prix est supérieur à la tendance super et le RSI est supérieur à 50 et le prix est supérieur à l’EMA Sortie multiple: la clôture est inférieure à la tendance super ou à la rupture ou à la rupture

Entrée à zéro: le cours est en dessous de la tendance et le RSI est en dessous de 50 et le cours est en dessous de l’EMA
Sortie à vide: la clôture est supérieure à la tendance super ou à la rupture ou à la rupture

Le stop loss et le stop stop stop peuvent être définis en pourcentage du prix d’entrée.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Utilisez une combinaison de trois indicateurs pour déterminer de manière fiable la direction de la tendance

  2. L’indicateur de super-tendance détermine clairement les tendances haussières et baissières

  3. Le RSI peut filtrer les fausses ruptures pour éviter les surachats

  4. L’EMA peut être utilisée pour déterminer la direction des grandes tendances.

  5. Les signaux stratégiques sont simples, clairs et faciles à utiliser

  6. Vous pouvez personnaliser les cycles ATR, les paramètres RSI et les cycles EMA pour optimiser

  7. Un arrêt de perte réglable pour contrôler les risques

  8. Il est possible de faire plus ou moins pour s’adapter aux différentes conditions du marché.

  9. Peut être utilisé dans n’importe quel cycle de temps

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les indicateurs de super-tendance sont retardés et peuvent entraîner des pertes lorsque la tendance majeure est inversée.

  2. Le stop-loss est trop petit pour capturer le gros du marché

  3. L’EMA n’est pas en mesure de déterminer le point de basculement

  4. Je ne peux pas juger le phénomène.

  5. Il y a un certain risque de volatilité et de transaction temporelle.

La réponse:

  1. En combinaison avec d’autres indicateurs, le renversement de tendance

  2. Optimisation des paramètres de stop-loss

  3. En combinaison avec d’autres indicateurs, le renversement de tendance

  4. Combiné avec des indices de déviation

  5. Adaptation appropriée de la gestion des positions

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimisation des paramètres de cycle ATR pour équilibrer sensibilité et stabilité

  2. Optimiser les paramètres RSI pour une meilleure précision

  3. Optimiser le cycle EMA pour l’adapter aux différents marchés

  4. Ajout d’autres indicateurs pour juger de l’inversion, comme le MACD, le KD, etc.

  5. Augmentation de la déviation de l’indicateur

  6. Réversion de jugement combinée à la théorie des vagues

  7. Paramètres d’optimisation dynamique utilisant des algorithmes tels que l’apprentissage automatique

  8. Ajout d’algorithmes de stop-loss avancés, tels que le stop-loss de suivi et le stop-loss mobile

  9. Optimisation de la gestion des positions et adaptation aux différents marchés à taux de volatilité

  10. Test de combinaisons de conditions d’entrée et de sortie plus complexes

Résumer

La stratégie de base de super-tendance regroupe les trois indicateurs majeurs de la super-tendance, le RSI et l’EMA, formant une stratégie de suivi de tendance simple et pratique. Elle permet d’identifier clairement la direction de la tendance, de filtrer les faux signaux et de confirmer la tendance majeure.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JS_TechTrading

//@version=5
// strategy("Supertrend", overlay=true,default_qty_type =strategy.percent_of_equity,default_qty_value = 1,process_orders_on_close = false)

// group string////
var string group_text000="Choose Strategy"
var string group_text0="Supertrend Settings"
var string group_text0000="Ema Settings"
var string group_text00="Rsi Settings"
var string group_text1="Backtest Period"
var string group_text2="Trade Direction"
// var string group_text3="Quantity Settings"
var string group_text4="Sl/Tp Settings"
////////////////////
option_ch=input.string('Pullback',title = "Type Of Strategy",options =['Pullback','Simple'])

//atr period input supertrend 
atrPeriod = input(10, "ATR Length",group = group_text0)
factor = input.float(3.0, "Factor", step = 0.01,group=group_text0)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

long=direction < 0 ? supertrend : na
short=direction < 0? na : supertrend

longpos=false
shortpos=false

longpos :=long?true :short?false:longpos[1]
shortpos:=short?true:long?false:shortpos[1]

fin_pullbuy= (ta.crossunder(low[1],long) and long and high>high[1])
fin_pullsell=(ta.crossover(high[1],short) and short and low<low[1]) 

//Ema 1
on_ma=input.bool(true,"Ema Condition On/Off",group=group_text0000)
ma_len= input.int(200, minval=1, title="Ema Length",group = group_text0000)
ma_src = input.source(close, title="Ema Source",group = group_text0000)
ma_out = ta.ema(ma_src, ma_len)

ma_buy=on_ma?close>ma_out?true:false:true
ma_sell=on_ma?close<ma_out?true:false:true

// rsi indicator and condition
// Get user input
en_rsi    = input.bool(true,"Rsi Condition On/Off",group = group_text00)
rsiSource = input(title='RSI Source', defval=close,group = group_text00)
rsiLength = input(title='RSI Length', defval=14,group = group_text00)
rsiOverbought = input(title='RSI BUY Level', defval=50,group = group_text00)
rsiOversold   = input(title='RSI SELL Level', defval=50,group = group_text00)

// Get RSI value
rsiValue = ta.rsi(rsiSource, rsiLength)

rsi_buy=en_rsi?rsiValue>=rsiOverbought ?true:false:true
rsi_sell=en_rsi?rsiValue<=rsiOversold?true:false:true

// final condition
buy_cond=option_ch=='Simple'?long and not(longpos[1]) and rsi_buy and ma_buy:option_ch=='Pullback'?fin_pullbuy and rsi_buy and ma_buy:na
sell_cond=option_ch=='Simple'?short and not(shortpos[1]) and rsi_sell and ma_sell:option_ch=='Pullback'?fin_pullsell and rsi_sell and ma_sell:na

//backtest engine
start = input(timestamp('2005-01-01'), title='Start calculations from',group=group_text1)
end=input(timestamp('2045-03-01'), title='End calculations',group=group_text1)
time_cond =true

// Make input option to configure trade direction

tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both',group = group_text2)

// Translate input into trading conditions
longOK  = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")



// strategy start
if buy_cond and longOK and time_cond and strategy.position_size==0
    strategy.entry('long',direction = strategy.long)
if sell_cond and shortOK and time_cond and strategy.position_size==0
    strategy.entry('short',direction =strategy.short)

// fixed percentage based stop loss and take profit 

// User Options to Change Inputs (%)
stopPer = input.float(1.0,step=0.10, title='Stop Loss %',group =group_text4) / 100
takePer = input.float(1.0,step =0.10, title='Take Profit %',group =group_text4) / 100

// Determine where you've entered and in what direction
longStop  = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake  = strategy.position_avg_price * (1 + takePer)


if strategy.position_size > 0
    strategy.exit(id='Close Long',stop=longStop, limit=longTake)
if strategy.position_size < 0
    strategy.exit(id='Close Short',stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Fixed SL')
plot(strategy.position_size < 0 ? shortStop :na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Short Fixed SL')
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Long Take Profit')
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Short Take Profit')

//