FinEngineer: Es bleibt nur ein Fehler 2012.12.22 00:56:44 Pair_delta_RSI (EURGBP,M1) Es werden nicht alle Daten des RSI1_Handle berechnet (-1bars ). Fehler4806
Dieser Fehler tritt nicht während der Kompilierung auf, sondern wenn ich den Indikator an das Diagramm anhänge oder wenn ich den Zeitrahmen ändere.
Wird diese Fehlermeldung immer wieder angezeigt oder verschwindet sie mit der Zeit?
Если у вас уже есть опыт работы на валютном рынке, то вы по достоинству оцените преимущества работы с Альфа-Форекс Самые узкие спреды на рынке: EUR/USD — от 0,7 пункта Отсутствие минимального депозита Быстрый ввод и вывод средств Исполнение ордеров без проскальзываний и реквот Альфа-Форекс входит в банковскую группу в составе Консорциума...
Yedelkin: Wird diese Fehlermeldung immer wieder angezeigt oder verschwindet sie mit der Zeit?
Einmal, wenn ich den Indikator an das Diagramm anhänge...
Dann geht es Ihnen gut. Wenn Sie das Programm einfach an ein Diagramm anhängen oder den Zeitrahmen ändern, werden keine neuen Daten für den RSI-Indikator oder andere Indikatoren im Terminal berechnet. Und das Terminal braucht einige Zeit, um die notwendigen Indikatorpuffer zu berechnen. Schauen Sie sich Ihren Code genau an (ich verstehe, dass er nach dem Muster eines anderen geschrieben ist, aber trotzdem): Wenn die berechneten Daten für den RSI nicht ausreichen, hört die Funktion OnCalculate() auf zu arbeiten ('return(0);') und wartet auf einen neuen Tick. Sobald beim nächsten Tick die Indikatorpuffer für den RSI berechnet werden, beginnt Ihr Indikator im normalen Modus zu arbeiten. Nach dem zu urteilen, was Sie sagen, ist das der Fall.
Sie können die Prüfung auch mit BarsCalculated() in den OnInit()-Befehl einfügen - dann tritt der Fehler sehr selten (wenn überhaupt) auf. Ein Beispiel findet sich in der Beschreibung der Funktion BarsCalculated().
FinEngineer: Das für unzureichende Daten verantwortliche Codestückwurde entfernt (unten)
int calculated=BarsCalculated(RSI1_Handle);
if(calculated<rates_total)
{
Print("Not all data of RSI1_Handle is calculated (",calculated,"bars ). Error",GetLastError());
return(0);
}
calculated=BarsCalculated(RSI2_Handle);
if(calculated<rates_total)
{
Print("Not all data of RSI2_Handle is calculated (",calculated,"bars ). Error",GetLastError());
return(0);
Dort hat es gut funktioniert, dieses "Stück Code, das für unzureichende Daten verantwortlich ist". Und richtig berichtet, dass auf den ersten Tick Daten für RSI ist noch nicht durch das Terminal berechnet. Wenn Sie keine Fehlermeldungen erhalten möchten, versuchen Sie, wie oben beschrieben zu verfahren, d. h. nicht nur in OnCalculate(), sondern auch in OnInit() auf berechnete Daten zu prüfen. Mit anderen Worten: Versuchen Sie, die Datenberechnung für ausgewählte technische Indikatoren in OnInit() abzuwarten und dann zur Tick-Verarbeitung in OnCalculate() überzugehen, wenn die Daten für die Indikatoren garantiert berechnet werden.
Hinzufügen. Letztendlich erhöht das Entfernen eines Teils des Prüfcodes nicht die Anzahl der berechneten Indikatordaten :)
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Dieser Fehler tritt nicht während der Kompilierung auf, sondern wenn ich den Indikator an das Diagramm anhänge oder wenn ich den Zeitrahmen ändere.
Wird diese Fehlermeldung immer wieder angezeigt oder verschwindet sie mit der Zeit?
Leute! Kann MT5 mit jedem Maklerunternehmen verbunden werden?
Nein. Der Handel über MT5 ist über den Broker möglich, der die Möglichkeit bietet, über diese Plattform zu handeln, wie VTB24 und Alfa forex.
Wird diese Fehlermeldung ständig angezeigt, oder verschwindet sie mit der Zeit?
Wird diese Fehlermeldung immer wieder angezeigt oder verschwindet sie mit der Zeit?
Wird diese Fehlermeldung ständig angezeigt, oder verschwindet sie mit der Zeit?
FinEngineer:
Einmal, wenn ich den Indikator an das Diagramm anhänge...
Dann geht es Ihnen gut. Wenn Sie das Programm einfach an ein Diagramm anhängen oder den Zeitrahmen ändern, werden keine neuen Daten für den RSI-Indikator oder andere Indikatoren im Terminal berechnet. Und das Terminal braucht einige Zeit, um die notwendigen Indikatorpuffer zu berechnen. Schauen Sie sich Ihren Code genau an (ich verstehe, dass er nach dem Muster eines anderen geschrieben ist, aber trotzdem): Wenn die berechneten Daten für den RSI nicht ausreichen, hört die Funktion OnCalculate() auf zu arbeiten ('return(0);') und wartet auf einen neuen Tick. Sobald beim nächsten Tick die Indikatorpuffer für den RSI berechnet werden, beginnt Ihr Indikator im normalen Modus zu arbeiten. Nach dem zu urteilen, was Sie sagen, ist das der Fall.
Sie können die Prüfung auch mit BarsCalculated() in den OnInit()-Befehl einfügen - dann tritt der Fehler sehr selten (wenn überhaupt) auf. Ein Beispiel findet sich in der Beschreibung der Funktion BarsCalculated().
Über diesen Fehler habe ich Ihnen bereits gestern geschrieben. (Vergessen Sie nicht, den Code korrekt einzufügen :) )
Der für unzureichende Daten verantwortliche Teil des Codes wurde entfernt (siehe unten).
int calculated=BarsCalculated(RSI1_Handle);
if(berechnet<Raten_Gesamt)
{
Print("Nicht alle Daten von RSI1_Handle sind berechnet (",calculated, "bars ). Fehler",GetLastError());
zurück(0);
}
berechnet=BarsCalculated(RSI2_Handle);
if(berechnet<Raten_Gesamt)
{
Print("Nicht alle Daten von RSI2_Handle sind berechnet (",calculated, "bars ). Fehler",GetLastError());
zurück(0);
Können Sie mir sagen, wie ich Codefragmente in der Nachricht markieren kann?
Jetzt wird ein Fehler angezeigt:
2012.12.22 15:14:00 Pair_delta_RSI (EURGBP,M1) Abrufen des RSI1 ist fehlgeschlagen! Fehler4806Code korrekteinfügen.
Dort hat es gut funktioniert, dieses "Stück Code, das für unzureichende Daten verantwortlich ist". Und richtig berichtet, dass auf den ersten Tick Daten für RSI ist noch nicht durch das Terminal berechnet. Wenn Sie keine Fehlermeldungen erhalten möchten, versuchen Sie, wie oben beschrieben zu verfahren, d. h. nicht nur in OnCalculate(), sondern auch in OnInit() auf berechnete Daten zu prüfen. Mit anderen Worten: Versuchen Sie, die Datenberechnung für ausgewählte technische Indikatoren in OnInit() abzuwarten und dann zur Tick-Verarbeitung in OnCalculate() überzugehen, wenn die Daten für die Indikatoren garantiert berechnet werden.
Hinzufügen. Letztendlich erhöht das Entfernen eines Teils des Prüfcodes nicht die Anzahl der berechneten Indikatordaten :)