Início Indicador técnico Postagem

Como Utilizar a Classe CMFIOnRingBuffer para Calcular o MFI no MetaTrader 5

Anexo
1395.zip (10.22 KB, Baixar 0 vezes)

Se você é trader e está sempre em busca de ferramentas que possam ajudar na análise técnica, a classe CMFIOnRingBuffer pode ser uma excelente adição ao seu arsenal. Neste post, vamos explorar como essa classe permite calcular o Money Flow Index (MFI) utilizando um buffer circular.

Descrição

A classe CMFIOnRingBuffer foi desenvolvida para calcular o indicador MFI seguindo a lógica do buffer circular. Isso garante que você tenha um desempenho otimizado ao trabalhar com dados históricos.

Como Declarar a Classe

class CMFIOnRingBuffer : public CArrayRing

A declaração da classe deve ser feita a partir do arquivo CMFIOnRingBuffer.mqh, que deve estar localizado na pasta IncOnRingBuffer dentro do diretório MQL5\Include\. Junto com a classe, você também precisará de dois arquivos de exemplo que já estão disponíveis nessa pasta.

Métodos da Classe

A classe possui diversos métodos que facilitam a implementação do MFI. Aqui estão alguns dos principais:

//--- método de inicialização:
bool Init(// retorna false se houver erro, true se bem-sucedido
   int period = 14, // o período do MFI
   ENUM_MA_METHOD method = MODE_SMA, // método de suavização
   ENUM_APPLIED_PRICE applied_price = PRICE_TYPICAL, // preço usado na calulação
   ENUM_APPLIED_VOLUME applied_volume = VOLUME_TICK, // volume usado na cálculo
   int size_buffer = 256, // tamanho do buffer circular
   bool as_series = false); // true se for uma série temporal

Exemplo de Uso

Para acessar os dados calculados pelo MFI a partir do buffer circular, você pode usar a classe como mostrado abaixo:

//--- classe com os métodos de cálculo do MFI:
#include <IncOnRingBuffer\CMFIOnRingBuffer.mqh>
CMFIOnRingBuffer mfi;

int OnCalculate(const int rates_total, const int prev_calculated,
        const datetime& time[],
        const double& open[],
        const double& high[],
        const double& low[],
        const double& close[],
        const long& tick_volume[],
        const long& volume[])
  {
     mfi.MainOnArray(rates_total, prev_calculated, open, high, low, close, tick_volume, volume);
     // aqui você pode acessar os dados do MFI

Resultados e Exemplos

Os resultados podem ser visualizados em gráficos, como demonstrado nas imagens abaixo:


Resultado do Test_MFI_OnArrayRB.mq5


Resultado do Test_MFI_OnValueRB.mq5

Conclusão

Integrar a classe CMFIOnRingBuffer no seu código pode aprimorar sua análise técnica, permitindo um cálculo mais eficiente do MFI. Experimente e veja como ele pode fazer a diferença nas suas operações!

Publicações relacionadas

Comentário (0)