Hozzászólások
-
SzerzőBejegyzés
-
Hozzászólás: EA-k védelme visszafordítás ellen #1717
Sajnos nem tudok jó megoldást arra, amit írtál. Azt tapasztalom, hogy az újabb MT4 buildek által lefordított fájlokra újabb decompiler kell. Vagyis: az újabb fájlokat addig nehezebb visszafejteni, ameddig nincsen frissített decompiler hozzá. Neked milyen verziójú ex4tomq4 programod van?
Fizetős megoldással én is találkoztam (talán többel is), asszem egynémelyikben kiegészítő program szükségeltetett, a másiknál pedig szerveroldali autentikáció. Istenigazából totális védelem nincs, csak olyan amivel viszonylag megnehezíted a visszafejtéssel próbálkozók dolgát.
Amennyiben van mit titkolni, akkor megoldás lehet a távoli szerver-kliens kapcsolat: azaz a robotod csak a szerveredtől érkező szignált dolgozza fel, nem önmaga dönt a kötésekkel kapcsolatban. Bár ennek is értelemszerűen megvannak a maga hátrányai.
A „fájl hossza illegális” hibaüzenet igazi okát nem tudhatjuk, de valóban lehet hogy létezik egyszerű trükk a decompiler megtévesztésére.
Egy oldalon (már nem tudom hol) arról láttam leírást, hogy az eredeti kód szándékos összezavarása utáni fordítással keletkezett kód visszafejtése után ember legyen a talpán, aki leül és értelmessé alakítja az amúgy is ronda kódot :)Hozzászólás: Költői kérdés #1716Én már csináltam hasonlót, egy gond van vele: a billentyűleütéseket (egeret nem próbáltam) globálisan lehet lekérdezni, azaz ha egynél több példányban fut a robot/szkript, akkor minden programban lefut az érzékelés után meghívott rutin. Ez persze valamilyen szinten workarounddal megoldható, de teljesnek azért nem mondanám.
Amit te írtál, hogy az érdekesnek tűnik – a dll programozással valóban hasznos dolgokkal lehet kiegészíteni az alap MQL4 megoldásokat.
Hozzászólás: Idősíkok közti kommunikáció #1711Miért nem oldod meg egy experten belül?
Minden idősík adatát el tudod érni ezen függvényekkel.
Hozzászólás: Költői kérdés #17091. A demó és a valós számla között rengeteg különbség lehet. A valós számlán nem biztos, hogy megszületik egy kötés ott ahol szeretnéd, nem biztos hogy ott teljesül valami ahol szeretnéd, stb. A demó gyakorlatilag egy szimuláció, ami műszaki tesztelésre elegendő.
2. A charton az objektumok létezését az ObjectFind() függvénnyel tudod lekérdezni. Az, hogy egy objektum éppen ki van-e jelölve, nem kérdezhető le.
3.
B = Bars; if (Bars > B) { [...egyéb kód] B = Bars; }
B változó legyen korábban int típusúnak definiálva!
Hozzászólás: Nem MQL robot #1702Szia Gábor!
Többször kerültem már olyan helyzetbe, hogy külső DLL importból származó eljárásokat kellett használnom. Hozzáteszem, hogy számomra a DLL import olyan feladatok megoldását könnyíti meg, amelyek MQL-ből nem, vagy csak kifejezetten nehezen oldhatóak meg. Robotok dll-be való kiszervezését nem feltétlen tartom jó ötletnek – a sebesség rovására is mehet, hogy ha első lépésként (és persze folyamatosan) az MT4-ben natívan jelenlévő adatokat (pl. gyertyaadatok) először át kell adni a DLL-es nem natív eljárásoknak. Ez bizonyos szituációkban hátrányt és sebességlassulást eredményezhet.
A wrapper amúgy egy jó ötlet lenne, de a fentiek fényében rettentő bonyolultnak érzem hogy az MT4 natív programnyelve helyett egy dll wrapper dolgozza át egy külső programnyelvből származó utasításokat, eredményeket – és mindezt természetesen full duplex módon.
Remélem, jól értettem a kérdésed.
Hozzászólás: FXT fixálása #1698Pontosan így van, a spread is beleszól a különböző eredményekbe.
409-es terminált a régi MetaTrader4 verziók letöltési oldalán találhatsz.
Hozzászólás: FXT fixálása #1696Szia Gyugyu!
Nem teljesen értem, hogy nem tick adatok esetén miért szeretnél FXT és HST fájlokat generálni – ezt a MT4 megteszi magától.
A spread mindig az aktuális (zárt piacnál a legutolsó ismert) adat alapján kerül bele az FXT-be, vagyis a visszatesztbe.
A spreadet hiába állítod át, hogyha a Start gombot megnyomod akkor a MT4 újragenerálja a backteszt környezetet. Ezért kerül be a számodra nem megfelelő spread is a fájlba.
Nemsokára lesz egy cikk a spread átállításának mikéntjéről, de az is csak a tick adatokból generált FXT-knél oldható meg. Bár… a következőket nem próbáltam, de teszteld, hátha:
1) csinálj egy tesztet a kívánt időszak alapján
2) a MT4 legyártja az fxt fájlt
3) módosítsd az FXT-ben a spreadet a kivánt értékre
4) futtasd a birt’s patch-et, hogy kiiktasd az újragenerálást
5) futtasd a tesztet!Hozzászólás: Fordítási optimalizáció? #1691header részbe:
int sumTime, sumTimeCount;
start() rész legelejére:
int startTime = GetTickCount();
[robot kódja, minden feladat, ami csak van]
start() rész végére:
int tTime = GetTickCount() - startTime; sumTimeCount++; sumTime += tTime;
És végül a deinit() részbe:
Print (StringConcatenate("Összes futásidő: ", sumTime, " ezredmp. / ", DoubleToStr(sumTime / 1000, 2), " mp (", sumTimeCount, " db futás)"));
Hozzászólás: MT4 teszter idősíkváltás #1687Stratégiai teszterben teszt közben nem lehet idősíkot változtatni, csak és kizárólag a teszt indítása előtt kézzel.
Hozzászólás: Teszter model beállítás lekérdezése #1676Nem rossz, működik a megoldásod!
Hozzászólás: Teszter model beállítás lekérdezése #1671Ez jó workaround lehet, majd írd meg hogy mennyire vált be!
Hozzászólás: Költői kérdés #1663Létezik ilyen stratégia, de mindenképpen megkötésekkel. Ez mindössze annyit jelent, hogy fel kell készülni olyan eshetőségekre amikor egy-két-x pozíció veszít vagy úgymond „beragad”.
Stratégia válogatja, hogy mikor milyen módszerekkel kell vagy lehet az esetlegesen beragadt pozíciókat kimenedzselni.
Teljesen automatikus pénzgyár szerintem nincs, félautomata (kezelt) viszont a fenti kötöttségekkel igenis létezik.
Hozzászólás: Optimalizáció #1661A fájlnévben szereplő szám automatikus növelését javaslom, a következő módon:
– a fájlneved utolsó eleme legyen a counter, a kiterjesztés előtt (tesztelesi_adataim-0.csv, tesztelesi_adataim-1.csv, stb.)
– egy ciklussal nullától leellenőrzöd, hogy az adott fájl létezik-e. Ha igen, akkor mész tovább, ha nem akkor pedig ez a szám lesz az aktuális fájlnévben és megszakítod a ciklust.Természetesen ebbe a megoldásba is bőven bele lehet kötni, de alapvetően szerintem a célnak bőségesen megfelel.
Az optimalizáció során változtatott bemeneti paraméterekkel kapcsolatos kérdésedet helyesen megválaszoltad :)
A maximális lehívás képletének egyszerűsítését megosztanád velem? Lehet, hogy kicserélném a cikkben is.
A relatív DD kiszámítása kapcsán: a lényeg, hogy az aktuális rel. lehívási százalékod a mindenkori egyenleg alapján számolódik, ily módon pozitív és negatív irányba is változhat.
Hozzászólás: Adatok minősége #1659Itt tudsz letölteni tőlem egy Insta 409-et. Kapcsolódni vele a brókerhez gyakorlatilag nem fogsz tudni, de mivel a generált adatokban ugyebár minden lényeges környezeti adat benne van, ez nem is számít igazán.
-
SzerzőBejegyzés