Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Instrumentum lista lekérdezése › Válasz erre: Instrumentum lista lekérdezése
Örülök, hogy segíthettem! :)
1. kérdésedre a válasz:
void LoadSymbols (string &SymbolsArray[]) { int ElementCount; string Row; int fileHandle = FileOpenHistory("symbols.sel", FILE_BIN|FILE_READ); if (fileHandle >= 0) { ElementCount = (FileSize(fileHandle) - 4) / 128; ArrayResize(SymbolsArray, ElementCount); FileSeek(fileHandle, 4, SEEK_SET); for (int k = 0; k < ElementCount; k++) { Row = FileReadString(fileHandle, 12); SymbolsArray[k] = Row; FileSeek(fileHandle, 116, SEEK_CUR); } FileClose(fileHandle); } } /* Használat: */ string Szimbolumok[]; LoadSymbols (Szimbolumok);
Miután a Szimbolumok tömb feltöltődött, felhasználhatod az elemeit.
2. Igen, a globális változók csak double típusúak lehetnek. Ellenben a nevükkel is lehet trükközni: csinálsz egy prefixet (_kiskutya_) és mögé rakod az értékes(ebb) adatokat is. Példa:
_kiskutya_EURUSD_
_kiskutya_GBPUSD_
Amikor szükséged van az adatokra, beolvasod az összes GV-t, és kiszűröd belőle a prefix-szeiddel rendelkezőeket. Aztán kiszeded a változónévből a hasznos adatot, plusz az értéket és kész.
Bonyolultabb példa:
_kiskutya|EURUSD|1|1.0455|1.0055
Itt természetesen a | jel szeparátor feladatát tölti be.
3. Igen, csak a nevével tudsz rá hivatkozni. Illetve, ha te készítesz valamilyen háttértámogatást egy tömb formájában, akkor hivatkozhatsz a Szimbolumok kulcsával is.
Egyébként a te megoldásod is jópofa :)
Ui: a kódformázást trükközéssel csináltam, sajna még egyelőre nem érhető el a fórumposztokon keresztül