15 bejegyzés megtekintése - 1-15 / 18
  • Szerző
    Bejegyzés
  • x
    Tag
    Bejegyzések száma: 10

    Hello!

    Nem teljesen tiszta, hogy az MT4 stratégia teszterében pontosan mit csinál az időszak (vagy angolul period) mező. Tegyük fel, hogy van egy patkolás nélküli MT4-ünk és egy olyan robotunk, ami alapvetően M15-ön kereskedik, de figyeli az alacsonyabb és magasabb idősíkokat is. Ilyen esetben mire van hatással az időszak mező? Mi történik ha M1-et, M15-öt vagy H1-et állítok be? Mik lesznek a tickek és honnan fognak jönni a különböző idősíkok gyertyái?

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Az „időszak” igazából természetesen idősík akar lenni (a következő MT4 kiadásában javul, ha minden igaz). A tickek száma elméletben ugyanannyi lenne, ha az MT4 minden ticket eltárolna. Mivel ez nem történik meg – legjobb esetben is csak M1 gyertyákat tárol a terminál -, ezért a rendelkezésre álló összes idősík adata alapján generál egy bizonyos formula alapján tickeket, amelyek száma persze idősíkonként változik (pedig nem kéne, hiszen a tickek száma nem függ az idősíktól).

    Az idősíkok gyertyaadatai mindig elérhetőek (elviekben, ha minden klappol), azaz egy kizárólag (fixen) lezárt M1-M5 gyertyát vizsgáló robotnak teljesen mindegy, hogy éppen milyen idősíkon futtatod. A terminál gyertyaadatok alapján végzi a különböző idősíkok adatainak összeállítását (gyertya- és indikátori adatatok), így ha a robot is megfelelően van elkészítve, és ha mondjuk tick adatok alapján készített backteszt környezet áll rendelkezésre, akkor a fentiek igazak. Ellenkező esetben – és MT4-ben sajna gyakran inkább ez van – a különböző idősíkokon való futtatás más-más eredményeket hoz akkor is, ha a választott idősík semmilyen részét nem képezi a stratégiának.

    Fontos, hogy a fentiek csak akkor igazak, ha az adott robot fixen (vagy beállíthatóan) más idősíkok adatát használja, és az időzítésre használt módszere is megfelelő. Az egyszerűbb robotok elkészítői legtöbbször arra sem figyelnek, hogy a trader melyik idősíkon futtatja a robotot – az aktuális adatokat veszik alapul. Ekkor természetesen azonnal számít az, hogy melyik idősíkot adod meg a tesztnek, hiszen a teszt során az az idősík lesz az úgymond „alap”, amelynek az adataival a robot dolgozni fog. Ha mindeközben például egy fixen, H1-es idősíkról lekérdezett mozgóátlagot is néz a robot, akkor természetesen ott a korábban leírtak igazak.

    x
    Tag
    Bejegyzések száma: 10

    Köszönöm, megpróbálom az összegezni, hogy tényleg jól értem-e.

    Tehát ha a robot csak a gyertyákra épít és csak az iClose, iHigh stb. függvényeket használja a Close, High stb. tömbök helyett, akkor elvileg mindegy hogy a teszterben melyik idősíkot állítom be, egyformán kellene működnie.

    Ez viszont megzavar ->
    „különböző idősíkokon való futtatás más-más eredményeket hoz akkor is, ha a választott idősík semmilyen részét nem képezi a stratégiának.”
    Mire érted ezt?

    Másik eset, ha pl. 5 perces idősíkon működik a robot, jól gondolom, hogy ilyenkor eléggé ajánlott beállítani a tick-es hack-ket?
    Ekkor mindegy, hogy melyik idősíkot választom ki?

    (Bár ezzel a hackkeléssel kicsit az a bajom, hogy itt már nem a saját bróker adatait kell használnom, plusz az egész művelet nincs hivatalosan támogatva és így nehezen tudok megbízni benne.)

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    A hackeléssel valóban nem a bróker saját adatát használod, de ez alap esetben sem igaz, hiszen sokszor előfordul hogy az adatokat a MetaQuotes szerveréről tölti le a Metatrader.

    A tick adatok legalább egy megbízható, svájci szolgáltató szemszögéből mutatják a történéseket – és ami a legfontosabb: tick alapon!

    Ha a robotod 5 perces idősíkon működik jól, akkor alapvetően M5 idősíkot kéne kiválasztanod. A “különböző idősíkokon való futtatás más-más eredményeket hoz akkor is, ha a választott idősík semmilyen részét nem képezi a stratégiának.” alatt arra céloztam, hogy ha mondjuk a s stratégiai teszter választott idősíkja M5, és nincs minden adatod meg rajta, akkor a véletlenszerűen generált árak száma különbözhet a H1-es idősíkon generált árak számától. Ekkor – habár az M5-ös gyertyák és az abból számolt indikátori adatok stimmelnek – különböző eredményeket kapsz, hiszen a robot másként „sorsol” véletlenszerű árelmozdulásokat a nagyobb idősík adatai miatt.

    Igazából nem a legjobban sikerült összefoglalnom a fentieket, de ha kipróbálgatsz egy alap MT4-et egy egyszerű robottal (akár teszt célból is írhatsz egyet), akkor érzékelhető lesz a különbség.

    x
    Tag
    Bejegyzések száma: 10

    Hmm, és mi történik akkor, ha a tick-es megoldásnál hiányzik egy nap?

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Ha a teljes nap hiányzik, akkor ott semmilyen adat nincs és maguk a gyertyaadatok sem kerülnek legenerálásra. Vagy mire vagy konkrétan kíváncsi?:) Ilyen adathiányos gapek egyébként a sima MT4-es adatbeszerzésnél is vannak, még mennyi:)

    x
    Tag
    Bejegyzések száma: 10

    Arra, hogy mit kezd ezzel az MT4 teszter :)
    Okosan áthidalja vagy ha pont belenyitok egy ilyenbe ott lesz egy nagy bukta vagy egy nagy nyereség?

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem nyitsz vagy zársz ezen a napon, hiszen egyáltalán nem lesz ott ár, azaz az a hiányzó napok teljesen kimaradnak.

    x
    Tag
    Bejegyzések száma: 10

    Úgy értem, ha előtte pl. 1 perccel meg utána 1 perccel zárom.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem értem a kérdésed.

    Csak akkor fut az experted, amikor adat (beékrező ár) van. Legalább egy ticknek kell, hogy legyen az adott napon – ha nincs, akkor a következő tickben fog nyitás/zárás történni.

    x
    Tag
    Bejegyzések száma: 10

    De a hiányzó rész előtti utolsó tick-en még tud kötni egyet a robot.

    Egyébként utána olvastam és a gap-eknél, hétvégéknél csal a teszter. Elvileg az SL fog teljesülni ha a gap lejjebb van, ha feljebb akkor meg TP. De ezt már tényleg tesztelni kellene.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    „De a hiányzó rész előtti utolsó tick-en még tud kötni egyet a robot.”
    Pontosan ezt magyaráztam eggyel fentebb! Viszont ha az adott napon egyáltalán nincsen tick, akkor az adott (hiányzó) napon biztosan nem lesz semmilyen esemény.

    Az SL vagy a TP pedig igen, mindenképpen teljesülni fog, max. nem az adott áron, hanem a gap utáni első tickben. Egyébként a valóságban is kb. ez történik, bár ez brókeri kondícióktól függ inkább.

    x
    Tag
    Bejegyzések száma: 10

    Ez a beszélgetés teljesen félrement. Olyan, mintha az ellenkezőjét értenéd, mint amit írni akartam :)

    Onnan indultunk ki, hogy mit történik egy hatalmas nagy gapnél, ha pont előtte kötök egyet. Így könnyen szép nagy bukta vagy nyereség keletkezhet, ha majd zárni fogok. Sajnos még a tick pontosságú adatokban is lehetnek ilyen hiányosságok.

    Viszont az neten lévő leírások azt mondják, hogy az MT4 teszter gapeknél (és hétvégéknél) nem úgy működik mint a valóságban. Hanem simán automatikusan lezárja az SL-nél vagy TP-nél, akkor is ha nem volt ott tick. De ezt a működést ellenőrizni kellene.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem ment félre, csak megfogalmazásbeli különbözőségeken akadtunk meg.

    Én azt mondtam, ha hiányzik adat, akkor ott nem lesz történik programfutás. A hiányzó adat (= gap) utáni első tickben a visszateszt során pótlólag megtörténik minden SL, TP, stb. teljesülés. Amit írsz, az valóban jó: az SL és TP azon az áron fog teljesülni, ahol gyakorlatilag nem is volt ár a tesztben. Ez rendben van. De technikailag a pozíció kiszállása nem a gap-en belül fog megtörténni, hiszen ott egyáltalán nincs is ár, vagyis a programunk akkor egyáltalán nem fog egyszer sem lefutni. A teszterben lévő eredményeknél is az első, gapet követő tick dátumán-időpontján lesz a teljesülés feltüntetve.

    Ez a valós idejű futtatáshoz képest tényleg pontatlan, hiszen ott két eset lehetséges:

    • az SL/TP nem teljesül egyáltalán, és a pozíciónk extra profitban vagy veszteségben van
    • az SL/TP teljesül, de a gap utáni soron következő áron

    Készítettem egy képet, amin látszik hogy mire gondolok. Kerestem egy gapet, és a gap előtti gyertyában nyitottam egy pozíciót, aminek a take profitját szándékosan a gap (körülbelüli) közepére tettem.
    Mivel a legközelebbi tick a 2013.01.02 08:00:00 időpontban volt, ekkor történt a take profit is – a gap közepén lévő áron. Én erről a furcsaságról beszéltem végig fentebb.

    x
    Tag
    Bejegyzések száma: 10

    Kezd alakulni, már csak 1-2 dolog nem tiszta :)

    Ez a valós idejű futtatáshoz képest tényleg pontatlan, hiszen ott két eset lehetséges:
    az SL/TP nem teljesül egyáltalán, és a pozíciónk extra profitban vagy veszteségben van

    Hogy érted azt, hogy egyáltalán nem teljesül? Milyen esetre mondod?

    Teszter:
    Mi történik akkor ha nincs beállítva se TP, se SL?
    Vagy ha csak az a TP van, amit a példádban megadtál, de az illusztrációddal ellentétben, azaz lefele van egy gap és onnantól lenne felfele egy trend?

    Igazából úgy érzem, hogy megérne egy cikket ez a téma, kiegészítve az MT4-es teszter további korlátaival. Persze ez csak egy ötlet :)

15 bejegyzés megtekintése - 1-15 / 18
  • Be kell jelentkezni a hozzászóláshoz.