Stratégie de super tendance à triple chevauchement


Date de création: 2024-02-26 10:04:18 Dernière modification: 2024-02-26 10:04:18
Copier: 3 Nombre de clics: 338
1
Suivre
1166
Abonnés

Stratégie de super tendance à triple chevauchement

Aperçu

Il s’agit d’une stratégie qui utilise trois indicateurs superposés sur une tendance pour prendre des décisions commerciales. Il permet de saisir de grandes opportunités de direction dans un contexte de tendance.

Principe de stratégie

La stratégie utilise la fonction ta.supertrend() pour calculer l’indicateur de super-tendance dans trois paramètres différents. On calcule respectivement la super-tendance de 3 fois l’ATR le 10ème jour, la super-tendance de 1 fois l’ATR le 2ème jour, la super-tendance de 2 fois l’ATR le 14ème jour, et la super-tendance de 2 fois l’ATR le 20ème jour.

L’indicateur hypertrend, combiné à l’indicateur ATR, permet de suivre efficacement la tendance des changements de prix. La stratégie de triple superposition de l’indicateur hypertrend rend le signal plus fiable, ce qui permet de tirer un plus grand profit de la tendance.

Avantages stratégiques

  1. Trois mécanismes de filtrage pour éviter les faux signaux et améliorer la qualité des signaux
  2. L’indicateur de tendance supérieure a une bonne fonction de désencombrement.
  3. Plusieurs combinaisons de hyperparamètres peuvent être configurées pour un environnement de marché plus large
  4. Les tests historiques ont été positifs, les gains sont plus importants que les risques.

Risque stratégique

  1. Les signaux de filtrage multiple peuvent avoir manqué certaines opportunités
  2. Le pays a connu une période de forte récession, qui a entraîné une baisse de la production de pétrole.
  3. Combinaison de trois groupes de hyperparamètres à optimiser
  4. Les heures de négociation centralisées sont vulnérables aux événements imprévus

Les points suivants peuvent être considérés pour réduire le risque:

  1. Ajustez les conditions de filtrage pour conserver une ou deux tendances supérieures
  2. Augmentation des stratégies de réduction des pertes
  3. Optimiser les paramètres hyper pour améliorer le taux de victoire

Orientation de l’optimisation de la stratégie

  1. Tester plus de combinaisons de paramètres pour trouver les meilleurs hyperparamètres
  2. Ajout d’algorithmes d’apprentissage automatique et d’optimisation des paramètres en temps réel
  3. Augmenter les stratégies de stop-loss et contrôler les pertes individuelles
  4. En combinaison avec d’autres indicateurs, identifier les tendances et les perturbations
  5. Étendre le temps de négociation pour éviter le risque d’un seul nœud de temps

Résumer

Cette stratégie utilise la superposition de trois tendances pour prendre des décisions et identifier efficacement la direction de la tendance. Elle présente des avantages tels que la qualité du signal et l’optimisation des paramètres. Il existe également un certain risque, qui nécessite un ajustement des paramètres et du moment de sortie pour s’adapter aux différentes conditions du marché.

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

//@version=5
strategy('Combined Supertrend Strategy - Ajit Prasad', overlay=true)

// Function to calculate Supertrend
supertrendFunc(atrLength, factor) =>
    [supertrend, direction] = ta.supertrend(factor, atrLength)
    [supertrend, direction]

// Input parameters for the first Supertrend
atrPeriod1 = input(10, 'ATR Length 1')
factor1 = input(3, 'Factor 1')

// Calculate the first Supertrend
[supertrend1, direction1] = supertrendFunc(atrPeriod1, factor1)

// Input parameters for the second Supertrend
atrPeriod2 = input(14, 'ATR Length 2') // Change values as needed
factor2 = input(2, 'Factor 2') // Change values as needed

// Calculate the second Supertrend
[supertrend2, direction2] = supertrendFunc(atrPeriod2, factor2)

// Input parameters for the third Supertrend
atrPeriod3 = input(20, 'ATR Length 3') // Change values as needed
factor3 = input(2.5, 'Factor 3') // Change values as needed

// Calculate the third Supertrend
[supertrend3, direction3] = supertrendFunc(atrPeriod3, factor3)

// Define market opening and closing times
marketOpenHour = 9
marketOpenMinute = 15
marketCloseHour = 15
marketCloseMinute = 30
exitTimeHour = 15
exitTimeMinute = 10

// Fetch historical close values using security function
histClose = request.security(syminfo.tickerid, "D", close)

// Buy condition
buyCondition = close > supertrend1 and close > supertrend2 and close > supertrend3 and close[1] <= supertrend1[1]

// Sell condition
sellCondition = close < supertrend1 and close < supertrend2 and close < supertrend3 and close[1] >= supertrend1[1]

// Exit conditions
buyExitCondition = close < supertrend1[1] or close < supertrend2[1] or close < supertrend3[1]
sellExitCondition = close > supertrend1[1] or close > supertrend2[1] or close > supertrend3[1]

// Execute orders with market timing
if true
    // Buy condition without 'and not'
    strategy.entry('Buy', strategy.long, when = buyCondition)

    // Sell condition without 'and not'
    strategy.entry('Sell', strategy.short, when = sellCondition)

    // Close conditions
    strategy.close('Buy', when = buyExitCondition )
    strategy.close('Sell', when = sellExitCondition)

// Close all trades at 3:10 pm IST
if true
    strategy.close_all()

// Plot Supertrends
plot(supertrend1, 'Supertrend 1', color=color.new(color.green, 0), style=plot.style_linebr)
plot(supertrend2, 'Supertrend 2', color=color.new(color.red, 0), style=plot.style_linebr)
plot(supertrend3, 'Supertrend 3', color=color.new(color.blue, 0), style=plot.style_linebr)

// Plot labels
plotshape(buyCondition, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.large, text='Buy Signal', textcolor=color.new(color.white, 0))
plotshape(sellCondition, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.large, text='Sell Signal', textcolor=color.new(color.white, 0))