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
Mi értelme van letölteni a szimbólum listát?
Gondolkoztam rajta, aztán írtam egy scriptet a LoadSymbols függvényhez. Az orosz módszert nem néztem meg, mert az bonyolultabbnak tűnt. Vigyázni kell, hogy legyen valamilyen profil a MetaTraderben mert, 100 ablakot elég nehéz kézzel, egyenként bezárni, persze lehetne arra is írni scriptet. Sok időt lehet spórolni ezzel a programmal.
#property description "A piacfigyelő által megjelenített szimbólumok csv fileba írása, és/vagy megnyitása"
#property description "Csak korlátozott számban: maximum 100 nyitható meg, a már megnyitottakkal együtt"
#property script_show_inputs
#property strict
//+------------------------------------------------------------------+
#include <stdlib.mqh> //ErrorDescription-hoz kell
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
enum boole {nem,igen};
input boole FileWriting=nem;//fileba írás
input boole AllSymbolOpen=igen;//az összes szimbolum megnyitása maximum 100
input int TimeFrame=PERIOD_H1;//Idősík
void OnStart()
{
string Szimbolumok[];
int i;
int db=0;
int filehandle=INVALID_HANDLE;
int Error;
//+---
if(!FileWriting && !AllSymbolOpen)
{
Alert("A script ezzel a beállítással nem csinál semmit");
}
else
{
LoadSymbols (Szimbolumok);
db=ArraySize(Szimbolumok);
if(db)
{
if(FileWriting)
{
filehandle=FileOpen("Symbollist.csv",FILE_WRITE|FILE_CSV);
}
for(i=0;i<db;i++ )
{
if(FileWriting && filehandle!=INVALID_HANDLE)
{
FileWrite(filehandle,Szimbolumok[i]);
}
if(AllSymbolOpen && db<CHARTS_MAX)
{
if(!ChartOpen(Szimbolumok[i],TimeFrame))
{
Error=GetLastError();
Print(__FUNCTION__," ",__LINE__," Error code = ",Error," ",ErrorDescription(Error));
}
}
}
if(filehandle!=INVALID_HANDLE)
{
FileClose(filehandle);
}
}
}
}