![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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.
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?
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.
Was ist das Problem, ich kann es nicht herausfinden.
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.
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.
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.
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.