Cette stratégie génère des signaux de trading en calculant les croisements entre la moyenne mobile exponentielle à 5 jours (EMA) et la moyenne mobile simple à 20 jours (SMA).
Les moyennes mobiles exponentielles doubles sont des indicateurs techniques largement utilisés. L'EMA à 5 jours représente les tendances de prix récentes tandis que l'EMA à 20 jours montre les mouvements de prix à moyen terme. Lorsque l'AMA à court terme dépasse l'AMA à long terme, cela indique une rupture à la hausse et une tendance haussière des prix, indiquant un bon moment pour aller long. Au contraire, le croisement à la baisse implique un renversement potentiel des prix et devrait envisager de quitter les positions.
Cette stratégie définit l'EMA à 5 jours et la SMA à 20 jours comme signaux de trading. Elle devient longue lorsque l'EMA à 5 jours traverse la SMA à 20 jours et ferme la position lorsque le changement de prix atteint 5% ou -5%. Elle vérifie également si le TII est positif et en hausse pour confirmer la fiabilité du signal.
Les étapes détaillées sont les suivantes:
Cette stratégie utilise le croisement d'or entre deux MA et présente les avantages suivants:
En général, cette stratégie a des règles simples, utilise des indicateurs techniques matures tels que les croisements MA et dispose de mesures de contrôle des risques relativement complètes.
Cette stratégie comporte encore certains risques:
Les améliorations proposées sont les suivantes:
Il y a donc place à d'autres optimisations.
Cette stratégie peut être améliorée par les aspects suivants:
Optimiser les paramètres MA en testant les combinaisons EMA et SMA plus courte/plus longue afin de trouver la paire optimale.
Ajoutez d'autres indicateurs comme MACD, KDJ pour filtrer les faux signaux.
Utiliser des algorithmes d'apprentissage automatique pour trouver de meilleurs paramètres grâce à la modélisation et aux statistiques des données historiques.
Pour mieux contrôler les risques, définir un stop loss/take profit dynamique basé sur la volatilité du marché et les caractéristiques de l'instrument.
Élargissez cette stratégie à d'autres produits comme le forex, les crypto-monnaies.
Grâce aux améliorations susmentionnées, la stabilité et la rentabilité de cette stratégie peuvent être considérablement améliorées.
En conclusion, il s'agit d'une stratégie de croisement double MA facile à comprendre et à mettre en œuvre. Elle tire parti des signaux MA et utilise TII pour filtrer les erreurs. Elle contrôle les risques par stop loss/take profit. La stratégie convient aux débutants pour apprendre et a également une grande marge d'optimisation. Des améliorations supplémentaires sur le réglage des paramètres, le filtrage des signaux et le stop loss dynamique peuvent la transformer en une stratégie de trading pratique et puissante.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true) // Define the moving averages ema5 = ta.ema(close, 5) sma20 = ta.sma(close, 20) smaVolume10 = ta.sma(volume, 50) majorLength = input(60, title="Major Length") minorLength = input(30, title="Minor Length") src = input(close, title="Source") smaValue = ta.sma(src, majorLength) positiveSum = 0.0 negativeSum = 0.0 for i = 0 to minorLength - 1 price = na(src[i]) ? 0 : src[i] avg = na(smaValue[i]) ? 0 : smaValue[i] positiveSum := positiveSum + (price > avg ? price - avg : 0) negativeSum := negativeSum + (price > avg ? 0 : avg - price) tii = 100 * positiveSum / (positiveSum + negativeSum) // Buy condition: 5 EMA crosses above 20 SMA buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1] //and volume > smaVolume10 // // Track entry price var entryPrice = 0.0 if (buyCondition) entryPrice := close // Calculate percentage change from entry price priceChange = close / entryPrice - 1 // Plotting the moving averages on the chart plot(ema5, color=color.blue, title="5 EMA") plot(sma20, color=color.red, title="20 SMA") // Highlighting buy signals and exit signals on the chart // plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy") // Strategy entry and exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.opentrades > 0) if (priceChange >= 0.05 or priceChange <= -0.05) strategy.close("Buy")