Fehler, Irrtümer, Fragen - Seite 572

 
Interesting:

Wo und wie wird MarketWatch erstellt?

So wie ich es verstanden habe, versucht dieser Block, ein Symbol zur Liste hinzuzufügen und das Ergebnis zu überprüfen.

Aber wenn Expert Advisor ist ein mehrere Währungspaare (das ist nicht offensichtlich von oben Beispiel).

Dieser Code befindet sich in einer Währungspaar-Schleife, Exp_Symbol ist bei jedem Durchlauf, außer beim ersten, ein "ausländisches" Währungspaar. Wenn es fünf Währungspaare gibt, wird SymbolSelect(Exp_Symbol, true) fünfmal für fünf verschiedene Symbole aufgerufen.

Der Aufruf von SymbolSelect(), SymbolIsSynchronized(), CopyRates() Funktionen in meinem Code durch "fremde" Symbole (die History sollte entsprechend aktualisiert werden). Beim ersten Test gibt es Daten, aber beim zweiten Test gibt es keine Daten und der Expert Advisor stürzt im Tester ab.

 
Konstantin83:

Dieser Code befindet sich in der Währungspaar-Schleife, Exp_Symbol bei jedem Durchlauf außer dem ersten ist ein "fremdes" Währungspaar. Ich habe einen Aufruf von SymbolSelect(), SymbolIsSynchronized(), CopyRates() Funktionen durch "fremde" Symbole (daher sollte die Geschichte vertauscht werden). Beim ersten Test gibt es Daten, aber beim zweiten Test gibt es keine Daten und der Expert Advisor stürzt im Tester ab.


Können Sie einen Experten und eine Beschreibung der Optimierungs-/Testeinstellungen an servicedesk senden?
 
alexvd:
Können Sie einen Experten und eine Beschreibung der Optimierungs-/Testeinstellungen an servicedesk senden?
Erstellt.
 
Gerade jetzt hängen sich die Kurse im Demokonto wieder auf. Es gibt Kommunikation, aber keine Bewegung.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

Ich möchte die Daten für Januar 2009 entladen. Ich habe die Daten für 15 Minuten und eine Stunde entladen, aber ich kann die Daten für 5 Minuten nicht entladen, da es keinen Verlauf gibt. Warum wird der Verlauf von 5 Minuten nicht heruntergeladen?

void OnStart()
  {
   int size = 25;
   datetime dateFrom;
   datetime dateTo;
   MqlRates rates[];
   MqlDateTime stDate;
   int FileHandle;
  
   stDate.day  = 1;
   stDate.hour = 0;
   stDate.mon  = 1;
   stDate.year = 2009;
   dateFrom    = StructToTime( stDate );
   stDate.day  = 31;
   dateTo      = StructToTime( stDate );
  
  
   ArraySetAsSeries(rates,true);
  
   int copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
   for(int i=0;i<100;i++)
     {
      if(GetLastError()!=0)
       {
        Sleep(5000);
        copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
       }
      else
       {
        break;
       }
      Print("Нет истории, проход № " + i);
     }
   if(copied>0)
     {
      Print("Скопировано баров: "+IntegerToString(copied));
      //string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      size = ArraySize(rates);
      ResetLastError();
     
      FileHandle=FileOpen("Data.csv",FILE_WRITE|FILE_CSV);
      if(FileHandle==INVALID_HANDLE)
        {
         Print("Ошибка " + IntegerToString((GetLastError())));
        }
      for(int i=size-1;i>=0;i--)
        {
         FileWrite(FileHandle, TimeToString(rates[i].time), DoubleToString(rates[i].open, _Digits), DoubleToString(rates[i].high, _Digits), DoubleToString(rates[i].low, _Digits), DoubleToString(rates[i].close, _Digits));
        }
     
      Print("size = " + FileSize(FileHandle));
      FileFlush(FileHandle);
      FileClose(FileHandle);
     }
   else
    {
     Print("Не удалось получить исторические данные по символу ",Symbol());
     Print("Ошибка " + GetLastError());
    }
  }

 

Ich beschloss zu prüfen, wie die Funktion ArrayResize mit allen Parametern funktioniert. Es kompiliert ohne Probleme, Auto-Trading ist überall aktiviert, aber der Expert Advisor entlädt sich aus dem Diagramm, ohne überhaupt OnInit zu durchlaufen.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print(__FUNCTION__);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(__FUNCTION__);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   double ZZ[][2];
//==============================================   
   Print(__FUNCTION__);
   
   ResetLastError();
   ArrayResize(ZZ,5,5);
   for(int i=0;i<10;i++) {
      ZZ[i][0]=i;
      Print("i=",i,"; ZZ=",ZZ[i][0]);
      Print(GetLastError());
   }
   return;
}
//+------------------------------------------------------------------+

Was ist das Problem, ich kann es nicht herausfinden.

1

2

 
Talex:

Ich beschloss zu prüfen, wie die Funktion ArrayResize mit allen Parametern funktioniert. Es kompiliert ohne Probleme, der automatische Handel ist überall aktiviert, aber der Expert Advisor entlädt sich aus dem Diagramm, ohne überhaupt OnInit aufzurufen.

Was ist das Problem, ich kann es nicht herausfinden.


Banal außerhalb der Reichweite, prüfen Sie in der Registerkarte "Experten
Reservieren ist keine Zuweisung, Ihr Array besteht immer noch aus fünf Elementen, obwohl der Speicher für 10 zugewiesen ist.

 
mql5:

Banal außer Reichweite, siehe die Registerkarte "Experten".
Reservieren ist nicht zuordnen, Ihr Array besteht immer noch aus fünf Elementen, auch wenn Sie Speicher für 10 zugewiesen haben.

Gut, danke. Ich habe auf die falsche Registerkarte geschaut, ich bin krank, das muss sich auf mich auswirken.
 
Talex:

Ich beschloss zu prüfen, wie die Funktion ArrayResize mit allen Parametern funktioniert. Es kompiliert ohne Probleme, Auto-Trading ist überall aktiviert, aber der Expert Advisor entlädt sich aus dem Diagramm, ohne überhaupt OnInit zu durchlaufen.

Die obige Abbildung zeigt im Allgemeinen das Terminalprotokoll. Und was Sie suchen, finden Sie auf der Registerkarte Experten.
 

Hallo,

Nach dem Testen und der Aktivierung der Optimierung erhalte ich dieses Ergebnis:

Core 1 genetic pass (127, 1195) getestet mit Fehler "critical runtime error

Der Test ist normal.