Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Nem MQL robot
Címkézve: robot c++ dll c# java
-
SzerzőBejegyzés
-
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áborSzia 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.
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
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.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.