Stratégie dynamique d'équilibrage à court et long terme intradien combinant moyenne mobile et supertrend

Auteur:ChaoZhang est là., Date: 2024-03-11 11:33:47 Je vous en prie.
Les étiquettes:

img

Vue d'ensemble de la stratégie

La stratégie dynamique d'équilibrage intradien à court terme combinant moyenne mobile et supertrend est une stratégie de trading quantitative écrite en Pine ScriptTM 5. La stratégie utilise l'indicateur MACD et l'indicateur Supertrend pour capturer les opportunités de tendance sur le marché, tout en contrôlant le risque grâce à une commutation dynamique à long terme et à un stop-loss/take-profit.

Principes de stratégie

Le noyau de cette stratégie est de combiner l'indicateur MACD et l'indicateur Supertrend pour déterminer la direction de tendance du marché.

  1. Utilisez l'indicateur Supertrend pour déterminer la direction actuelle de la tendance.
  2. Utilisez l'histogramme de l'indicateur MACD pour juger du changement de momentum. Lorsque l'histogramme MACD passe de négatif à positif, il indique une augmentation de l'élan ascendant; lorsque l'histogramme MACD passe de positif à négatif, il indique une augmentation de l'élan descendant.
  3. Ouvrir une position longue lorsque l'indicateur Supertrend et l'indicateur MACD donnent un signal long; ouvrir une position courte lorsque l'indicateur Supertrend et l'indicateur MACD donnent un signal court.
  4. Fermez toutes les positions à une heure fixe (par exemple à 15h15), chaque jour de négociation, afin d'éviter le risque du jour au lendemain.
  5. Réouvrir des positions un nouveau jour de négociation (par exemple à 9h30) selon les indications de l'indicateur Supertrend et de l'indicateur MACD.

Par le biais d'une commutation dynamique long-short, la stratégie peut s'adapter aux changements du marché et saisir les opportunités de tendance.

Les avantages de la stratégie

  1. Suivi de tendance: en combinant l'indicateur Supertrend et l'indicateur MACD, la stratégie peut capturer efficacement les opportunités de tendance sur le marché.
  2. Commutation dynamique long-short: la stratégie ajuste dynamiquement la direction de la position en fonction des changements des indicateurs, en s'adaptant aux changements du marché.
  3. Contrôle des risques: grâce à la clôture des positions à temps fixe et à la commutation dynamique des positions long-short, la stratégie permet de contrôler relativement bien les risques.
  4. Flexibilité des paramètres: les paramètres de la stratégie (tels que la période ATR, le facteur, etc.) peuvent être ajustés en fonction des caractéristiques du marché et des préférences personnelles, offrant une certaine flexibilité.

Risques stratégiques

  1. Risque d'échec de l'indicateur: dans certains environnements de marché, l'indicateur MACD et l'indicateur Supertrend peuvent donner de faux signaux, entraînant une défaillance de la stratégie.
  2. Risque d'optimisation des paramètres: la performance de la stratégie dépend du choix des paramètres, et des paramètres inappropriés peuvent entraîner une mauvaise performance de la stratégie.
  3. Risque de stop-loss: la stratégie n'a pas de logique de stop-loss explicite, ce qui peut entraîner des pertes importantes dans des environnements de marché extrêmes.
  4. Risque sur une journée: bien que la stratégie clôture des positions au cours de la journée, elle peut quand même faire face au risque d'écart sur une nuit lors de l'ouverture de positions sur une nuit.

Directions d'optimisation

  1. Ajouter une logique de stop-loss: ajouter une logique de stop-loss explicite à la stratégie, telle qu'un stop-loss à pourcentage fixe ou un stop-loss ATR, pour contrôler davantage le risque.
  2. Optimisation des paramètres: Optimiser les paramètres clés de la stratégie, tels que la période ATR, le facteur, les paramètres MACD, etc., afin d'améliorer la robustesse et la rentabilité de la stratégie.
  3. Filtrage des signaux: ajouter plus de conditions de filtrage des signaux, telles que la rupture des prix, le volume des transactions, etc., pour améliorer la fiabilité des signaux.
  4. Test sur plusieurs marchés: tester la stratégie sur différents marchés et instruments afin d'en évaluer l'applicabilité et la stabilité.

Résumé

La stratégie d'équilibrage dynamique intradien à court terme combinant moyenne mobile et supertrend est une stratégie de trading basée sur le suivi des tendances et le jugement de l'élan. En combinant l'indicateur Supertrend et l'indicateur MACD et en ajustant dynamiquement la direction de la position, la stratégie peut s'adapter aux changements du marché et saisir les opportunités de tendance.

Cependant, la stratégie comporte également certains risques et lacunes, tels que le risque d'échec de l'indicateur, le risque d'optimisation des paramètres, le risque de stop-loss, etc. Pour améliorer davantage la stratégie, on peut envisager d'ajouter une logique de stop-loss, d'optimiser les paramètres, d'ajouter plus de conditions de filtrage du signal et de tester sur plusieurs marchés.

Dans l'ensemble, la stratégie d'équilibrage dynamique intradien à court terme combinant moyenne mobile et supertrend fournit une façon de penser pour le suivi des tendances et le contrôle des risques. Dans l'application pratique, les traders doivent apporter des ajustements et des optimisations appropriés à la stratégie en fonction de leurs propres préférences en matière de risque et des caractéristiques du marché, et l'utiliser avec prudence. Les stratégies de trading quantitatives peuvent fournir des idées de trading, mais le marché est en constante évolution, et aucune stratégie ne peut garantir des profits. Les investisseurs doivent comprendre les principes et les risques de la stratégie, contrôler raisonnablement les positions, arrêter strictement les pertes et toujours rester alertes afin de survivre sur le marché à long terme.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © smj31071995

//@version=5
strategy("EQ - INTRA - Samsuga supertrend prod", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick = false)


atrPeriod = input.int(7,    "ATR Length", minval = 1)
factor =    input.float(1.0, "Factor",     minval = 0.01, step = 0.01)
st_tf = "3"
macd_tf="30"

[supertrend, direction] =request.security(symbol = syminfo.tickerid, timeframe = st_tf,expression =  ta.supertrend(factor, atrPeriod),lookahead=barmerge.lookahead_on)

supertrend := barstate.isfirst ? na : supertrend
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)
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
longcondition = direction[1] > direction 
shortCondition = direction[1] < direction 

macdp1 = 2
macdp2=8
macdp3=4

[macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = macd_tf,expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on)
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
timezone_input = input("Asia/Kolkata", title="Timezone")
// log.info(timezone_input)
if(hour==15 and minute==15)
    strategy.close_all(comment = "DAY EXIT",alert_message = "X-D")
else if(hour==9 and minute==30)
    if(longcondition or histLine[1]>0)
        strategy.entry(id= "Long", direction=strategy.long,  comment = "DL",alert_message = "L")
    else if(shortCondition or histLine[1]<0) 
        strategy.entry(id= "Short", direction=strategy.short,  comment = "DS",alert_message = "S")
else
    if(longcondition)
        strategy.close("Short",comment = "X-S", alert_message = "X-S")
        if(histLine[1]>0)    
            strategy.entry(id= "Long", direction=strategy.long,  comment = "L",alert_message = "L")
    else if(shortCondition) 
        strategy.close("Long",comment = "X-L",alert_message = "X-L")
        if(histLine[1]<0)    
            strategy.entry(id= "Short", direction=strategy.short,  comment = "S",alert_message = "S")


// plot(macdLine,   title = "MACD",   color = #2962FF)
// plot(signalLine, title = "Signal", color = #FF6D00)
// 8, 21, 5
// 8,13,9
// 12,26,9
//  1--> 3, 17, 5
// 3, 10, 16
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
//  /////////----------------METHOD 1-----------------////////////////
// if(longcondition)
//     if(strategy.opentrades>0)
//         strategy.close("Long","Prev Exit", immediately = true)
//     if( histLine[0] > 0.1)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long")

    
// else if(shortCondition and strategy.openprofit<=0.1) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 2-----------------////////////////
// if(longcondition)
//     if(histLine[0] > 0)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long" )
//         strategy.exit("Long", loss = close*0.2)


    
// else if(shortCondition ) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 3-----------------////////////////



Plus de