Hozzászólások

15 bejegyzés megtekintése - 556-570 / 651
  • Szerző
    Bejegyzés
  • Radulovic Attila
    Tag
    Bejegyzések száma: 653

    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 :)

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Miért nem oldod meg egy experten belül?

    Minden idősík adatát el tudod érni ezen függvényekkel.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Költői kérdés #1709

    1. 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!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Nem MQL robot #1702

    Szia 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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: FXT fixálása #1698

    Pontosan í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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: FXT fixálása #1696

    Szia 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!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    header 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)"));
    
    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Straté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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem rossz, működik a megoldásod!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Ez jó workaround lehet, majd írd meg hogy mennyire vált be!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Költői kérdés #1663

    Lé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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Optimalizáció #1661

    A 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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: Adatok minősége #1659

    Itt 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.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653
    Hozzászólás: GUI #1658

    Nincs ezzel semmi baj. Komfortosnak ugyan csak félig mondható, de mivel a környezet szinte semmilyen segítséget nem nyújt komoly GUI létrehozásához, be kell érned ilyen és ehhez hasonló megoldásokkal.

15 bejegyzés megtekintése - 556-570 / 651