Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 780

 
LookingFor:
   for(bars=start; bars<rates_total; bars++)



Colleghi, per favore aiutatemi

Non capisco cosa c'è di sbagliato nel ciclo, i dati dell'Handle non vanno nell'array psa1


In OnInit() fare quanto segue:

  ArraySetAsSeries(pca1,true);

dopo di che, cambiate il vostro ciclo di conseguenza:

   for(bars=start; bars<rates_total; bars++)

Considerando che ora la barra più a destra del vostro indicatore ha indice "0".

 

Come posso terminare uno script premendo un tasto qualsiasi o uno specifico?

 
Vladimir, grazie, non si può fare nulla senza cambiare l'indicizzazione?
 
LookingFor:
Vladimir, grazie, non si può fare nulla senza cambiare l'indicizzazione?

Se non volete fare nulla, allora iniziate a testare con il debug sui dati storici. Passo dopo passo. Vedere i dati da DOVE viene copiata la barra.

 
LookingFor:

Colleghi, per favore aiutatemi

Non capisco cosa c'è di sbagliato nel ciclo, i dati dell'Handle non vanno nell'array psa1


LookingFor:
Vladimir, grazie, ma non puoi fare nulla senza cambiare l'indicizzazione?

Prima di tutto dovete rendere il codice leggibile all'uomo(Styler - Lavorare con il codice sorgente - Sviluppo di programmi - MetaEditor)

//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(prev_calculated==0)
     {
      i=bars=start=1;
     }
   else
     {
      start=prev_calculated;
     }
   for(bars=start; bars<rates_total; bars++)
     {
      CopyBuffer(pulse_Handle,0,start,1,pca1);

      if(pca1[bars]!=pca1[bars-1])
        {
         pca2[i]=pca1[bars]; i++;
         string s="";
         s=IntegerToString(pca1[bars])+"  ";
         Print(s); continue;
        }
      else
         continue;
     }
//--- return value of prev_calculated for next call 
   return(rates_total);
  }

dovete anche controllare - ma cosa è stato restituito dalla funzione CopyBuffer? Fare riferimento alCopyBuffer:

Valore restituito

Numero di elementi della matrice copiati o -1 in caso di errore.

Inoltre impostiamo i punti di interruzione ed eseguiamo il debug sui dati storici

eseguire il debug sui dati storici

e controllare alcune variabili:

time[rates_total-1]
time[0]
bars
pca1[???]

df

Стилизатор - Работа с исходным кодом - Разработка программ - Справка по MetaEditor
Стилизатор - Работа с исходным кодом - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Данная функция предназначена для оформления исходного кода в соответствии с рекомендуемым стандартом. Это позволяет сделать код более читаемым...
 

Aiuta a tradurre in una A

double GetExtremumZZPrice(string symb="0",ENUM_TIMEFRAMES tf=0,int ne=0,int dp=12,int dv=5,int bs=3) {
 if(symb=="0") symb=Symbol();
  double zz;
  int ke=0;
   for(int i=0; i<Bars(symb, tf)-1; i++) {
    zz=iCustom(symb, tf, "ZigZag", dp, dv, bs, 0, i);
    if(zz!=0) {
      ke++;
      if(ke>ne) return(zz);
  }}
  return(0);
 }
 
Vitaly Muzichenko:

Aiuta a tradurre in una A

Leggere il buffer dell'indicatore e nell'array risultante cercare zz

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

Aiuta a tradurre in una A

Prima prendi la maniglia dell'indicatore! Poi usate CopyBuffer per ottenere un array di valori desiderati e poi fate un ciclo attraverso di essi.
 

Grazie a tutti!

Un'altra domanda: ho cercato nel forum e in kodobase e non riesco a trovare nessuna applicazione per "Trend.mqh", sembra essere tutto lì. Se c'è un link all'applicazione, per favore mandalo qui o dammi un esempio per codice.

Ho trovato molti EAs che usano Rsi, Ma, Adh e altri EAs, ma nessuno di loro ha usato SB. È così male, o non ho trovato i codici, chi lo usa?


Cosa mi serve: c'è un codice, in esso ottengo MA da diversi timeframe

_ma1 = iMA(Symbol,PERIOD_M15,MAFast,0,MAMethod,MAPrice,i)
_ma2 = iMA(Symbol,PERIOD_M30,MAFast,0,MAMethod,MAPrice,i)
_ma3 = iMA(Symbol,PERIOD_H1, MAFast,0,MAMethod,MAPrice,i)

Non creare diverse decine di maniglie in mql5 in OnInit, speriamo che SB risolva il mio problema.

 
Vitaly Muzichenko:

Grazie a tutti!

Un'altra domanda: ho cercato nel forum e in kodobase e non riesco a trovare nessuna applicazione per "Trend.mqh", sembra che ci sia tutto. Se c'è un link all'applicazione, per favore mandalo qui o dammi un esempio per codice.

Ho trovato molti EAs che usano Rsi, Ma, Adh e altri EAs, ma nessuno di loro ha usato SB. È così male, o non ho trovato i codici, chi lo usa?


Cosa mi serve: c'è un codice, in esso ottengo MA da diversi timeframe

Non creare diverse decine di maniglie in mql5 in OnInit, spero che SB risolva il mio problema.


Devo creare tutti gli handle o oggetti della classe "Trend.mqh::CiMA".