Nem MQL robot2012-10-14T14:37:39+00:00
5 bejegyzés megtekintése - 1-5 / 5
  • Szerző
    Bejegyzés
  • gab232
    Tag
    Bejegyzések száma: 1

    Szia!

    Nemrég álltam neki az EA programozásnak de az MQL nyelvet eleinte kicsit nehezen használtam és nekiálltam web-en különböző dll-eket/wrappereket keresni amivel C#-ban vagy Javaban lehet robotot írni, de ingyeneset és jól használhatót egyet sem találtam. Szóval nekiálltam írni egy sajátot, amivel jelenleg csak néhány alap függvényt lehet hívni (viszont a teljes robotot tetszőleges nyelven lehet írni).
    A kérdések: kerültél-e már olyan helyzetbe, hogy MQL-ben egy bizonyos problémát csak nagyon körülményesen tudtál csak megoldani, ill. van-e az ilyesmire való piaci igény?

    üdv,
    Gábor

    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    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.

    szs
    Tag
    Bejegyzések száma: 11

    Szia Radu

    Nagyon sokat lehet tanulni a fórumból is, sok kérdés megválaszolódik ott kérdés nélkül is.
    Azt szeretném kérdezni Tőled, hogy próbáltam külső dll funkciót készíteni, de nem működik. A fordító Borland C5.02 , az újakat nem ismerem. A dll előáll a helyén ..experts\libraries könytárba. Hibát nem jelez, viszont futtatáskor a ciklusok szaladnak, de a meghívott függvény után nem működik. A kód szerintem jó, a fordításkor lehet a hiba ?

    //---------------------------------------------------------------
    // META.dll   Borland C  5.02  külső függvény 
    #include 
    int osszead(int a, int b)  {
         int c = a+b;        printf("meta.dll   osszead %d + %d = %d",a,b,c);
         return(c);
    }//--
    
    //  META Kod
    //------------------------------------------------------------------
    #import "meta.dll"
    int osszead(int a, int b);     // Borland C fuggveny
    #import
    int Belep, Count;
    //+------------------------------------------------------------------+
    int start() {
     if (Bars > Belep) {     Belep = Bars;    Count++;
                  Uzen(Count+"=");      // EZ megy és a ciklus is megy
            int a = osszead(Count,5);   // Innen semmi nincs
                  Uzen(Count+" es "+5+" =  "+a); 
                  Comment("= "+Count);
     }//      
       return(0);
    }//--end
    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    Szerintem a printf -et felejtsd el, a kapott értéket írasd ki, vagy logolj fájlba. De ez csak ötlet, DLL programozásban nem vagyok otthon.

    A kód többi része jónak tűnik.

    szs
    Tag
    Bejegyzések száma: 11

    Nem az #include és a printf az oka , nélküle is ugyanaz a helyzet. Szerintem a hiba a fordítási beállításnál lesz akkor. Ez csak egy próba teszt lett volna. Köszönöm .

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

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben