Estratégia do oscilador Chaikin

Autora:ChaoZhang, Data: 2023-10-12 16:41:54
Tags:

Resumo

A estratégia do Oscilador Chaikin usa o indicador do Oscilador Chaikin para julgar o fluxo de capital no mercado e capturar mudanças de tendência.

Estratégia lógica

Esta estratégia baseia-se no indicador Chaikin Oscillator, que melhora o indicador Williams de acumulação/distribuição usando a média dos preços altos e baixos em vez do preço de abertura para resolver o problema do preço de abertura em falta.

Oscilador Chaikin = EMA rápida do índice de acumulação/distribuição - EMA lenta do índice de acumulação/distribuição

Quando o índice de acumulação/distribuição é calculado como:

Indice de acumulação/distribuição = (fechado - aberto) / (alto - baixo) * Volume

Uma vez que o preço de abertura não está presente, este é calculado como:

Indice de acumulação/distribuição = (preto - (alto + baixo) /2) / (alto - baixo) * Volume

O indicador usa a diferença entre as EMAs rápidas e lentas do índice como o Oscilador Chaikin.

A lógica específica é:

  1. Calcular o índice de acumulação/distribuição
  2. Calcular as EMAs rápidas e lentas
  3. Tome a diferença como o oscilador de Chaikin
  4. Comprar quando o oscilador cruza acima de 0, vender quando cruza abaixo de 0

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Captura o fluxo de capital para determinar a tendência do mercado
  2. Combina médias móveis rápidas e lentas para filtrar falhas
  3. Regras simples e claras de fácil aplicação

Análise de riscos

Alguns riscos desta estratégia são:

  1. O oscilador Chaikin está atrasado, potencialmente faltando pontos de virada da tendência
  2. Requer ajuste de parâmetros para evitar trocas excessivas
  3. Necessidades de stop loss para controlar transacções individuais perdedoras

Os riscos podem ser geridos através da otimização de parâmetros, da combinação com outros indicadores, etc.

Orientações para melhorias

Algumas formas de melhorar esta estratégia:

  1. Otimizar os períodos de EMA rápidos e lentos para equilibrar a frequência e a estabilidade
  2. Adicionar condições de saída como sinais de inversão de tendência
  3. Adicionar filtros como RSI, MACD para confirmar sinais
  4. Incorporar uma estratégia de stop loss para controlar as perdas
  5. Ajustar parâmetros para diferentes produtos para criar estratégias personalizadas

Conclusão

Em geral, a estratégia do oscilador Chaikin é relativamente estável e confiável. Parâmetros de ajuste fino podem equilibrar lucratividade e risco. Adicionar filtros e stop loss pode melhorar ainda mais a robustez. Esta estratégia pode alcançar resultados satisfatórios através de otimizações personalizadas.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/09/2017
//    Indicator plots Money Flow Indicator (Chaikin). This indicator looks 
//    to improve on Larry William's Accumulation Distribution formula that 
//    compared the closing price with the opening price. In the early 1970's, 
//    opening prices for stocks stopped being transmitted by the exchanges. 
//    This made it difficult to calculate Williams' formula. The Chaikin 
//    Oscillator uses the average price of the bar calculated as follows 
//    (High + Low) /2 instead of the Open.
//    The indicator subtracts a 10 period exponential moving average of the 
//    AccumDist function from a 3 period exponential moving average of the 
//    AccumDist function.    
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Money Flow Indicator (Chaikin Oscillator)", shorttitle="MFI")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos = iff(nRes > 0, 1,
	   iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="RMI")

Mais.