
A ideia central desta estratégia é usar o indicador CCI para determinar a direção da tendência do mercado, bem como o indicador EMA para o tratamento suave do CCI, para a realização de negociações de seguimento de tendência. Faça mais quando o CCI atravessa o ponto de compra, e faça um vazio quando o CCI atravessa o ponto de venda, para atingir o objetivo de seguir a tendência do mercado.
Calcule o índice CCI. O índice CCI é usado para determinar se o preço atual da ação está sobrecomprado ou sobrevendido com base no desvio do preço de fechamento do dia em relação à média dos últimos 20 dias. A fórmula é: ((typical price - 20 days SMA) / (0.015 * 20 days standard price difference) }}.
O CCI é suavizado por EMA, obtendo uma curva CCI-EMA para reduzir a oscilação do CCI e tornar o sinal mais claro.
Configure os pontos de compra e venda do CCI. Quando o CCI-EMA atravessa o ponto de compra, faça mais; Quando o CCI-EMA atravessa o ponto de venda, faça vazio.
O posicionamento é mantido até que o CCI-EMA toque novamente o ponto de compra ou venda e o posicionamento seja liquidado.
Usando o CCI para determinar a direção da tendência do mercado, em combinação com o filtro de falsos sinais da EMA, pode-se acompanhar eficazmente a tendência do mercado.
O indicador CCI é extremamente sensível ao preço e pode capturar rapidamente a reviravolta da tendência. O indicador EMA reduz a taxa de falsidade. Usando ambos em conjunto, é possível aproveitar as oportunidades no início da tendência.
A adoção de estratégias de acompanhamento de tendências pode minimizar o número de transações, reduzir os custos de transação e reduzir a perda de pontos de deslizamento.
A estratégia de retrospecção é mais eficaz e tem uma certa viabilidade no mercado.
O índice CCI tem problemas de hipersensibilidade à curva, a EMA não consegue eliminar completamente todos os falsos sinais e ainda existe um certo risco de desinformação.
A tendência pura segue a estratégia e é suscetível a perdas quando a tendência se agita ou se reverte. Os indicadores de avaliação de tendência devem ser usados de forma adequada.
Uma estratégia de negociação puramente mecânica, que não pode ajustar os parâmetros de forma flexível de acordo com as condições do mercado, apresenta o risco de otimização excessiva.
Os dados de detecção são insuficientes e não podem refletir completamente o desempenho do disco real. Os parâmetros devem ser adequadamente ajustados no disco real e o controle de perda deve ser rigoroso.
Otimizar os parâmetros do CCI para testar a eficácia dos parâmetros de diferentes períodos de comprimento.
Optimizar os parâmetros EMA para encontrar a melhor duração do ciclo EMA.
Teste diferentes combinações de parâmetros de pontos de venda e compra para encontrar o melhor parâmetro.
Combinado com outros indicadores, para determinar a reversão da tendência, estabeleça um ponto de parada para evitar a expansão dos prejuízos.
Adição de uma função de otimização automática de parâmetros, para encontrar automaticamente a combinação de parâmetros mais adequada para diferentes variedades.
Esta estratégia é, em geral, uma estratégia de negociação de tendência mais simples. Utiliza o CCI para determinar a direção da tendência e é sensível às mudanças de preço, em conjunto com a EMA para filtrar e produzir sinais de negociação. A estratégia tem certas vantagens, mas também há alguns riscos a serem observados.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("CCI with EMA Strategy", overlay=false, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.07)
length = input(20, minval=1)
src = input(close, title="Source")
cciSellPoint = input(0, title = 'CCI Sell Point', type = input.integer)
cciBuyPoint = input(0, title = 'CCI Buy Buy Point', type = input.integer)
lengthcci = input(12,"length cci ema", minval=1)
ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
cciema=ema(cci,lengthcci)
plot(cci, "CCI", color=#996A15)
plot(cciSellPoint, title = 'CCI Sell Point', color = color.red, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciBuyPoint, title = 'CCI Buy Point', color = color.green, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciema, title = 'CCI EMA', color = color.green, linewidth = 1, transp = 35)
band1 = hline(100, "Upper Band", color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(-100, "Lower Band", color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=#9C6E1B, title="Background")
startLongTrade= cciema >cciBuyPoint
startShortTrade= cciema <cciSellPoint
//exitLong = cciema <cciSellPoint
//exitShort = cciema >cciBuyPoint
strategy.entry("long",strategy.long, when = startLongTrade )
//strategy.close( "long", when=exitLong)
strategy.entry("short",strategy.short,when=startShortTrade )
//strategy.close("short", when=exitShort)