Új MT4 verzió jelent meg 2016. augusztus 18-án csütörtökön – az 1010-es. Ez a kiadás kifejezetten technikai jellegű javításokat, valamint a programozókat érintő fejlesztéseket tartalmaz.
Változások az 1010-es build változatban
- Terminál: Az MQL4 alkalmazások nem voltak futtathatóak 32 bites Windows 10 build 1607 alatt – javítva.
- Terminál: Javítva a Keresés és Chat gombok alkalmankénti hibás megjelenítése.
- Terminál: Javítva a demó számla nyitásakor alkalmanként duplán megkapott üdvözlőüzenet.
- MQL4: Új ‘void *’ pointerek érhetőek el objektumok absztrakt gyűjteményének létrehozásához. Bármilyen osztály bármilyen objektumának pointere elmenthető egy ilyen típusú változóba. Javasolt a dynamic_cast<osztály neve *>(void * pointer) operátor használata típusváltáshoz. Amikor a konverzió nem lehetséges, a visszatérési érték NULL.
class CFoo { }; class CBar { }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { void *vptr[2]; vptr[0]=new CFoo(); vptr[1]=new CBar(); //--- for(int i=0;i<ArraySize(vptr);i++) { if(dynamic_cast<CFoo *>(vptr[i])!=NULL) Print("CFoo * object at index ",i); if(dynamic_cast<CBar *>(vptr[i])!=NULL) Print("CBar * object at index ",i); } CFoo *fptr=vptr[1]; // Will return an error while casting pointers, vptr[1] is not an object of CFoo } //+------------------------------------------------------------------+
- MQL4: Támogatás a stringek [] operátorához. Az operátor lehetővé teszi egy karakter kódjának kinyerését egy stringből annak indexe alapján. Amennyiben a megadott index kívül esik a stringen, a visszatérési érték nulla.
string text="Hello"; ushort symb=text[0]; // Visszaadja a 'H' karakter kódját
- MQL4: A CopyXXX eljárás – mely a visszamenőleges és tick adatokat másolja – gyorsabb lett.
- MQL4: Javítva lett az előtag alapján történő többszörös objektum törlés a ObjectDeleteAll függvény kapcsán. A frissítés előtt a megmaradt grafikus objektumok megjelenése rossz sorrendben történhetett meg.
- MQL4: Javítva a grafikus objektumok alkalmankénti hibás sorrendben történő megjelenítése idősíkváltás után.
- Virtuális szerver: Terminál szinkronizáláskor a robot nélküli chartok ki lesznek hagyva – még akkor is, ha egyéni indikátorok vannak csatolva ezekre a chartokra. Amennyiben egyéni indikátor költöztetését szeretnéd megoldani, akkor helyezz fel egy „üres” robotot a chartra, amely nem végez semmilyen műveletet. Egy ilyen robot létrehozása könnyű a MetaEditorban az MQL4 Wizard (MQL4 varázsló) segítségével. Ez a frissítés biztosítja azt, hogy az indikátorok szánt szándékkal kerüljenek frissítésre.
- Virtuális szerver: most már azok a robotok és egyéni indikátorok is szinkronizálhatóak, amelyek fájlnevei nem latin karaktereket (pl. cirill vagy kínai) tartalmaznak.
- Javított hibák a fórumbejegyzések és hibanaplók alapján.
Radu megjegyzései az új változat kapcsán
- Korábban már írtam arról, hogy mit kell tenned, ha szeretnél visszaállni egy régebbi build változatra.
Szevasz Ati! Az imént regisztráltam magam egyrészt azért, hogy kifejezzem elismerésem, amit itt blog formában teljesítettél, másodsorban kérdésem lenne az új update végett, hogy nekem mi a tapsztalatod…?
Én számos robotot és indikátort készítettem mql4-ben (keveset mql5-ben), viszont ez az update most kifogott rajtam, mivel alig van dokumentació és esettanulmány a neten, viszont az expertjeim és indikátoraim csak részben működnek…
Gyanítom, hogy a Copy* körül lehet a gond, mert azt előszeretettel szoktam alkalmazni, de semmit nem dokumentálnak, hogy esetleg változtattak volna valamit a szintaktikán…
Mi a tapasztalatod?
Köszönettel:
Róbert Zoltán
Aki teheti, utasítsa el ezt a frissítést, mivel nem található még részletes leírás egyes parancsok módosításáról! (Hibátlan program a frissítés előtt működött, utána meg hibás eredményeket számol… no comment!)
Kedves Zoli!
Köszönöm szépen visszajelzésed, örülök ha tetszik a blog! Az új frissítéssel kapcsolatban egyelőre smemilyen kirívó negatív tapasztalatom nincsen. a Copy* eljárásokat nemigen használom, így ezzel kapcsolatban nem tudok nyilatkozni. A bejelentésben szó van arról, hogy „gyorsítottak” az eljáráson, bármit is jelentsen ez :) Csak ennek az eljárásnak a kapcsán tapasztalsz furcsaságokat? A szintaktika biztosan helyes? Itt tudod ellenőrizni.
Helló Ati!
Köszi a visszajelzésed! A linket köszi, de nem tudom megnézni valami oknál fogva…
Pontosan nem tudom megmondani, hogy a Copy*-e a ludas, de annyi biztos, a downgrade után működik nálam minden, az update után viszont haszálhatatlan volt, amit csinált… holott szigorún strict alapján írom a programokat… nem értem…
Bocsi, elírtam a linket. Ha most ráfrissítesz az oldalra, akkor már jó lesz a link ;)
Figyelj arra is, hogy létezik CopyRates és ArrayCopyRates nevű függvény is – nézd meg mindkettőt, lehet hogy itt lesz a kutya elásva.
Az ArrayCopyRates-nek ráadásul két szintaxisa is van!