Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 780

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



Kolleginnen und Kollegen, bitte helfen Sie mir

Ich verstehe nicht, was mit der Schleife falsch ist, Daten aus dem Handle gehen nicht in das Array psa1


Führen Sie in OnInit() die folgenden Schritte aus:

  ArraySetAsSeries(pca1,true);

ändern Sie danach Ihre Schleife entsprechend:

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

Der Balken ganz rechts in Ihrem Indikator hat jetzt den Index "0".

 

Wie beende ich ein Skript durch Drücken einer beliebigen oder einer bestimmten Taste?

 
Vladimir, danke, gibt es nichts, was Sie tun können, ohne die Indizierung zu ändern?
 
LookingFor:
Vladimir, danke, können Sie nichts tun, ohne die Indizierung zu ändern?

Wenn Sie nichts tun wollen, dann beginnen Sie mit dem Debugging auf historischen Daten. Schritt für Schritt. Sehen Sie sich die Daten von WO der Balken kopiert wird an.

 
LookingFor:

Kolleginnen und Kollegen, bitte helfen Sie mir

Ich verstehe nicht, was mit der Schleife falsch ist, Daten aus dem Handle gehen nicht in das Array psa1


LookingFor:
Vladimir, danke, aber Sie können nichts tun, ohne die Indizierung zu ändern?

Als erstes müssen Sie den Code menschenlesbar machen(Styler - Arbeiten mit Quellcode - Programmentwicklung - 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);
  }

Sie MÜSSEN auch prüfen, was von der Funktion CopyBuffer zurückgegeben wurde. SieheCopyBuffer:

Zurückgegebener Wert

Anzahl der kopierten Array-Elemente oder -1 im Falle eines Fehlers.

Außerdem setzen wir Haltepunkte und führen Debugging auf historischen Daten durch

Fehlersuche an historischen Daten durchführen

und einige Variablen kontrollieren:

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

df

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

Hilfe bei der Übersetzung zu einem 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:

Hilfe bei der Übersetzung zu einem A

Lesen Sie den Indikatorpuffer und suchen Sie in dem resultierenden Array nach zz

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

Hilfe bei der Übersetzung zu einem A

Holen Sie sich zuerst den Blinkerhebel! Verwenden Sie dann CopyBuffer, um ein Array der gewünschten Werte zu erhalten, und durchlaufen Sie diese in einer Schleife.
 

Ich danke Ihnen allen!

Noch eine Frage: Ich habe das Forum und kodobase durchsucht und kann keine Anwendung für "Trend.mqh" finden, es scheint alles da zu sein. Wenn es einen Link zur Anwendung gibt, schicken Sie ihn bitte hierher oder geben Sie mir ein Beispiel per Code.

Ich habe viele EAs gefunden, die Rsi, Ma, Adh und andere EAs verwenden, aber keiner von ihnen hat SB verwendet. Ist es wirklich so schlimm, oder habe ich den Code nicht gefunden, wer benutzt ihn?


Was ich brauche: Es gibt einen Code, in dem ich MA aus verschiedenen Zeiträumen erhalte

_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)

Nicht mehrere Dutzend Handles in mql5 in OnInit zu erstellen, hoffentlich wird SB mein Problem lösen.

 
Vitaly Muzichenko:

Ich danke Ihnen allen!

Noch eine Frage: Ich habe das Forum und kodobase durchsucht und kann keine Anwendung für "Trend.mqh" finden, es scheint alles da zu sein. Wenn es einen Link zur Anwendung gibt, schicken Sie ihn bitte hierher oder geben Sie mir ein Beispiel per Code.

Ich habe viele EAs gefunden, die Rsi, Ma, Adh und andere EAs verwenden, aber keiner von ihnen hat SB verwendet. Ist es wirklich so schlimm, oder habe ich den Code nicht gefunden, wer benutzt ihn?


Was ich brauche: Es gibt einen Code, in dem ich MA aus verschiedenen Zeiträumen erhalte

Um nicht mehrere Dutzend Handles in mql5 in OnInit zu erstellen, hoffe ich, dass SB mein Problem lösen wird.


Ich muss alle Handles oder Objekte der Klasse "Trend.mqh::CiMA" erstellen.

Grund der Beschwerde: