Cette stratégie utilise la croix d'or et la croix de la mort des lignes EMA doubles pour déterminer le moment d'entrée et de sortie. Plus précisément, lorsque la ligne EMA rapide traverse au-dessus de la ligne EMA lente depuis le bas, un signal de croix d'or est généré pour une entrée longue. Lorsque la ligne EMA rapide traverse au-dessous de la ligne EMA lente depuis le haut, un signal de croix de la mort est généré pour une entrée courte. Cette stratégie est simple et facile à mettre en œuvre et est une stratégie de trading très courante.
Le code de base de cette stratégie est le suivant:
fast = input(25, title="Fast")
slow = input(75, title="Slow")
matype1=ema(source, fast)
matype2=ema(source, slow)
longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Cette stratégie définit d'abord deux lignes EMA, avec la période EMA rapide comme 25 et la période EMA lente comme 75. Elle calcule ensuite les valeurs des deux lignes EMA. Lorsque la EMA rapide traverse au-dessus de la EMA lente, la longCondition devient vraie. Lorsque la EMA rapide traverse au-dessous de la EMA lente, la shortCondition devient vraie. Lorsque les conditions correspondantes sont vraies, elle devient longue ou courte.
Cette stratégie utilise la fonction de lissage de l'EMA pour filtrer le bruit du marché, tout en étant capable de capturer rapidement les changements de tendance.
Les avantages de cette stratégie sont les suivants:
La logique est simple et intuitive, facile à comprendre et à mettre en œuvre.
L'EMA atténue les fluctuations du marché et filtre efficacement les faux signaux.
La croix d'or et la croix de la mort sont des signaux commerciaux puissants pour contrôler le risque.
Les périodes EMA flexibles s'adaptent à différents environnements de marché.
Facile à combiner avec d'autres indicateurs techniques.
Les paramètres EMA peuvent être optimisés pour de meilleurs résultats.
Les risques de cette stratégie comprennent:
Des signaux inefficaces fréquents sur les marchés à fourchette, l'EMA se croisant fréquemment.
Le retard de l'EMA peut faire perdre des opportunités à court terme.
Le crossover de l'EMA à lui seul ne peut pas identifier un renversement de tendance, ce qui limite le potentiel de profit.
Les périodes EMA fixes ne peuvent pas s'adapter aux changements du marché.
Cela nécessite un capital important, sinon le risque augmente.
Il faut un stop loss strict, sinon une seule perte peut être énorme.
La stratégie peut être optimisée dans les aspects suivants:
Optimiser les périodes d'EMA pour les différentes conditions du marché.
Ajoutez d'autres filtres comme le MACD, les bandes de Bollinger pour améliorer la qualité du signal.
Ajoutez des indicateurs de jugement de tendance tels que ATR, ADX pour réduire les transactions inefficaces.
Incorporer une analyse sur plusieurs périodes pour déterminer la direction de la tendance.
Utilisez l'apprentissage automatique pour optimiser dynamiquement les périodes EMA.
Optimiser la taille des positions pour contrôler le risque.
Optimiser les stratégies de stop loss pour limiter les pertes uniques.
Cette stratégie utilise des signaux de négociation à double EMA (croix d'or et croix de la mort), formant une stratégie de suivi de tendance classique. Elle est simple et facile à mettre en œuvre, et peut être combinée avec d'autres indicateurs, ce qui convient aux investisseurs avec des exigences relativement faibles sur le jugement de tendance. Mais elle comporte également des limites de profit et des risques, nécessitant des optimisations appropriées pour différents environnements de marché. Dans l'ensemble, elle fournit une excellente base pour le développement de la stratégie et une recherche approfondie.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 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/ // Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars //@version=4 strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true) matype = input("ema") hidema = input(false) sourcetype = input(close, title="Source Type") source=close // STEP 1: // Configure backtest start date with inputs startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=231) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100) // STEP 2: // See if this bar's time happened on/after start date afterStartDate = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) fast = input(25, title="Fast") slow = input(75, title="Slow") matype1=ema(source, fast) matype2=ema(source, slow) signalcolor = source > matype2 ? color.blue : color.red signal = cross(fast, slow) hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA") yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA") //kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme") longCondition = crossover(matype1, matype2) if (afterStartDate and longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(matype1, matype2) if (afterStartDate and shortCondition) strategy.entry("Short", strategy.short) //-------------------------------------------------------- //volume based color bars length=input(21, "length", minval=1) avrg=sma(volume,length) vold1 = volume > avrg*1.5 and close<open vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open vold3 = volume < avrg *0.5 and close<open volu1 = volume > avrg*1.5 and close>open volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open volu3 = volume< avrg*0.5 and close>open cold1=#800000 cold2=#FF0000 cold3=color.orange colu1=#006400 colu2=color.lime colu3=#7FFFD4 ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na barcolor(ac)