A MT4 platform lehetőséget biztosít optimalizációra, azaz több backteszt egymás utáni kombinált futtatására külső beavatkozás nélkül. Fontos tudni azonban, hogy milyen korlátozások vannak érvényben eme speciális tesztelési mód során, amelyek esetlegesen érintik robotjainkat.

Speciális funkciók a visszatesztelés során

  • Néhány beépített függvény kimenet (output) nélkül kerül feldolgozásra. Ezen függvények: Sleep(), Alert(), SendMail(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(), WindowIsVisible().
  • Pozíciókat kizárólag a teszter kiválasztott instrumentumán lehet nyitni. Minden más instrumentumon indított kereskedési művelet eredménye hiba lesz.
  • A lotméretek, a lot lépésköz, a jutalék és swap kondíciók az aktuális számla alapján kerülnek beállításra. A tesztelés megkezdése előtt mindenképpen érdemes ellenőrizni, hogy a MT4 kapcsolódva van-e egy számlához.
  • Minden kamat, margin követelmény, lejárat és GTC (Good ‘Til Cancelled – teljesülésig/törlésig aktív függő pozíciók) modellezésre kerül. A tesztelés a kereskedési szerver alapján a lehető legpontosabban történik meg, ugyanakkor a keresztárfolyamok kapcsán előfordulhatnak számítási pontatlanságok, mivel a korábbi átváltási árfolyamok nem állnak rendelkezésre minden pillanatban.
  • A piacon történő pozíciónyitás slippage (csúszás) nélkül kerül végrehajtásra.
  • A nyitás/zárás slippage (csúszás) nélkül történik
  • Számla stoppolódás – vagyis ha robotunk elbukja az induló tőkét – után a teszt megáll
  • Heti, havi és nem gyári idősíkokon a tesztelés nem lehetséges
  • A kiinduló tőke devizaneme változtatható, de az aktuális adatok alapján történik meg az átváltás
  • Nincsen késleltetés a kereskedési műveletek kapcsán – vagyis minden kereskedési művelet azonnal teljesül (szemben a valósággal).
  • A teljes Számlatörténet mindig elérhető, és nem függ a számla azt érintő beállításaitól
  • Amennyiben más instrumentum vagy idősík adatát szeretnénk használni, elvárt azok letöltése a lehető legnagyobb időfelbontásig
  • Minden tick” tesztelés során a teszter minden szükséges idősík adatát automatikusan letölti
  • A MarketInfo() használata a teszttől eltérő instrumentumok esetén ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059) hibát generál. A tesztelt instrumentum összes adata (spread, pontméret, stop szint, fagyási szint, stb.) azonban természetesen elérhető az aktív számla kondíciói alapján. Ez alól kizárólag a házilag konvertált, jó minőségű adatok a kivételek – ott a generáláskor kerülnek be a kereskedési kondíciók a visszatesztelési (FXT) fájlokba. (A későbbi futtatások során a korábban beégetett kondíciók véglegesek, amennyiben a teszteléshez szükséges feltételek adottak és az FXT fájl nem lesz felülírva.)

Speciális funkciók az optimalizáció során

  • Semmilyen naplózás nem történik (még a Print() funkcióval sem). Ez a műveletek gyorsítása illetve a foglalt lemezterület megspórolása végett van így, elkerülendő a több száz megabyte-nyi adat kiírását.
  • A kirajzolandó objektumok nem kerülnek kirajzolásra. Ez a műveletek gyorsítása érdekében történik így. Amennyiben az expert aktívan épít az objektumokra, az érintett funkciók optimalizáció során hibásan működhetnek majd – erre érdemes a tervezési szakaszban odafigyelni!
  • A „Haszontalan eredmények kihagyása” funkció az alapértelmezés – a veszteséges eredmények alap esetben nem kerülnek megjelenítésre.