Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1507

 
MakarFX:

Existe alguma maneira de determinar o número de gráficos abertos?

Fixou-o em 100.

Se você precisa encontrar uma coisa, então volte depois de encontrá-la, para não ter que continuar correndo o ciclo

 
Vitaly Muzichenko:

Corrigido para 100.

Se você precisa encontrar uma coisa, então depois de encontrá-la, volte, para que você não tenha que continuar correndo o ciclo

Preciso fazer o loop em cada tic-tac, então eu o fiz assim

   long currChart=ChartFirst();
   double pr;
   int vdigits;
   int i=0; while(i<=CHARTS_MAX)
     {
      if(currChart<0) break;
      if(ObjectFind(currChart,ChartSymbol(currChart)+" BUY")==0) 
        { 
         pr=ObjectGetDouble(currChart,ChartSymbol(currChart)+" BUY",OBJPROP_PRICE1);
         vdigits = (int)MarketInfo(ChartSymbol(currChart),MODE_DIGITS); 
         Print(i," ",ChartSymbol(currChart)," ",DoubleToStr(pr,vdigits));
        }else{Print(i," ",ChartSymbol(currChart)," 0");}
      currChart=ChartNext(currChart);  i++;
     }
 

E se dois "algo-um" estiverem abertos?
por que não continuar correndo?

 
MakarFX:

Preciso fazer um loop em cada tic-tac

talvez pensar em fazer algo comCHARTEVENT_CUSTOM.

 
Aleksei Stepanenko:

poderia pensar em fazer algo comCHARTEVENT_CUSTOM de alguma forma.

Não é uma opção... preciso verificá-la sem o meu envolvimento.

O código acima parece funcionar corretamente, mas como sou um fraco programador, eu queria ver a opinião de pessoas mais experientes e conhecedoras.

...longa espera até segunda-feira para testá-lo (

 
Então o programa pode ouvir o ar ao invés do ciclo sem o seu envolvimento também, não?
 
Aleksei Stepanenko:
Então o programa pode ouvir as ondas de rádio sem o seu envolvimento também, não?
Eu não entendo...
 
Ainda não investiguei, mas acho que você poderia atribuir um evento a cada gráfico e depois esperar por ele no OnChartevent... Não sei, mas espero que
 
MakarFX:

Preciso fazer um loop em cada tic-tac, então eu o fiz desta maneira

Você não precisa tirar porcaria da ajuda, escrever um laço óbvio... você terá que viver com isso mais tarde :-)

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

 
Aleksei Stepanenko:
Não estudei a questão, mas acho que você pode atribuir um evento a cada gráfico e depois esperar por ele na OnChartevent...

Alexei, para ser honesto, com meu conhecimento parece assustador...

Preciso manter as coisas simples, encontrar um objeto para comprar-comprar, encontrar um objeto para vender-vender-vender.

Razão: