
Cette stratégie utilise un système de moyenne mobile double pour le jugement des tendances et les décisions de trading, et identifie le début, la continuation ou la fin des tendances du marché grâce à la relation de position relative entre la moyenne mobile rapide et la moyenne mobile lente à un moment précis. La stratégie vérifie la relation de position entre l’EMA rapide et l’EMA lente à une heure fixe chaque jour, établit une position longue lorsque la ligne rapide est au-dessus de la ligne lente et établit une position courte lorsque la ligne rapide est en dessous de la ligne lente, réalisant ainsi un trading de suivi des tendances.
Le cœur de la stratégie consiste à émettre un jugement de tendance sur la base de deux moyennes mobiles exponentielles (EMA) de périodes différentes. L’EMA rapide (la période par défaut est de 10) est plus sensible aux variations de prix et peut capturer les tendances du marché plus rapidement ; l’EMA lente (la période par défaut est de 50) reflète les tendances à plus long terme. La stratégie vérifie la relation positionnelle des deux moyennes mobiles à une heure spécifiée chaque jour de négociation (la valeur par défaut est 9h00), détermine la direction de la tendance du marché et négocie en fonction du signal de croisement de la moyenne mobile. Lorsque l’EMA rapide croise au-dessus de l’EMA lente, cela indique que la dynamique haussière à court terme a augmenté et qu’il est temps d’entrer sur le marché pour aller longtemps ; lorsque l’EMA rapide croise en dessous de l’EMA lente, cela indique que l’EMA à court terme a augmenté et qu’il est temps d’entrer sur le marché pour aller longtemps. La dynamique à la baisse à terme s’est accrue et il est temps d’entrer sur le marché pour vendre à découvert.
Cette stratégie réalise un système de trading de suivi des tendances simple et efficace en combinant un système de moyenne mobile double rapide et lent avec un mécanisme de vérification à temps fixe. Les avantages de cette stratégie sont une logique claire et un degré élevé d’automatisation, mais elle présente également des limites telles que le décalage de la moyenne mobile et le temps d’entrée fixe. Il reste encore beaucoup à faire pour améliorer la stratégie en introduisant des indicateurs techniques supplémentaires, en optimisant les mécanismes de sélection des paramètres et en augmentant les mesures de contrôle des risques. Dans l’ensemble, il s’agit d’un cadre stratégique de base ayant une valeur pratique, qui peut être encore amélioré et optimisé en fonction des besoins spécifiques.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true)
//------------------------------------------------------------------------------
// Inputs
//------------------------------------------------------------------------------
fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period
slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period
checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check
checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check
//------------------------------------------------------------------------------
// EMA Calculation
//------------------------------------------------------------------------------
fastEMA = ta.ema(close, fastEmaLength)
slowEMA = ta.ema(close, slowEmaLength)
//------------------------------------------------------------------------------
// Time Check
//------------------------------------------------------------------------------
// Get the current bar's time in the exchange's timezone
currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute)
// Check if the bar's time equals or passes the daily check time
isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance
//------------------------------------------------------------------------------
// Entry Conditions
//------------------------------------------------------------------------------
// Buy if Fast EMA is above Slow EMA at the specified time
buyCondition = isCheckTime and fastEMA > slowEMA
// Sell if Fast EMA is below Slow EMA at the specified time
sellCondition = isCheckTime and fastEMA < slowEMA
//------------------------------------------------------------------------------
// Strategy Execution
//------------------------------------------------------------------------------
// Enter Long
if buyCondition
strategy.entry("Long", strategy.long)
// Enter Short
if sellCondition
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------------
// Plot EMAs
//------------------------------------------------------------------------------
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")