A estratégia de rastreamento de volatilidade de média móvel dupla integra as ideias das estratégias de rastreamento de volatilidade de média móvel e média móvel. Ao calcular o cruzamento de médias móveis simples (SMAs) com diferentes períodos, ela realiza a cruz de ouro e a cruz morta para julgar tendências. Enquanto isso, combinando as bandas de Bollinger e o índice VIDYA, ele julga as tendências e a volatilidade do mercado, alcançando a identificação de tendências eficazes e a captura eficiente de pontos de virada importantes.
Os principais indicadores desta estratégia incluem a média móvel simples (SMA), as bandas de Bollinger e a média dinâmica do índice variável (VIDYA). A estratégia define uma SMA rápida e uma LMA lenta com períodos diferentes. A cruz de ouro das linhas rápidas e lentas serve como sinal longo, enquanto a cruz da morte serve como sinal de saída. Enquanto isso, monitora a quebra do preço acima ou abaixo das bandas de Bollinger durante um período de detenção. A VIDYA, que incorpora informações de volatilidade, julga a direção e força da tendência atual.
Especificamente, a lógica de sinal longo é acionada quando a SMA rápida cruza a curva LMA lenta e o preço está acima da curva VIDYA, indicando uma expansão de tendência de alta e volatilidade.
A maior vantagem desta estratégia é a combinação de dois indicadores para avaliar as condições de mercado, melhorando a precisão das decisões.
Em resumo, esta estratégia integra informações de tendências, reversão e dimensões de volatilidade.
Embora esta estratégia tenha muitos méritos, ainda existem alguns riscos a tomar em consideração:
Para mitigar os riscos acima referidos, recomenda-se a otimização dos parâmetros, regras de prioridade entre os sinais, controlo do deslizamento e teste de robustez em diferentes ambientes de mercado.
As principais dimensões de otimização encontram-se no ajuste dos parâmetros e na definição da condição do filtro:
A combinação de otimização de parâmetros e refinamento de regras poderia aumentar ainda mais a estabilidade e a rentabilidade.
A estratégia de rastreamento de volatilidade de média móvel dupla utiliza múltiplos indicadores para determinar as condições do mercado, capturando pontos de virada da tendência enquanto monitora situações de flutuação de preços.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true) // Inputs fastMA_period = input(50, title="Fast MA Period") slowMA_period = input(200, title="Slow MA Period") src = input(close, title="Source") lengthBB = input(20, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF']) // Calculate Moving Averages for Golden Cross fastMA = ta.sma(src, fastMA_period) slowMA = ta.sma(src, slowMA_period) bullish_cross = ta.crossover(fastMA, slowMA) bearish_cross = ta.crossunder(fastMA, slowMA) // Progressive Trend Tracker Components (Adjusted for NA assignment issue) Var_Func(src, length) => valpha = 2 / (length + 1) vud1 = src > src[1] ? src - src[1] : 0 vdd1 = src < src[1] ? src[1] - src : 0 vUD = math.sum(vud1, length) vDD = math.sum(vdd1, length) vCMO = (vUD - vDD) / (vUD + vDD) VAR = 0.0 // Adjusted here, assign an initial value VAR := ta.ema(src * math.abs(vCMO), length) VAR VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed // Bollinger Bands for dynamic support and resistance BBandTop = fastMA + mult * ta.stdev(src, lengthBB) BBandBot = fastMA - mult * ta.stdev(src, lengthBB) // Plotting plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") plot(BBandTop, color=color.green, title="Bollinger Band Top") plot(BBandBot, color=color.red, title="Bollinger Band Bottom") plot(VAR, color=color.purple, title="VAR", linewidth=2) // Strategy Logic (Adjusted for strategy use) // Long Entry when bullish cross and close above VAR // Exit when bearish cross or close below VAR if (bullish_cross and close > VAR) strategy.entry("CGC_PTT_Long", strategy.long) if (bearish_cross or close < VAR) strategy.close("CGC_PTT_Long")