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
IsNewBar - biblioteca para MetaTrader 5
- Visualizações:
- 3624
- Avaliação:
- Publicado:
- 2014.01.14 12:55
- Atualizado:
- 2016.11.22 07:34
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
A classe СIsNewBar é necessária para que os Expert Advisors trabalhem de forma eficiente, fazendo os cálculos no momento em que uma nova barra aparece.
Geralmente a função IsNewBar() é usada para essa finalidade, em vez de sua classe. Mas tal função contém uma variável estática e, portanto, não podemos usar várias chamadas desta função. Para ser capaz de reutilizar tais função repetidamente no código do Expert Advisor, seria muito mais fácil torná-la um membro de classe. Neste casso, é possível realizá-lo mediante o uso de IsNewBar.mqh.
O código da biblioteca deve ser incluído no conteúdo global do arquivo utilizando a diretiva #include:
#include <IsNewBar.mqh>
Então, o número necessário de variáveis de classe СIsNewBar devem ser declarados no bloco OnTick() do Expert Advisor:
static CIsNewBar NB1,NB2;
Após isso, podemos fazer as devidas chamadas nas funções IsNewBar():
bool IsNewBar(string symbol, // símbolo do par de moeda ENUM_TIMEFRAMES timeframe)// cálculo do tempo gráfico
no código do Expert Advisor:
if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // checando se há uma nova barra { /* Aqui está o primeiro sinal de negociação contido no bloco de código */ }
Aqui está um possível exemplo do código que inclui a classe СIsNewBar dentro função OnTick():
//+------------------------------------------------------------------+ //| Função Tick do Expert | //+------------------------------------------------------------------+ void OnTick() { //--- double iClose1[1],iClose2[1]; //--- declaração das variáveis estáticas static bool Recount1=true,Recount2=true; static CIsNewBar NB1,NB2; //+----------------------------------------------+ //| Detectando os sinais de entrada no mercado | //+----------------------------------------------+ if(NB1.IsNewBar(Symbol(),PERIOD_D1) || Recount1) // verificando se há uma nova barra { Recount1=false; //--- copiando o novo dado para o array if(CopyClose(Symbol(),PERIOD_D1,1,1,iClose1)<=0) {Recount1=true; return;} /* Aqui está o primeiro sinal de negociação contido no bloco de código * } if(NB2.IsNewBar(Symbol(),PERIOD_H4) || Recount2) // verificando se há uma nova barra { Recount2=false; //--- copiando o novo dado para o array if(CopyClose(Symbol(),PERIOD_H4,1,1,iClose2)<=0) {Recount2=true; return; /* Aqui está o segundo sinal de negociação contido no bloco de código */ }
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/768
Este indicador exibe a força e a direção da tendência.
Fx10Indicador de sinal do tipo semáforo baseado em 5 indicadores técnicos: LWMA, SMA, RSI, Estocástico e MACD.
Um termômetro de volatilidade com indicação na forma de uma nuvem colorida.
i-Fractals-sigIndicador que fornece sinais de entrada no mercado utilizando fractais.