Constante standard, enumerări și structuri

Puteți specifica în mod independent în indicatorul personalizat valoarea proprie goală a indicatorului, la care nu ar trebui să trageți din diagramă. Pentru aceasta, utilizați funcția PlotIndexSetDouble () cu modificatorul PLOT_EMPTY_VALUE.

O constantă NULL poate fi atribuită unei variabile de orice tip simplu sau unui indicator la un obiect struct sau clasă. Alocarea NULL unei variabile de șir înseamnă complet dezinaliza această variabilă.

Conținutul constant WRONG_VALUE este destinat acelor cazuri în care doriți să returnați o valoare de enumerare. și aceasta trebuie să fie o valoare nevalidă. De exemplu, trebuie să spuneți că valoarea returnată este valoarea acestei enumerări. Să luăm ca exemplu o anumită funcție CheckLineStyle (), care returnează stilul liniei pentru obiectul specificat prin nume. Dacă rezultatul este adevărat când stilul este solicitat de către funcția ObjectGetInteger (), valoarea ENUM_LINE_STYLE va fi returnată. altfel, WRONG_VALUE este returnat.

void OnStart ()
<
dacă (CheckLineStyle ("MyChartObject") == WRONG_VALUE)
printf ("Obținerea stilului liniei de eroare.");
>
// + ----------------------------------------------- ------------------- +
// | returnează un stil de linie pentru un obiect numit de |
// + ----------------------------------------------- ------------------- +
ENUM_LINE_STYLE CheckLineStyle (nume șir)
<
stil lung;
// ---
dacă (ObjectGetInteger (0, nume, OBJPROP_STYLE, 0, stil))
retur (stil (ENUM_LINE_STYLE));
altfel
retur (WRONG_VALUE);
>

Constanta WHOLE_ARRAY este destinată funcțiilor care necesită specificarea numărului de elemente din matricele de procesat:

Dacă doriți să specificați că doriți să procesați toate valorile de matrice din poziția specificată până la final, trebuie doar să specificați valoarea WHOLE_ARRAY.

Consola constantă IS_PROFILE_MODE vă permite să modificați funcționarea programului pentru a colecta corect informațiile în modul de profilare. Profilarea vă permite să măsurați timpul de execuție al fragmentelor individuale de program (de obicei funcții) și, de asemenea, să calculați numărul de astfel de apeluri. Pentru a obține în mod corect informații despre timpul de execuție în modul de profilare, puteți dezactiva apelurile la funcția Sleep () ca în exemplu:

// --- Somnul poate afecta puternic (denatura) rezultatul profilării
dacă (! IS_PROFILE_MODE) Sleep (100); // dezactivați apelul la Sleep () în modul de profilare

Valoarea constantei IS_PROFILE_MODE este setată de compilator la momentul compilării și este setată la zero în modul normal. Când programul este pornit în modul de profilare, se face o compilare specială și în acest caz o altă valoare decât zero este înlocuită de IS_PROFILE_MODE.

Constatarea IS_DEBUG_MODE este utilă în cazurile în care este necesară modificarea ușoară a funcționării programului mql5 în modul de depanare. De exemplu, în modul de depanare, este posibil să fie necesar să se emită informații suplimentare de depanare în jurnalul terminalului sau să se creeze obiecte grafice auxiliare pe grafic.

Următorul exemplu creează un obiect Label și specifică descrierea și culoarea sa, în funcție de modul în care rulează scriptul. Pentru a porni scriptul în modul de depanare din MetaEditor, apăsați F5. Dacă rulați scriptul din fereastra navigatorului din terminal, culoarea și textul obiectului Label vor fi diferite.

Pentru a specifica metoda de conversie a datelor (criptarea și calculul hashes), enumerarea ENUM_CRYPT_METHOD este folosită în funcțiile CryptEncode () și CryptDecode ().