Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1418

 
Valeriy Yastremskiy:

Mi piacciono di più le opzioni booleane

Non sono sicuro di come questo si applichi qui.

Potresti modificare il mio codice, se non ti dispiace?

      string symbol;
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            if(ChartSymbol(currChart)!=symbol)
              {
               symbol=ChartSymbol(currChart); Print(symbol);
              }
           } 
         currChart=ChartNext(currChart);  i++;
        }
 
Perché, Vitaly ha scritto un buon codice. Ha i++ nel posto giusto. Come funziona questo codice?
 
MakarFX:

Potete dirmi come fare in modo che Print(), stampi una volta al cambio di valore

Quando viene cambiato quale valore?

 
MakarFX:

Non sono sicuro di come questo possa essere applicato qui

Il mio codice può essere modificato, se non vi dispiace?

string symbol, printsimbol="";
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            if(ChartSymbol(currChart)!=symbol)
              {
               symbol=ChartSymbol(currChart);if(printsimbol!=symbol) Print(symbol);printsimbol=symbol;
              }
           } 
         currChart=ChartNext(currChart);  i++;
        }
 
MakarFX:

Non sono sicuro di come questo possa essere applicato qui

Il mio codice può essere corretto, se non è troppo disturbo?

Non specificate i dettagli di dove e come viene chiamato questo costrutto.

In questo caso, se avete trovato il grafico necessario ed è l'unico, allora fate una pausa; immediatamente, per non forzare il terminale.

Trovi il grafico, lo memorizzi e non chiami più il costrutto. Probabilmente è meglio chiamarlo su un evento, anche se dipende dal compito.

 
Aleksei Stepanenko:

quando cambia quale valore?

Quando la finestra del grafico attivo cambia, la funzione stampa il simbolo del grafico attivo.

Vitaly Muzichenko:

Non specificate i dettagli di dove e come viene chiamato questo costrutto.

In questo caso, se avete trovato il grafico necessario, e c'è solo un grafico, allora fate una pausa; in modo da non forzare il terminale.

Trovi il grafico, lo memorizzi e non chiami più il costrutto. Probabilmente il modo migliore per chiamarlo su un evento, anche se dipende dal compito.

Scusa, la funzione è chiamata nel...

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
      string symbol01;
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            symbol01=ChartSymbol(currChart);      Print(symbol01);
           } 
         currChart=ChartNext(currChart);  i++;
        }
//--- 
  }
Valeriy Yastremskiy:

Sfortunatamente, non funziona nemmeno questo. Stampa all'infinito(

 
MakarFX:

Quando la finestra del grafico attivo cambia, la funzione stampa il simbolo del grafico attivo.

Scusa, la funzione è chiamata nel...

Purtroppo non funziona neanche questo. Stampa all'infinito(

Che ne dite di questo? - solo che darà un segnale una volta nella stampa

//+------------------------------------------------------------------+
//|                                                         0001.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
int ticks_to_close=1; // количество тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   if(!EventSetTimer(1))
      Alert("Error create timer!");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   string symbol01;
   long currChart=ChartFirst();
   int i=0;
   while(currChart>=0)
     {
      if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true)
        {
         symbol01=ChartSymbol(currChart);
           {
            if(ticks_to_close>0)
              {
               ticks_to_close--;
               Print(symbol01);
              }
           }
        }
      currChart=ChartNext(currChart);
      i++;
     }
//---
  }
//+------------------------------------------------------------------+
 
SanAlex:

Che ne dite di questo? - solo che darà un segnale una volta nella stampa

Sbagliato. Stampa una volta all'avvio. Non fa nulla quando si cambia il programma.
 
MakarFX:

Quando la finestra del grafico attivo cambia, la funzione stampa il simbolo del grafico attivo.

Scusa, la funzione è chiamata nel...

Purtroppo non funziona neanche questo. Stampa all'infinito(

O forse faresti meglio a leggere più attentamente la documentazione?

PORTA IL GRAFICO IN ALTO

Mostra il grafico sopra tutti gli altri grafici

bool w/o


Ciò significa che questa proprietà è in sola scrittura. E tu stai cercando di leggerlo.........

Inoltre non stai dando una risposta completa alla domanda

È uno script o un indicatore.
 
MakarFX:

Quando la finestra del grafico attivo cambia, la funzione stampa il simbolo del grafico attivo.

Scusa, la funzione è chiamata nel...

Purtroppo non funziona neanche questo. Stampa all'infinito (

Se non capisco cosa sta succedendo, stampo tutto quello che ho, a volte aiuta. E non capisco l'essenza del velo. La condizione è sempre vera.

string symbol, printsimbol="";
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            if(ChartSymbol(currChart)!=symbol)
              {
               symbol=ChartSymbol(currChart);if(printsimbol!=symbol) Print(symbol," ",ChartSymbol(currChart)," ",printsimbol,
" ",currChart," ",ChartFirst()," ",ChartNext(currChart)," ",ChartGetInteger(currChart,CHART_BRING_TO_TOP,0));
printsimbol=symbol;
              }
           } 
         currChart=ChartNext(currChart);  i++;
        }