Radulovic Attila
Tag
Bejegyzések száma: 653

Nekem valós idejű futtatásnál – első ránézésre – jól működik a kódod, backtesztnél viszont abszolút nem. Ez utóbbi azért lehet, mert a választott idősíknál alacsonyabb idősík adatait nem mutatja a MT4. Ezt vedd figyelembe!

Illetve még amit jó tanácsként mondhatok: ellenőrizd, hogy az iTime visszatérési értéke nulla-e. Ha igen, akkor Sleep(50) és RefreshRates() kell, mert elképzelhető hogy pont abban a pillanatban frissíti a MT4 az adott idősík gyertyaadatait. Ha pedig ebbe M1-en futsz bele, akkor mész újra az inicializációs szakaszba.

Amúgy azt nem értem pontosan, hogy miért jobb tömbökkel szórakozni, amikor 7 nextrunnal nagyon egyszerűen meg lehet oldani a feladatot, a végeredmény pedig pontosan ugyanaz lesz, mint amit elvársz. Számolni idősíkonként egyszer csak akkor kell, amikor új gyertya képződik – a többi esetben az előre kikalkulált NextRun értékhez hasonlítgatod az aktuális brókeridőt.

A megoldásod ugyanúgy viselkedik majd az általad leírt esetben (ha pl. a 10:01-es gyertyában csak 10:01:25-kor jön tick), mint az enyém. Nem kötekszem, csak kíváncsiskodom!