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

 
Igor Zakharov:

Come faccio a saperlo? La persona che ha fatto la domanda ha usato iLow(), quindi ne ha bisogno. Forse è più semplice, forse ha intenzione di riferirsi a un altro simbolo o a un periodo di tempo attraverso una variabile di ingresso (non ricordo se ci sono copie in quadruplo?)

C'è.

 
psyman:

Non ho postato il codice qui, ma ho scritto quello più semplice per semplificare l'analisi.

Dimmi di più su ciò che non va, non è chiaro sulla velocità massima.

Vladimir Karputov:

Il codice è MOLTO GLUCKY - perché ad ogni tick c'è un passaggio su TUTTE le barre.


In quarta eraIndicatorCounted(), non so quali possibilità ci siano in quinta e non c'è da nessuna parte per leggerlo.

Questa opzione è buona o può essere semplificata?

int OnCalculate(....)
{
   int i, Counted_bars;
   
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного

      while(i>=0)                      // Цикл по непосчитанным барам
      { 
        .....
        
       i--;                          
      }
}

int IndicatorCounted()
  {
   if(prev_calculated>0) return(prev_calculated-1);
   if(prev_calculated==0) return(0);
   return(0);
  }
 
psyman:


Nel Q4 c'eraIndicatorCounted(), non so quali possibilità ci siano nel 5 e non c'è da nessuna parte per leggerlo.

Questa opzione è buona o può essere semplificata?

Aiuto, forum, articoli - è questo il "posto da leggere" secondo voi? Se solo ne avessi il desiderio. Infatti, stai scrivendo nel soggetto del vecchio terminale, mentre la tua domanda riguarda MQL5. Avete una discrepanza.

Ho lasciato l'argomento.

 
psyman:


Nel Q4 c'eraIndicatorCounted(), non so quali possibilità ci siano nel 5 e non c'è da nessuna parte per leggerlo.

Questa opzione è buona o può essere semplificata?

Ora sia in mql4 che in mql5 la funzione principale dell'indicatore ha tutto il necessario

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread
   );

prev_calculated è il numero di barre calcolate.

 

Salve.

Se il prezzo è cambiato di 30 pip in 60 secondi, segnerò la barra

 for(int i=limit; i>=0; i--)
     {
      datetime t_=TimeCurrent();
      if(t_>t_b+60)
        {
         t_b = TimeCurrent();
         pr_b=close[0];
        }
      if(MathAbs(close[0]-pr_b)>=30*Point && t_<t_b+60)
        {
         BufferUP[i]=low[i]-10*Point;
        }

     }

Cosa c'è che non va?

 
lil_lil:

Salve.

Se il prezzo è cambiato di 30 pip in 60 secondi, segnerò la barra

Cosa c'è che non va?

Perché è così

int limit=rates_total-prev_calculated-1;

e non così?

int limit=rates_total-prev_calculated;

Dove devo impostare il limite?

   if(limit>1)
     {
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }

Non ha guardato oltre

 
Artyom Trishkin:

Perché è così

e non così?

Dov'è l'impostazione del limite?

Non ho guardato oltre.

Grazie, ma non c'è nessun risultato neanche in questo modo. Guardate oltre, per favore.

 
lil_lil:

Grazie, ma non c'è nessun risultato neanche in questo modo. Guardate oltre, per favore.

Che cos'è?

datetime t_=TimeCurrent();

Che tempo fai nel giro? Cos'è TimeCurrent()?

 
Ciao!
C'è una funzione in Expert Advisor per ottenere il testo da un link.... lo ottengo con questa libreria:
https://github.com/sergeylukin/mql4-http
Tutto è a posto e non ci sono domande!
Il problema è il seguente:
In questo link il testo si aggiorna sistematicamente, e il terminale non lo percepisce, anche quando si resetta il gufo dal grafico e lo si rimette! Solo chiudere e aprire il terminale aiuta! Forse chi sa come risolvere il problema?
 
lil_lil:

Salve.

Se il prezzo è cambiato di 30 pip in 60 secondi, segnerò la barra

Cosa c'è che non va?

Recentemente mi sono imbattuto in un ordine da freelance con un compito simile. Non è questo il lavoro che stai facendo?