
Cette stratégie est un système de trading de suivi de tendance basé sur l’indicateur de choc dynamique du marché boursier tchadien (CMO). La stratégie est basée sur le calcul et l’analyse de la dynamique des prix pour rechercher des opportunités d’achat dans les zones de survente et des opportunités de vente dans les zones de survente, tout en gérant les risques associés à des limites de temps de tenue. Cette méthode permet à la fois de capturer les opportunités de revirement des prix et d’éviter de négocier fréquemment dans des marchés en choc.
Le cœur de la stratégie est d’utiliser l’indicateur CMO pour mesurer la dynamique du marché. Le CMO génère un indice qui oscille entre 100 et 100 en calculant le rapport entre la différence et la somme des hausses et des baisses. Lorsque le CMO est inférieur à 50, ce qui indique que le marché est en survente, le système émet plusieurs signaux.
Il s’agit d’une stratégie de suivi de tendance basée sur la dynamique, qui capture les occasions de survente et de survente du marché grâce aux indicateurs du CMO. La stratégie est conçue de manière rationnelle, avec des règles de négociation et des mécanismes de contrôle des risques clairs. Bien que certains risques inhérents existent, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par l’optimisation.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Chande Momentum Oscillator Strategy", overlay=false)
// Input for the CMO period
cmoPeriod = input.int(9, minval=1, title="CMO Period")
// Calculate price changes
priceChange = ta.change(close)
// Separate positive and negative changes
up = priceChange > 0 ? priceChange : 0
down = priceChange < 0 ? -priceChange : 0
// Calculate the sum of ups and downs using a rolling window
sumUp = ta.sma(up, cmoPeriod) * cmoPeriod
sumDown = ta.sma(down, cmoPeriod) * cmoPeriod
// Calculate the Chande Momentum Oscillator (CMO)
cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown)
// Define the entry and exit conditions
buyCondition = cmo < -50
sellCondition1 = cmo > 50
sellCondition2 = ta.barssince(buyCondition) >= 5
// Track if we are in a long position
var bool inTrade = false
if (buyCondition and not inTrade)
strategy.entry("Long", strategy.long)
inTrade := true
if (sellCondition1 or sellCondition2)
strategy.close("Long")
inTrade := false
// Plot the Chande Momentum Oscillator
plot(cmo, title="Chande Momentum Oscillator", color=color.blue)
hline(-50, "Buy Threshold", color=color.green)
hline(50, "Sell Threshold", color=color.red)