Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Új gyertyák azonosítása › Válasz erre: Új gyertyák azonosítása
Köszönöm a tanácsokat! A Sleep() és a RefreshRates()-t kifogom próbálni meg lekezelem ezt az iTime 0-t.
Mint írtam az hogy backtesztnél jól működjön jelen esetben nem szempont, de jó, hogy felhívtad rá a figyelmem.
A tömböket kifejezetten kedvelem. :)
Viszont ez a NextRun nekem nem evidens.
Mondjuk H1 idősíkon vagyunk. (Most tekintsünk el a többi idősík vizsgálatától) Nyugodt periódus van és a Time[0] értéke pl. 05:00:25 lesz – merthogy a fenti példánál maradva az első 25mp-ben nem történik semmi – nem jön tick.
A NextRun_H1 értékét ugyebár így számolod:
NextRun_H1 = int(Time[0] + PERIOD_H1 * 60);
Ez esetben a NextRun_H1 értéke 06:00:25 lesz.
(Ha mondjuk H1-es gyertyák közötti Gap-et szeretnék elkapni ezt így nem lehetne.)
Tehát egy óra múlva abban az első 25mp-ben sok minden történhet.
Avagy úgyis mondhatnám, hogy egy múltbeli adatból származtatod egy jövőbeli futtatás időpontját.
Amivel nincs is gond ha csak az a feladat, hogy időzítve fusson egy-egy funkció és nem pontosan egy esemény bekövetkeztekor – új gyertya képződésekor.
Ha viszont nem fontos az esemény hanem csak az időzítés akkor meg miért ne így csinálnám:
static int NextRun_H1=0;
OnInit()
{
NextRun_H1=Hour();
}
OnTick()
{
if (NextRun_H1 != Hour())
{
RunThis();
NextRun_H1=Hour();
}
}