bejglee

Hozzászólások

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: Saját DLL #5161

    Hali,
    Én Visual Studio-t használok, de ott meg kell mondani a dll-nek, hogy mely függvények legyenek kintről láthatók, hívhatók. Addig se ki, se be a dll-be…
    Készítettél definíciós fájlt (dlltest.def)?
    Üdv,
    Zoli

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: kernel32.dll #3359

    Pedig a forrásokat a code tag-ek közé írtam, de nem formázta be 🙁

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: kernel32.dll #3358

    Sziasztok,

    Nekem ez a 2 megoldás jött be az új MT4-el:
    1.) Ehhez saját dll-t kell gyártani
    C++ rész:

    MT4_EXPFUNC BOOL __stdcall isFileExists(const wchar_t* fileName)
    {
    	if (!fileName) return(FALSE);
    	struct _stat buffer;
    	return((_wstat(fileName, &buffer) == 0) ? TRUE : FALSE);
    }

    MT4 rész:

    #define LIBRARIES_PATH  "\\MQL4\\Libraries\\"
    
    #import "example.dll"
       bool isFileExists(string);
    #import
    ...
    bool checkFile(string filemane)
    {
       if(!isFileExists(StringConcatenate(TerminalInfoString(TERMINAL_DATA_PATH), LIBRARIES_PATH, fileName))) return(false);
       return(true);
    }

    2.) Ehhez nem 🙂

    #define LIBRARIES_PATH  "\\MQL4\\Libraries\\"
    
    #import "kernel32.dll"
       int GetFileAttributesW(string);
    #import
    ...
    bool checkFile(string filemane)
    {
       if(!isFileExists(StringConcatenate(TerminalInfoString(TERMINAL_DATA_PATH), LIBRARIES_PATH, fileName))) return(false);
       return(true);
    }
    
    bool isFileExists(string fileName, bool allowDirectories=false)
    {
       int res = GetFileAttributesW(fileName);
       if (res == -1) return(false);
       if (res == 0x10 && !allowDirectories) return(false); // Ez mappa
       return(true);   
    }
    
    bejglee
    Tag
    Bejegyzések száma: 16

    Igen, pont most javítottam a hozzászólásom, mert kimaradt az először kiszámolt érték 🙂
    De így már jó 🙂
    Köszi!!!

    bejglee
    Tag
    Bejegyzések száma: 16

    Köszi!
    A cikket még régebben olvastam, hasznos volt!!!
    Viszont nem teljesen értem, hogy itt mire gondolsz: “a kívánt profitot mindenképpen a mindenkori súlyozott átlagártól vedd alapul“.
    A fenti példánál maradva, a súlyozott átlagár:
    (0.7 * 0.86491 + 0.8 * 0.86915) / 1.5 = 0.86717
    Ez az átlagár hogy jön ide? Mire kell? 🙂 Nem világos!
    Ha most az árfolyam 0.87100, akkor 24 pont múlva (0.87124-on) lesz +20 dollárom, nem?
    Vagy arra gondolsz, hogy mondjuk a 0.87100-ról az átlagárig (0.86717 + 0.00024) eshet vissza az árfolyam, mert akkor biztos megvan a $20-om? Mondjuk beteszek oda egy stoploss-t és ezzel biztosítva az elvárt nyereséget…
    (ha erre gondoltál, akkor OK és én nem fogalmaztam az elsőben pontosan :-))

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: kernel32.dll #2378

    Köszi Radu!!!

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: Indikátor meghívása #2115

    Van 3 indikátorom (saját fejlesztés), amit használok. Gondoltam egybe gyűröm őket, hogy ne legyen annyi fájl, a könnyebb kezelhetőség végett. Egy plusz paraméterrel különböztetem meg, hogy éppen melyik értékeire vagyok kíváncsi (meg plusz egy az egyediség miatt, amit említettél).

    Hátránya, hogy mindhárom indikátor bemenő paramétereit most fel kell sorolni, de szerencsére nincs sok bemenő paraméter (van aminek nincs is). Az init()-ben a típustól függően dől el, hogy melyik buffereket fogom tölteni. Ezért fontos, hogy az init() lefusson mikor meghívom. Arra vigyázni kell, hogy ha több buffer is van, ami tartalmazni fog értéket, akkor azokat ugyanazzal a TimeCurrent()-el hívjam meg, hogy ne legyen elcsúszás. Meg így nincs olyan sok hálózati kommunikáció (mert nem 2x fut le).

    datetime currentTime=TimeCurrent();
    signal[0]=iCustom(NULL,0,"indikátor neve",TYPE_1,currentTime,...,0,0);
    signal[1]=iCustom(NULL,0,"indikátor neve",TYPE_1,currentTime,...,1,0);
    

    Üdv,

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: Indikátor meghívása #2113

    Köszi Radu!
    Ezek szerint, ha azt akarom, hogy minden egyes híváskor lefusson az init() is, akkor egy “kamu” paramétert még átadok híváskor (pl: TimeCurrent()), ami biztos hogy mindig más lesz, és akkor le fog futni :-)Igaziból azért kellene, mert három indikátort akarok egybe összevonni (hogy kényelmesebb legyen), viszont mindháromnak más-más bufferei vannak, és azt, hogy éppen melyek kellenek, azt az init()-ben dönteném el.

    bejglee
    Tag
    Bejegyzések száma: 16
    Hozzászólás: MQL4 -> MQL5 #2052

    Köszi Radu a választ!

    Bár mindenütt azt olvasom, hogy az OrdersTotal() a függő megbízások számát adja vissza, a PositionsTotal() pedig a nyitottakét.
    Azt, hogy instrumentumonként meg csak egy nyitott pozi lehet, totál nem világos.

    PositionsTotal(): returns the number of open positions.
    OrdersTotal(): function retrieves the number of orders; of course, only the number of the pending orders.

    Még 1x köszi!

    bejglee
    Tag
    Bejegyzések száma: 16

    Köszi szépen!

10 bejegyzés megtekintése - 1-10 / 10