Roden
Tag
Bejegyzések száma: 52

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();
 }
}