Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 76

 
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?

 
Leute! Kann der MT5 an einen beliebigen Gleichstrom angeschlossen werden?
 
net:
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.

Условия для трейдеров
  • www.alfa-forex.ru
Если у вас уже есть опыт работы на валютном рынке, то вы по достоинству оцените преимущества работы с Альфа-Форекс Самые узкие спреды на рынке: EUR/USD — от 0,7 пункта Отсутствие минимального депозита Быстрый ввод и вывод средств Исполнение ордеров без проскальзываний и реквот Альфа-Форекс входит в банковскую группу в составе Консорциума...
 
Yedelkin:

Wird diese Fehlermeldung ständig angezeigt, oder verschwindet sie mit der Zeit?

Einmal, wenn ich den Indikator an das Diagramm anhänge...
 
Yedelkin:

Wird diese Fehlermeldung immer wieder angezeigt oder verschwindet sie mit der Zeit?

2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
es stellt sich heraus, dass dieser Fehler auch auftritt... d.h..... gibt es zwei Fehler...
 
Yedelkin:

Wird diese Fehlermeldung ständig angezeigt, oder verschwindet sie mit der Zeit?

In alphaforex ausprobiert, gerade in alpari ausprobiert, gleicher Fehler...
 

FinEngineer:

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: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
es stellt sich heraus, dass dieser Fehler auch auftritt... d.h. es gibt zwei Fehler...
Über diesen Fehler habe ich Ihnen bereits gestern geschrieben. (Vergessen Sie nicht, den Code korrekt einzufügen:) )
 
Yedelkin:
Ü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! Fehler4806

 
FinEngineer: Wie kann ich Codefragmente in der Nachricht auswählen?

Code korrekteinfügen.

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 :)