
Esta estratégia é um sistema de negociação de acompanhamento de tendências baseado no indicador de choque de dinamicidade do Chade (CMO). Esta estratégia procura oportunidades de compra em áreas de sobrevenda, buscando oportunidades de venda em áreas de sobrevenda, e gerencia o risco em combinação com restrições de tempo de posse. Esta abordagem permite capturar oportunidades de reversão de preços e evitar negociações frequentes em mercados de turbulência.
O núcleo da estratégia é o uso do indicador CMO para medir a dinâmica do mercado. O CMO gera um valor do indicador que oscila entre 100 e 100 por meio da relação entre o diferencial do aumento e da queda do valor total. Quando o CMO está abaixo de 50, o sistema emite vários sinais que indicam que o mercado está em um estado de sobrevenda.
Esta é uma estratégia de acompanhamento de tendências baseada em dinâmicas para capturar oportunidades de supercompra e supervenda no mercado por meio de indicadores de CMO. A estratégia é projetada de forma razoável, com regras de negociação claras e mecanismos de controle de risco. Embora existam alguns riscos inerentes, a estabilidade e a lucratividade da estratégia podem ser melhoradas com otimização.
/*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)