Stratégie de rupture de tendance intraday

Auteur:ChaoZhang est là., Date: 2023-09-18 13:11:51 Je suis désolé
Les étiquettes:

Résumé

Il s'agit d'une tendance intraday à court terme suivant une stratégie basée sur l'indicateur Supertrend.

La stratégie inverse la position en utilisant une quantité double lorsque le signal change.

La logique de la stratégie

  1. Calculer l'indicateur Supertrend sur la base du multiplicateur défini par l'utilisateur et de la période ATR.

  2. Tracez la ligne de Supertrend comme support et résistance.

  3. Déterminez les conditions longues/courtes. Fermer au-dessus de la ligne Supertrend est une condition longue. Fermer au-dessous de la ligne Supertrend est une condition courte.

  4. Vérifiez si la barre actuelle se situe dans la session intradienne définie par l'utilisateur.

  5. Émettre des signaux longs/courts uniquement lorsque la session intraday est active et que les conditions longues/courts sont remplies.

  6. Reverse position en prenant le commerce opposé avec double quantité lorsque la direction de Supertrend change.

  7. Les positions ouvertes sont compensées lorsque la direction de la Supertrend est inchangée et que la session intradienne se termine.

Analyse des avantages

  1. Supertrend identifie la tendance et réduit les faux signaux.

  2. La combinaison de Supertrend avec le prix proche évite d'être arrêté prématurément.

  3. Le renversement de position en temps opportun réduit les pertes.

  4. La séance intraday évite le risque du jour au lendemain.

  5. La sortie forcée évite le risque d'oublier de faire la case départ.

Analyse des risques

  1. Des paramètres de Supertrend inappropriés peuvent entraîner une mauvaise performance de la stratégie.

  2. L'inversion de position augmente la fréquence des échanges et les coûts.

  3. Une sortie forcée à la fin de la séance peut entraîner des pertes.

  • Le risque 1 peut être atténué par l'optimisation des paramètres.

  • Le risque 2 peut être contrôlé par stop loss.

  • Le risque 3 peut être évité à l'aide d'un filtre stop-loss ou de filtre de tendance.

Des possibilités d'amélioration

  1. Testez différents indicateurs de tendance tels que MA, KDJ, etc.

  2. Ajoutez une logique de stop-loss.

  3. Ajouter un filtre de tendance pour éviter les pertes de sortie forcée.

  4. Optimiser les paramètres du multiplicateur et de la période ATR.

  5. Test sur différents instruments.

Conclusion

Cette stratégie combine Supertrend et gestion de session intraday pour capitaliser sur les ruptures de tendance à court terme.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
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/
// © Pritesh-StocksDeveloper

//@version=4
strategy("Supertrend - Intraday", overlay=true, calc_on_every_tick = true)

// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

var float i_multiplier = input(title = "Multiplier", type = input.float, 
     defval = 4, confirm=true)

var int i_atrPeriod = input(title = "ATR Period", type = input.integer, 
     defval = 14, confirm=true)

// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0

// ********** Supporting functions - End **********


// ********** Strategy - Start **********

[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)

colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)

plot(superTrend, color = colResistance, linewidth=2)
plot(superTrend, color = colSupport, linewidth=2)

// Long/short condition
longCondition = close > superTrend
shortCondition = close < superTrend

// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active
 
// Long position
// When longCondition and intradaySession both are true
strategy.entry(id = "Long", long = strategy.long, 
     when = longCondition and intradaySession)
 
// Short position
// When shortCondition and intradaySession both are true
strategy.entry(id = "Short", long = strategy.short, 
     when = shortCondition and intradaySession)
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********

Plus de