40 lines
1.5 KiB
MQL5
40 lines
1.5 KiB
MQL5
|
#property copyright "Direito Autoral \x00A9 2022, Fernando M. I. Carreiro, Todos os direitos reservados"
|
||
|
#property link "https://www.mql5.com/en/users/FMIC"
|
||
|
#property version "1.001"
|
||
|
#property strict
|
||
|
|
||
|
// Manipulador padrão de evento de tick
|
||
|
void OnTick()
|
||
|
{
|
||
|
// Verifiquar a existencia duma nova barra (compatível com MQL4 e MQL5).
|
||
|
static datetime dtBarraCorrente = WRONG_VALUE;
|
||
|
datetime dtBarraPrecedente = dtBarraCorrente;
|
||
|
dtBarraCorrente = iTime( _Symbol, _Period, 0 );
|
||
|
bool bEventoBarraNova = ( dtBarraCorrente != dtBarraPrecedente );
|
||
|
|
||
|
// Reajir ao evento duma barra nova e lidar com a situação.
|
||
|
if( bEventoBarraNova )
|
||
|
{
|
||
|
// Detectar se este é o primeiro tick recebido e lidar com a situação.
|
||
|
/* Por exemplo, quando é aplicado pela primeira vez ao gráfico e
|
||
|
a barra está algures a meio do seu progresso e
|
||
|
não é realmente o início de uma nova barra. */
|
||
|
if( dtBarraPrecedente == WRONG_VALUE )
|
||
|
{
|
||
|
// Fazer algo no primeiro tick ou no meio duma barra ...
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// Fazer algo quando uma barra normal surgir ...
|
||
|
};
|
||
|
|
||
|
// Fazer algo independente da condição anterior ...
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// Fazer outra coisa ...
|
||
|
};
|
||
|
|
||
|
// Fazer outras coisas ...
|
||
|
};
|