Válasz erre: Instrumentum lista lekérdezése 2017-05-19T16:27:59+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

Radulovic Attila
Tag
Bejegyzések száma: 638

Az alábbi meglátásaim vannak (köszönöm az e-mailt, amit küldtél):

A db értékét ne csökkentsd eggyel, az jó úgy ahogy van; ehelyett ellenőrizd hogy az a chart, amely épp nyitva van (vagyis amiről a szkriptet indítottad) ne legyen kinyitva még egyszer. Ezt ezzel a kódsorral megteheted:

if (Szimbolumok[i] != Symbol()) {

}

Természetesen ha pontosak szeretnénk lenni, akkor meg lehetne nézni, hogy a jelenleg nyitott chartok közül van-e olyan amit nem kellene még egyszer megnyitni. Legyen ez a házi feladat 🙂

Egy int() típusváltást beraktam, hogy a warning is eltűnjön.

Csatolom a módosított kódot, még egyszer köszi hogy megosztottad!

#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   //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= 0) {
 
      ElementCount = (int(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);
   }
}