Fehler, Irrtümer, Fragen - Seite 2

 
Interesting:

Es funktioniert, getestet bei drei Maklerhäusern (Suche nach allen Instrumenten, die bei dem Maklerhaus gehandelt werden)

Probieren Sie es so

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
Für OnTick ist dies nur ein Beispiel.
 
ddd06:

Das ist es, was ich sage: wahr funktioniert nicht!

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
Dies ist die richtige Vorgehensweise, da Sie die Funktion zur Ausgabe der Informationen verwenden
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
Dies ist die richtige Vorgehensweise, da Sie eine Funktion zur Ausgabe der Informationen verwenden
Danke, ich habe sie nur nicht verstanden, aber die Frage bleibt:)
 
ddd06:
Danke, ich habe sie einfach nicht verstanden, aber die Frage bleibt:)

Auf realen Kursen (real, demo und wahrscheinlich bidding) funktioniert dieser Code gut getestet auf 3 Terminals (aufgerufen während der Initialisierung)

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

Ich habe 15 Paare gezeigt, die sich in der Marktübersicht befinden.


Beim normalen Testen werden nur die in den Testerparametern angegebenen Symbole berücksichtigt (wenn andere Symbole benötigt werden, sollten sie als falsch und als Array meiner Symbole betrachtet werden), bei der Optimierung "alle ausgewählten Symbole ..." werden wahrscheinlich alle Symbole angezeigt (aber höchstwahrscheinlich werden sie nach und nach geändert).


PS

Wenn Ihr EA mehrwährungsfähig ist, sollten Sie Ihre eigene Liste von Symbolen im Tester haben und sie mit einer Liste von Symbolen vergleichen, die in Ihrem Brokerhaus präsentiert wird.

 

Das ist cool, aber ich denke, es ist ein Versehen.

Danke, dass Sie das herausgefunden haben.

Interessanterweise, was über den ersten Beitrag, so weit niemand geantwortet hat, Art der könnte schreiben - Wir werden in der nächsten Build zu beheben.

 

Die Anzahl der Aufträge und Abschlüsse in der Historie wird nicht zurückgegeben:

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

Grundierung

Geschichte der Bestellung

 
Urain:

Die Anzahl der Aufträge und Abschlüsse in der Historie wird nicht zurückgegeben:


Sie müssen zunächst die Historie mit Hilfe der Funktion laden:

HistorySelect(0,TimeCurrent())
 
Valmars:

Ich muss den Verlauf erst mit der Funktion herunterladen:


Ja, danke, es funktioniert, ich werde das Handbuch weiter lesen :o)

Ich konnte mir einfach nicht vorstellen, dass es einen separaten Fluss für Benutzer und EA gibt,

Ich dachte, wenn der Verlauf angezeigt wird, bedeutet dies, dass er vom Expert Advisor gelesen werden sollte,

Dies ist jedoch korrekter - das Terminal erstellt einen eigenen Bereich für Expert Advisors,

Das Terminal schafft einen eigenen Bereich für Expert Advisors,

Dies ähnelt dem, was in mql-4 in Form eines Puffers implementiert wurde, der periodisch mit der Historie geladen wurde.

 
Urain:

Ja danke, alles funktioniert, ich werde das Handbuch weiter lesen :o)

Ich konnte einfach nicht glauben, dass es eine Trennung der Threads für Benutzer und EA gibt,

Ich dachte, wenn der Verlauf angezeigt wird, bedeutet das, dass er von einem EA gelesen werden sollte,

Dies ist jedoch korrekter - das Terminal erstellt einen eigenen Bereich für Expert Advisors,

die Informationsauswahl erfolgt in einem eigenen Format und ist wesentlich schneller,

Das Analogon dazu wurde in mql-4 in Form eines Puffers implementiert, in den die Historie periodisch geladen wurde.


Leider ist der Platz für die Skripte, EAs und das Terminal knapp. Sie können sich dessen vergewissern, wenn Sie die Terminal-Historie für den letzten Tag (Tag) aufrufen und dann die obige Funktion aus dem Skript oder Expert Advisor ausführen. Sie werden sehen, dass sich der Verlauf im Terminal ebenfalls in "Gesamter Verlauf" ändert. Ich denke, das ist ein Fehler des Terminals. Stellen Sie sich vor, Sie haben mehrere Skripte, Expert Advisors und jedes fordert einen anderen Verlauf an. Der Verlauf im Terminal springt (visuell) ab. Sie benötigen die Registerkarte "Verlauf", um den aktuellen Status unabhängig von den Expert Advisors anzuzeigen.

Außerdem wird die Historie im Terminal oft mit einer Verzögerung aktualisiert, d.h. ein Handel wird ausgeführt, eine Position wird geschlossen, aber sie erscheint nicht in der Registerkarte "Historie". Einmal habe ich absichtlich darauf gewartet, dass der Verlauf aktualisiert wird. Es waren Minuten..... Ich habe nie gewartet. Sie erscheint nur nach der Ausführung eines Kontextbefehls zur Abfrage des Verlaufs auf der Registerkarte "Verlauf" oder eines Skripts, das den Verlauf abfragt.

 
ddd06:

Das ist cool, aber ich denke, es ist ein Versehen.

Danke, dass Sie das herausgefunden haben.

Es ist interessant, dass auf den ersten Beitrag noch niemand geantwortet hat, sondern nur schreiben konnte - Wir werden das im nächsten Build beheben.

Der Fehler liegt darin, dass Sie PrintFormat verwenden, ohne explizit die Formatzeichenfolge zu verwenden.

Was sollten wir im nächsten Build beheben?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5