Fehler, Irrtümer, Fragen - Seite 1460

 
Ich kann das iBarsShiaft-Analogon in MQL5 nicht finden. .... vorschlagen.
 
Vladimir Pastushak:
Ich kann das iBarsShiaft-Analogon in MQL5 nicht finden. .... vorschlagen.
int iBarShift(string symbol,
                  int tf,
                  datetime time,
                  bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }
 
Vladislav Andruschenko:

Ich habe es ein wenig anders gemacht, ich denke, es ist zuverlässiger:

//+------------------------------------------------------------------+
int BarsShift(const string sym,const ENUM_TIMEFRAMES tim,const datetime time)
  {
   if(time<0)return -1;
   datetime mas[]; int z=-1;
   while(z++<3)
      if(CopyTime(sym,tim,TimeCurrent(),time,mas)>0)
         return ArraySize(mas);
   else
      Sleep(500);
   Print(" Erorr Search BarsShift ",GetLastError());
   return -1;
  }
//+------------------------------------------------------------------+

Was meinen Sie dazu?

 

Liebe Kollegen, wer kann mir sagen, was das Problem ist und warum der Indikator nach einiger Zeit des Betriebs bröckelt (viele zusätzliche Pfeile)?

Ich habe es nur bei m1 bemerkt. Nachdem ich die TF erneut ausgelöst habe, wird alles normal angezeigt.

Liegt das Problem im Indikator oder im Terminal und den m1-Kursen?


 
Aleksandr Novikov:

Liebe Kollegen, wer kann mir sagen, was das Problem ist und warum der Indikator nach einiger Zeit des Betriebs bröckelt (viele zusätzliche Pfeile)?

Ich habe es nur bei m1 bemerkt. Nachdem ich die TF erneut ausgelöst habe, wird alles normal angezeigt.

Das Problem mit dem Indikator oder dem Terminal und den m1-Kursen?


Nullen Sie die Puffer innerhalb der Schleife ganz am Anfang, bevor Sie die Pufferwerte berechnen.
Puffer[i]=0;
 
Vladimir Pastushak:
Ich kann nicht finden, iBarsShiaft analog in MQL5. vorschlagen ....
Eigentlich ist die 2. Variante der Barrenfunktion eine direkte Analogie, aber sie hat einige Probleme. Um genau zu sein, haben sie das zu Beginn des Jahres getan, vielleicht waren sie schon festgelegt.
 

Compiler denkt und denkt und stirbt stillschweigend mit Editor auf diesem kurzen Programm (32, 64 Bit, einschließlich verschiedener OS - gleich):

struct TCoord {
        int x, y;
};

void OnStart() {        
        TCoord coord = {100, 100};
        TCoord defaultCoord = {0,0};
        coord = (2 == 2) ? coord : defaultCoord;
}
Irgendwo ein Fehler im Optimierer.
Übrigens, wenn MetaEditor abstürzt, wird sein Zustand(geöffnete Dateien, Schnittstelleneinstellungen) nicht gespeichert.
 
Aleksandr Novikov :


Wenn dies geschieht, startet der Indikator neu ... und alles geht wieder seinen gewohnten Gang.
 
Rodrigo da Silva Boa:
Wenn dies geschieht, startet der Indikator neu ... und alles geht wieder seinen gewohnten Gang.

Es ist nicht nötig, irgendetwas neu zu starten. Es ist der Müll in den Puffern, der im Indikatorzyklus gereinigt werden muss. Zum Beispiel:

   for(int i=limit; i>=0; i--) {
      BufferPatternDN[i]=0;               // без обнуления буферов мусор в них появляется постоянно
      BufferPatternUP[i]=0;
      BufferLevelDN[i]=EMPTY_VALUE;
      BufferLevelUP[i]=EMPTY_VALUE;
      // ... остальной код расчёта буферов
      // ...
   }  // конец цикла

Sie müssen lediglich den Puffer am Anfang des Zyklus auf Null setzen, anstatt den Indikator ständig neu zu starten, wenn sich Müll auf der Karte befindet.

 

Wie kann ich das verhindern? Ubuntu in einer virtuellen Box, alle Programme gehen ohne Proxy online, direkte Verbindung überall

aber das Terminal fragt weiterhin nach einem Proxy.