Fehler, Irrtümer, Fragen - Seite 854

 
Renat:
Es ist ratsam, die Grafiktreiber auf den neuesten Stand zu bringen. Was steht dort? Kopieren Sie die Zeilen aus dem Logbuch - dies ist einfach über das Menü möglich.

Die Grafiktreiber sind gut und die Spielzeuge funktionieren. Ich füge ein Bildschirmfoto bei. Windows XP SP3 ohne Updates. Aktualisieren Sie nicht, weil vinda Risse, und sie haben eine Art von Update gibt, wie es überprüft.

Ich habe immer noch ein paar Fehler - Nachrichten aus dem Terminal nicht starten (öffnet nur ein leeres Fenster), Indikatoren aus dem Terminal nicht starten - Codebasis - Parameter ist falsch - Screenshot beigefügt.

 
Guten Tag!
Ich versuche, einen EA mit dem MQL5-Tester zu testen.

Der erste Test läuft gut, nachdem ich den Code des EAs geändert und in MetaEditor5 kompiliert habe, führe ich Tester5 erneut aus, aber Tester5 sieht die neuen Änderungen nicht. Wenn derselbe EA unter einem anderen Namen gespeichert wird, ist alles normal. Ich habe versucht, die *. ex5-Dateien zu löschen, aber das hilft nur einmal. Bitte geben Sie an, welche Dateien im Tester gelöscht werden sollten, damit er Änderungen am EA vornehmen kann.

Bei der Visualisierung des Testers wird der Indikator immer noch nicht angezeigt, obwohl der EA nach dem Indikator rechnet.

MT5 Baujahr 695

MetaEditor5 bauen 695

 
alexvd:

Geben Sie alle Details (Achsenversion, Bitrate, Protokolle, IE-Version) an servicedesk weiter. Haben Sie es zu Hause ausprobiert - es wiederholt sich nicht.

O! Vielen Dank - das hat mir sehr geholfen! Ich habe den IE von 6 auf 8 aktualisiert und alles hat funktioniert (sowohl der Editor mit den Tools als auch Windows HELP), und die Startfehler sind aus dem Protokoll verschwunden. Aber die Nachrichten im Terminal zeigen nur Schlagzeilen - aber das ist nicht weiter schlimm).
 
gdtt:

Die Nachrichten auf Russisch sehen so aus:

windows 8 64 bit 705 build, liteforex.

Was soll ich damit machen? Wollen Sie zum dc, zum Serviceschalter gehen?

Schauen Sie in den Einstellungen des Windows-Systems nach.

In sieben ist es: Hauptmenü/Steuertafel/Sprache und regionale Standards/Erweitert/Unicode Unterstützte Programmiersprache.

Bei acht habe ich keine Ahnung, aber es sollte eine Entsprechung geben.

 
MetaDriver:

Sehen Sie sich die Einstellungen der Windschutzscheibe an.

Zu siebt ist es: Hauptmenü/Systemsteuerung/Sprache und regionale Standards/Erweitert/Sprache von Programmen, die Unicode nicht unterstützen.

In acht, keine Ahnung, aber die Analogie sollte da sein.

Die Sprache dort ist Russisch. Das gleiche in den sieben und der gleiche Fehler. Nicht alle Nachrichten laufen schief:

 
gdtt:

Die Sprache dort ist Russisch. In Seven, die gleiche Sache und der gleiche Fehler. Nicht alle Nachrichten gehen schief:

Tada oops.
 

Ich weiß nicht, ob ich C sehr gut kenne. Können Sie mir sagen, ob es erlaubt ist, auf ein privates Feld einer Klasse zuzugreifen, das durch ein privates Konstrukt geschützt ist?

class tst{
public:
  void Set( tst& passed ){
    member = passed.member; 
  }
private:
  int member;
};

Der Compiler gibt weder eine Warnung noch einen Fehler aus.

 
gdtt:

Ich weiß nicht, ob ich C sehr gut kenne. Können Sie mir sagen, ob es erlaubt ist, auf ein privates Feld einer Klasse zuzugreifen, das durch ein privates Konstrukt geschützt ist?

Der Compiler gibt weder eine Warnung noch einen Fehler aus.

Verboten in welchem Sinne? In Bezug auf den Zugriff aus anderen Klassen oder beim Zugriff auf dieses Feld aus dem Programm?
 
sergeev:
Verboten in welchem Sinne? In Bezug auf den Zugriff durch andere Klassen oder durch den Zugriff auf dieses Feld von einem Programm aus?

Dieses Konstrukt:

member = passed.member;

Ich denke, es sollte verboten werden, weil es sich direkt auf ein privates Mitglied eines anderen Objekts bezieht, wenn auch vom gleichen Datentyp.

Ich dachte immer, wenn ich eine solche Erklärung abgebe:

private:
  int member;

dann ist es nur möglich, auf ein Mitglied einer Mitgliedsklasse über Methoden zuzugreifen, die zu diesem Objekt gehören.

 

Kolleginnen und Kollegen,

es gibt eine Methode der Klasse CAccountInfo::MaxLotCheck() in der Standardbibliothek. Wenn ich es aufENUM_ORDER_TYPE== ORDER_TYPE_BUY_STOP anwende, erhalte ich die maximale Losgröße, d.h. falsch. Ich schaue mir gerade den Code an:

//--- calculate margin requirements for 1 lot
   if(!OrderCalcMargin(trade_operation,symbol,1.0,price,margin) || margin<0.0)
     {
      Print("CAccountInfo::MaxLotCheck margin calculation failed");
      return(0.0);
     }
//---
   if(margin==0.0)   // for pending orders
      return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));

Frage: Warum gibt diese Funktion die maximale Losgröße für schwebende Aufträge zurück? Es stellt sich heraus, dass die Funktion OrderCalcMargin(), die zuvor für eine schwebende Order aufgerufen wurde, 0,0?

Kann mir jemand helfen, herauszufinden, wie ich diese Funktion für schwebende Aufträge nutzen kann? Ich habe es nicht in der Hilfe gefunden...

Danke.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5