Estratégia de compra de retração de cruzamento de média móvel dupla CCI+

CCI MA
Data de criação: 2024-05-24 17:45:49 última modificação: 2024-05-24 17:45:49
cópia: 3 Cliques: 680
1
focar em
1617
Seguidores

Estratégia de compra de retração de cruzamento de média móvel dupla CCI+

Visão geral

A estratégia de compra e venda de retorno de retorno de dupla linha de equilíbrio CCI + é uma estratégia de negociação quantitativa que utiliza o indicador de tendência ((CCI) e o sinal de cruzamento de dupla linha de equilíbrio. A estratégia, após a formação de um furco de dupla linha de equilíbrio, espera que o preço retroceda para perto da linha rápida e, ao mesmo tempo, o indicador de CCI seja vendido.

Princípio da estratégia

  1. Calcule o indicador CCI, com base nos parâmetros CCI definidos pelo usuário (dados de origem, período, tipo de média móvel, limiar de superaquecimento) para calcular o valor atual do CCI.
  2. Para julgar o CCI sobre-compra e sobre-venda, quando o CCI é maior do que o limiar de sobrecompra, a cor de fundo é vermelho, quando é menor do que o limiar de sobrevenda, a cor de fundo é verde.
  3. Calcule a média rápida e lenta, com base nos parâmetros de média rápida e lenta definidos pelo usuário (data-fonte, período, tipo de média móvel) e calcule o valor da média rápida e lenta atual.
  4. Para julgar a forca de ouro, quando a linha rápida atravessa a linha lenta para formar a forca de ouro, o sinal de múltiplas cabeças é desenhado, e quando a linha rápida atravessa a linha lenta para formar a forca de morte, o sinal de cabeças vazias é desenhado.
  5. Tomar decisões de transação:
    • Entrada múltipla: quando a linha rápida está acima da linha lenta, e o preço de fechamento da linha K anterior está abaixo da linha rápida, a linha K atual é a linha do lado esquerdo, e a CCI é menor do que o limiar de oversold para comprar e abrir uma posição de compra
    • Entrada em branco: quando a linha rápida está abaixo da linha lenta e o preço de fechamento da linha K anterior está acima da linha rápida, a linha K atual é negativa e a CCI é maior do que a barreira de sobrecompra para vender uma posição em aberto

Vantagens estratégicas

  1. Acompanhamento de tendências: para melhor acompanhar as tendências do mercado, é necessário avaliar a direção das tendências através de sinais de cruzamento de duas linhas equiláreas.
  2. Entradas de contra-balanço: espera que o preço retroceda após a tendência ser estabelecida e comprar ou vender, para obter um preço de entrada relativamente melhor, aumentando a relação risco-receita.
  3. Redução de falsos sinais: Combinando o indicador CCI com o sinal de cruzamento de linha média, pode reduzir efetivamente os falsos sinais produzidos por um único indicador.
  4. Parâmetros flexíveis: O usuário pode ajustar os parâmetros CCI e mediana de acordo com suas preferências para otimizar o desempenho da estratégia.

Risco estratégico

  1. Risco de mercado em choque: Em mercados em choque, o uso frequente de forcas de ouro pode levar a uma estratégia que gera mais perdas.
  2. Risco de parâmetros: a configuração inadequada de parâmetros pode levar a um fraco desempenho da estratégia, necessitando de um bom feedback e análise de combinações ótimas de parâmetros em diferentes condições de mercado.
  3. Risco de tendência: quando a tendência do mercado se inverte, a estratégia pode atrasar a saída e assumir um maior risco de retirada.

Direção de otimização da estratégia

  1. Introdução de gerenciamento de posições, ajustando dinamicamente as posições de cada transação de acordo com a intensidade e a volatilidade das tendências atuais do mercado para melhor controlar o risco.
  2. Otimizar as condições de entrada, como adicionar indicadores de volume de transação ou outros indicadores auxiliares de julgamento, para aumentar a confiabilidade do sinal de entrada.
  3. Optimizar as condições de saída, como a configuração de stop loss móvel ou stop loss de tempo, reduzindo o máximo de perdas em uma única transação.
  4. Optimizar os parâmetros para diferentes mercados e variedades, aumentando a adaptabilidade e a robustez das estratégias.

Resumir

A estratégia de compra e venda de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de retorno de

Código-fonte da estratégia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)


ma(source, length, type) =>
  type == "SMA" ? ta.sma(source[1], length) :
  type == "EMA" ? ta.ema(source[1], length) :
  type == "SMMA (RMA)" ? ta.rma(source[1], length) :
  type == "WMA" ? ta.wma(source[1], length) :
  type == "VWMA" ? ta.vwma(source[1], length) :
  na

//CCI settings
cci_coloring  = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length    = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type   = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce    = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))

bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")

//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")

fastma_type   = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color  = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")

slowma_type   = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color  = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")

bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)

// // strategy
// if bullish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)

// else if bearish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
    strategy.entry("Long", strategy.long)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
    //     label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)

if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
    strategy.entry("Short", strategy.short)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
    //     label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)