Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Indicadores

Volume Weighted Average Price - VWAP - indicador para MetaTrader 5

Felipe Almeida
Publicado por:
[Excluído]
Visualizações:
16601
Avaliação:
(25)
Publicado:
2020.09.03 03:21
Atualizado:
2020.09.04 00:29
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Essa é uma versão modificada do indicador publicado pelo Felipe Almeida (https://www.mql5.com/en/code/14557) contendo apenas o que é necessário para realizar operações de day trade. Em outras palavras tudo que não era utilizado para realizar o cálculo diário da VWAP foi removido, deixando o código mais simples e com maior performance


As principais diferenças em relação ao código original são:

  • VWAP semanal e mensal removidas
  • O valor da VWAP foi removido do gráfico
  • Estruturas de arrays foram removidas
  • Labels (etiquetas) dos parâmetros de entrada foram criadas

Algumas coisas que eu achei interessante implementar/modificar:

  • O tipo criado PRICE_TYPE  foi substituído pelas constantes default ENUM_APPLIED_PRICE
  • Possibilidade de escolher o tipo de volume REAL / TICK


Recomendo que você use esse indicador em um gráfico de M30 ou menor


No código é possível ver o seguinte comentário de TODO:

71. // The purpose of this IF is to check if the day has changed 72. // TODO: 73. // Create a better way for this 74. if(CreateDateTime(time[i]) != auxTime) { 75. dailyIdx = i; 76. priceWeight = 0; 77. volTotal = 0; 78. } 79. auxTime = CreateDateTime(time[i]);

Esse IF verifica se é um 'novo dia' e reseta o valor da VWAP, exemplo:

caso: (D'2020.08.22 != D'2020.08.22) mantém a contagem de VWAP, caso: (D'2020.08.22 != D'2020.08.21) reseta a contagem da VWAP, ele utiliza a seguinte estrutura:

23.     //+------------------------------------------------------------------+ 24.     //| TODO: Create a better way for check if it's a new day            | 25.     //+------------------------------------------------------------------+ 26.     datetime CreateDateTime(datetime time = D'2000.01.01 00:00:00') { 27.             datetime    newTime; 28.             MqlDateTime tstruct; 29. 30.         TimeToStruct(time, tstruct); 31.             tstruct.hour = 0; 32.             tstruct.min  = 0; 33.             tstruct.sec  = 0; 34.             newTime = (StructToTime(tstruct)); 35. 36.            return newTime; 37. }

    O propósito desse código acima é sempre manter H M S em 0 e retornar algo como D'2020.08.22 00:00:00.

    Eu tentei implementar uma outra maneira de realizar essa verificação mas não ficou muito performático :( ficou um pouco confuso e eu tive medo que as pessoas não entendessem o código. Se você tiver uma sugestão para melhorar isso, por favor me avise :)


    Espero que você goste desse indicador e o ajude


    Parâmetros


    Exemplo


    Simple VWAP Simple VWAP

    Indicador VWAP simples.

    Classe para controlar horários de negociação Classe para controlar horários de negociação

    Essa classe foi projetada com o intuito de ajudar nos horários de negociação, de uma forma simples e centralizada.

    Simplified objects manipulation Simplified objects manipulation

    This library simplify to create and manipulate objects.

    Salvar Agressões em CSV Salvar Agressões em CSV

    Captura de dados de agressão, salva em csv, e plota em forma de histograma.