Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Publicado por:
- [Excluído]
- Visualizações:
- 18550
- Avaliação:
- 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

Indicador VWAP simples.

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

This library simplify to create and manipulate objects.

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