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

 

Capito, cambiato.

   uint n=0;

gli errori sono spariti. Grazie.

 
Sergey Voytsekhovsky:

Capito, cambiato.

gli errori sono spariti. Grazie.

Questi non sono errori, sono avvertimenti.

Forum sul trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici

Artyom Trishkin, 2019.05.20 15:16

Quali sono i tipi di variabili n e period_find? La cosa più importante e non ha mostrato...

Provate:

for(n=0; n<(int)period_find; n++)

E in generale - perché dichiarare una variabile di loop a livello del gestore OnTick()?

Puoi farlo in questo modo:

for(int n=0; n<(int)period_find; n++)

Potete rimuovere la dichiarazione n da OnTick() - non ne abbiamo bisogno.


 
Artyom Trishkin:

Questi non sono errori, sono avvertimenti.


Ottimo, lo sistemerò.

Se non ti dispiace che te lo dica, per favore dammi un suggerimento su come posso ottenere i valori dei prezzi su cui sono state create le frecce. Supponendo che io abbia già i loro indici. ???

 

Ora sta maledicendo in un modo diverso:

'n' - identificatore non dichiarato Test_iCustom.mq5 82 48

Probabilmente perché n è usato al di fuori del ciclo, come un indice trovato?
 
         for(int n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)break;
            }
         Last_Arrow_Buy_volume = Buf_Arrow_Buy[n];
         Last_Arrow_Buy_index  = n;
 
Sergey Voytsekhovsky:

Ottimo, lo sistemerò.

Se non ti dispiace che te lo dica, per favore dammi un suggerimento su come posso ottenere i valori dei prezzi su cui sono state create le frecce. Supponendo che io abbia già i loro indici. ???

O iOpen(), o CopyOpen(), o CopyRates() se si ottengono diversi prezzi in una volta.

Secondo me, nell'indicatore le frecce sono posizionate sul grafico ai prezzi di apertura delle barre.

Документация по MQL5: Доступ к таймсериям и индикаторам / iOpen
Документация по MQL5: Доступ к таймсериям и индикаторам / iOpen
  • www.mql5.com
Значение цены открытия бара (указанного параметром shift) соответствующего графика или 0 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError(). Функция всегда возвращает актуальные данные, для этого она при каждом вызове делает запрос к таймсерии по указанным символу/периоду. Это означает...
 
Artyom Trishkin:

O iOpen(), o CopyOpen(), o CopyRates() se si ottengono più prezzi contemporaneamente.

Secondo me, l'indicatore mette delle frecce sul grafico ai prezzi aperti delle barre.

Sì, lo dice lì:

SetArrow(prefix+"ChartArrowUP_"+TimeToString(time[i]),InpColorBullishArrow,time[i],open[i],(char)241,ANCHOR_TOP,InpArrowSize);

ProveròiOpen().

E al posto di n aggiungo un'altra variabile, o può essere così:?

   int n=0;
   
   if (CopyBuffer(CrossAD, 1, 0, period_find, Buf_Arrow_Buy) != period_find)
      {  
         Print("НЕ удалось правильно скопировать данные из 1-го буфера индикатора iCrossAD, error code %d",GetLastError());
         return;
      }
         for(n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)break;
            }
         Last_Arrow_Buy_volume = Buf_Arrow_Buy[n];
         Last_Arrow_Buy_index  = n;
         Print("Last_Arrow_Buy_volume = ",Last_Arrow_Buy_volume,", Last_Arrow_Buy_index = ",Last_Arrow_Buy_index);
 
Sergey Voytsekhovsky:

Lo scopo di una variabile del ciclo è limitato al corpo del ciclo. Assegnare i valori richiesti prima della pausa:

//+------------------------------------------------------------------+
for(int i=0; i<(int)period_find; i++)
  {
   if(Buf_Arrow_Buy[i]!=EMPTY_VALUE)
     {
      Last_Arrow_Buy_volume = Buf_Arrow_Buy[i];
      Last_Arrow_Buy_index  = i;
      break;
     }
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Lo scopo di una variabile del ciclo è limitato al corpo del ciclo. Assegnare i valori richiesti prima della pausa:

Capito, funziona in entrambi i modi, senza avvertimenti.

Per favore, ditemi come farlo kosher, con i calcoli nel corpo del ciclo, prima dellapausa; o è meglio togliere i calcoli dal ciclo?

 
Sergey Voytsekhovsky:

Capito, funziona in entrambi i modi, senza avvertimenti.

Per favore, ditemi cosa è più kosher, con i calcoli nel corpo del ciclo, prima dellapausa; o è meglio togliere i calcoli dal ciclo?

Quali calcoli?