Válasz erre: Instrumentum lista lekérdezése 2017-05-14T12:17:44+00:00

Radu.hu Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Instrumentum lista lekérdezése Válasz erre: Instrumentum lista lekérdezése

Ferenc_
Tag
Bejegyzések száma: 8

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);		
			}    
		}  
	}
}