Stratégie de trading croisée avec l'indicateur MACD à échéances multiples


Date de création: 2024-02-19 11:03:54 Dernière modification: 2024-02-19 11:03:54
Copier: 0 Nombre de clics: 697
1
Suivre
1617
Abonnés

Stratégie de trading croisée avec l’indicateur MACD à échéances multiples

Aperçu

La stratégie de trading croisé d’indicateurs MACD sur plusieurs axes de temps est une stratégie de suivi de tendance. Elle consiste à calculer des indicateurs MACD avec différents paramètres, générant un signal de transaction lorsque le prix franchit cet indicateur, permettant la négociation automatisée de produits financiers tels que les actions, les indices et les devises étrangères.

Principe de stratégie

La stratégie calcule simultanément trois moyennes mobiles: une moyenne mobile pondérée WMA et deux moyennes mobiles indicielles EMA. Les paramètres de ces trois moyennes mobiles sont réglés différemment, respectivement sur 25, 50 et 100 jours. Cela permet aux moyennes mobiles de couvrir différents cycles de mouvement des prix.

Après avoir calculé les moyennes mobiles, la stratégie surveille si le prix franchit ou franchit une moyenne mobile. Si le prix franchit ou franchit simultanément les trois moyennes mobiles, un signal de transaction est généré.

Par exemple, un signal d’achat est généré lorsque le prix est simultanément au-dessus de toutes les 3 moyennes mobiles; un signal de vente est généré lorsque le prix est simultanément au-dessous de toutes les 3 moyennes mobiles. La surveillance de la relation entre le prix et la moyenne mobile permet de déterminer le point de basculement de la tendance des prix.

Le jugement croisé de plusieurs indicateurs de l’axe du temps permet de filtrer certains signaux faux et de rendre les signaux de négociation plus fiables.

Analyse des avantages

  • Analyse des tendances des prix sur plusieurs axes temporels pour filtrer les fausses signaux
  • Les paramètres sont faciles à optimiser et peuvent s’adapter à différents cycles
  • Utilisable dans de nombreuses variétés, telles que les actions, les indices et les devises étrangères.

Analyse des risques

  • Le retard dans le calcul des indices à grande périodicité pourrait laisser passer des opportunités de courtes lignes
  • Le risque de perte en cas d’échec
  • PARAMETERS Modifications mineures à la fin de l’étape pour optimiser le stop-loss

Direction d’optimisation

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

  1. Optimisation des paramètres cycliques des moyennes mobiles pour s’adapter à plus de cycles de marché
  2. Ajout de filtres sur d’autres indicateurs techniques, tels que le RSI pour juger de la survente
  3. Ajout d’un mécanisme d’arrêt des pertes, avec référence à l’indicateur ATR pour définir la distance d’arrêt des pertes
  4. Extensible à d’autres variétés comme les futures, paramètres d’optimisation

Résumer

La stratégie de négociation croisée de MACD sur plusieurs axes de temps est clairement définie. Elle permet de déterminer la tendance des prix à travers des moyennes mobiles sur plusieurs cycles et de générer des signaux de négociation en cas de revirement significatif des prix.

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

//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________      .__                   _________               .__  __         .__   
// \__    ___/____  |  |    ____   ____   \_   ___ \_____  ______ |__|/  |______  |  |  
//   |    |  \__  \ |  |   / ___\ /  _ \  /    \  \/\__  \ \____ \|  \   __\__  \ |  |  
//   |    |   / __ \|  |__/ /_/  >  <_> ) \     \____/ __ \|  |_> >  ||  |  / __ \|  |__
//   |____|  (____  /____/\___  / \____/   \______  (____  /   __/|__||__| (____  /____/
//                \/     /_____/                  \/     \/|__|                 \/      
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//

/// INPUTS START ///

//tradeSize = input(title="Shares Per Trade",  defval=2500, step=1)
WMALength = input(title="WMA Length",  defval=25, step=1)
EMA1Length = input(title="EMA1 Length",  defval=50, step=1)
EMA2Length = input(title="EMA2 Length",  defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)

/// INPUTS END ///

/// ALGORITHM START ///

/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)

/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2

aClose = close

/// Crossover signal system

/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false

/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false

//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)


/// ALGO ORDER CONDITIONS START ///

pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ?  true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen

//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS

//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose

/// ALGO ORDER CONDITIONS END ///

/// ALGORITHM END ///

/// DEFINE PLOTS ///

plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)

/// PLOTS END ///

/// ORDER BLOCK ///

    //strategy.entry("My Long Entry Id", strategy.long)

/// OPENING ORDERS START ///
if(pBuyToOpen) 
    strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen) 
    strategy.entry("STO", strategy.short, comment="STO")

/// OPENING ORDERS END ///

/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///

/// END ORDER BLOCK ///

// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///