Funkcje własne:   IsNewBar()

Funkcja bool IsNewBar() sprawdza pojawienie nowej świecy. Jeśli na wykresie notowań pojawi się nowa świeca funkcja zwróci true, inaczej false. Ma następujące argumenty:

f_symbol - nazwa instrumentu finansowego. W przypadku _Symbol funkcja będzie analizować ten wykres notowań, gdzie program MQL4 zostanie uruchomiony.
f_timeFrame - przedział czasowy. W przypadku PERIOD_CURRENT funkcja będzie analizować ten wykres notowań, gdzie program MQL4 zostanie uruchomiony.
f_current - warunek uwzględnienia bieżącej świecy. Wartość domyślna = false, tj. w momencie pierwszego uruchomienia funkcji bieżąca świeca nie jest traktowana jako nowa.

f_symbol - nazwa instrumentu finansowego. W przypadku _Symbol funkcja będzie analizować ten wykres notowań, gdzie program MQL4 zostanie uruchomiony.

f_timeFrame - przedział czasowy. W przypadku PERIOD_CURRENT funkcja będzie analizować ten wykres notowań, gdzie program MQL4 zostanie uruchomiony.

f_current - warunek uwzględnienia bieżącej świecy. Wartość domyślna = false, tj. w momencie pierwszego uruchomienia funkcji bieżąca świeca nie jest traktowana jako nowa.

bool IsNewBar(string          f_symbol,        // instrument finansowy
              ENUM_TIMEFRAMES f_timeFrame,     // przedział czasowy
              bool            f_current=false) // bieżąca świeca
  {
//---
   static datetime f_lastBar=0;
   datetime f_bar=iTime(f_symbol,f_timeFrame,0);
//---
   if(f_current==false && f_lastBar==0)
     {
      f_lastBar=f_bar; return false;
     }
//---
   if(f_lastBar!=f_bar)
     {
      f_lastBar=f_bar; return true;
     }
   else return false;
  }

Przykłady stosowania funkcji

1) Sprawdzić pojawienie nowej świecy na tym wykresie notowań, gdzie program MQL4 został uruchomiony:

IsNewBar(_Symbol, PERIOD_CURRENT);

2) Sprawdzić pojawienie nowej świecy dla EURUSD, przedziału czasowego H1 i przy pierwszym uruchomieniu programu MQL4 bieżącą świecę potraktować jako nową:

IsNewBar("EURUSD", PERIOD_H1, true);