Fehler, Irrtümer, Fragen - Seite 2650

 
Können Sie mir sagen, wo der Fehler ist, in MQL4 oder MQL5?
struct A
{
  static const int Array[];
};

static const int A::Array[] = {0};

struct B : public A
{  
  int i[sizeof(B::Array)]; // MQL5 - ok, MQL4 - ok.
  int j[sizeof(A::Array)]; // MQL5 - ok, MQL4 - error.
};
Suchbegriff: Oshibka 004.
 
fxsaber:

Könnten Sie sich auch dieses Problem ansehen?


Der Moderator hat auf meine Bitte hin eine manuelle Aktualisierung vorgenommen. Aber ich kann nicht jedes Mal nachfragen. Die Maschine geht nicht durch.

Korrigiert.

 
Anton:

Korrigiert.

Ich verstehe, danke.

 
Andrey Khatimlianskii:

Auf den Zecken aller verwendeten Werkzeuge.


Hier ist mein Code, um nach neuen Ticks zu suchen:

void OnTimer()
  {
//+------------------------------------------------------------------+
// Перебор всех символов, которые указаны в внешних переменных
// Recursion of all symbols that are specified in external variables
//+------------------------------------------------------------------+
   string SymbolToTick="";
   for(int si=0; si<12; si++)
     {
      if(si==0)
         SymbolToTick=PAIR1;
      if(si==1)
         SymbolToTick=PAIR2;
      if(si==2)
         SymbolToTick=PAIR3;
      if(si==3)
         SymbolToTick=PAIR4;
      if(si==4)
         SymbolToTick=PAIR5;
      if(si==5)
         SymbolToTick=PAIR6;
      if(si==6)
         SymbolToTick=PAIR7;
      if(si==7)
         SymbolToTick=PAIR8;
      if(si==8)
         SymbolToTick=PAIR9;
      if(si==9)
         SymbolToTick=PAIR10;
      if(si==10)
         SymbolToTick=PAIR11;
      if(si==11)
         SymbolToTick=PAIR12;
     
      if(SymbolToTick=="" && si==0)
        {
         SymbolToTick=Symbol();
        }
      if(SymbolToTick=="")
         continue;
      //|#############################################################################################+
      // проверяем текущий Бид Аск
      MqlTick last_tickSymbol;
      SymbolInfoTick(SymbolToTick,last_tickSymbol);
      double currentBid=last_tickSymbol.bid;
      double currentAsk=last_tickSymbol.ask;

      //|#############################################################################################+
      // Если тик изменился, запускаем тик этого символа
      if(currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
        {
         // Запускаем исполнение тика
         OnTickSymbol(si,SymbolToTick);
         LastBid[si]=currentBid;
         LastAsk[si]=currentAsk;
         TicksAllNumbers[si]++;
        }
      //|#############################################################################################+
     }
  }


Es wurde ein Array für den Test erstellt, in dem die Anzahl der Zecken gezählt wird.


Testen von zwei Paaren EURUSD GBPUSD

Ich führe einen Test mit GBPUSD durch:

2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Ich führe einen Test mit EURUSD durch:

2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Die Zecken scheinen die gleichen zu sein. ... ... ... Ich muss also irgendwo etwas übersehen haben.....

Danke, ich werde weiter suchen.



ENTSCHEIDUNG: _Digit war im Code, ich muss es der Umgebung hinzugefügt haben..... ohne nachzusehen.

kein Grund für einen Kommentar :-)

 
Anton:

Verschieben Sie die Datei mql5pack-ico.zip im Archiv in den Ordner.

Diese Datei wurde in den Ordner MQL5/Scripts verschoben. Es hat nicht geholfen. Dann habe ich es in den Ordner MQL5/Files verschoben - hat auch nicht geholfen.

Ich verstehe wahrscheinlich nicht, worum es geht.

 
Stanislav Korotky:

Es wurde in den Ordner MQL5/Scripts verschoben. Das hat nicht geholfen.

Behoben.

 

Konstantin Gruzdev

Sie sind ein interessanter Autor, der interessanteste hier. fragte eine Frage an Vladislav, ich bin auch daran interessiert, in mehreren Währungen, da es Nuancen auf die neue Bar und auf die Nicht-Anwendbarkeit aller notwendigen Bars

 
Das Multicurrency-Problem hängt immer noch, MQ will aus irgendeinem Grund keine Signale geben, ich ziehe es vor, dass die Programmierer mit Timing- und Spy-Problemen vollgestopft werden. das sollte nicht lange anhalten.
 
Vladislav Andruschenko:
Durch den Timer ja,
Wahrscheinlicher ist eine Erhöhung der Timerfrequenz ......
Es fehlt eine bestimmte Anzahl von Häkchen. Deshalb sind die Ergebnisse so unterschiedlich. Der Unterschied ist sehr gering. Aber es reicht, 1 Tick zu überspringen, und alles wird auf den Kopf gestellt.

Es ist keine Tatsache, dass die Häufigkeit die Ergebnisse verbessert, aber sie verlangsamt definitiv die Geschwindigkeit der Tests. Timer-Ereignisse sind nicht perfekt, es wird fast immer einen Fehler geben. Selbst bei einem leeren Timer können Sie den Fehler sehen. Wenn innerhalb der Zeitgeberfunktion Berechnungen durchgeführt werden, ist die Fehlermarge wahrscheinlich höher. Die Belastung des Computers mit Aufgaben von Drittanbietern kann sich ebenfalls auf den Timer auswirken. Es besteht die Möglichkeit, dass nicht alle Eröffnungs-/Schließungs-/Änderungssignale zur gleichen Zeit und mit den gleichen Ticks eintreffen.

Es ist erwähnenswert, dass ich all diese Beobachtungen vor ein paar Jahren bei einem umfangreichen Mehrwährungs-Tool gemacht habe, das fast 30 Instrumente gleichzeitig verwendet. Die Ergebnisse stimmten nur überein, wenn der Timer ausgeschaltet war. Ich gehe davon aus, dass sich jetzt nicht viel geändert hat.

 
Fast235:

Konstantin Gruzdev

Sie sind ein interessanter Autor, der interessanteste hier. fragte eine Frage an Vladislav, ich bin auch daran interessiert, in mehreren Währungen, da es Nuancen auf die neue Bar und auf die Nicht-Anwendbarkeit aller notwendigen Bars

Gut. Antwort oben.