Fehler, Irrtümer, Fragen - Seite 215

 

Ist es noch möglich, das ausgewählte Fragment in Yeditor zu drucken? Im Moment ist dieses Optionsfeld nicht aktiv.

Das ist natürlich eine Kleinigkeit, aber unangenehm, vor allem, wenn die Listen 50 Seiten lang sind.

 

Der Server scheint eingefroren zu sein... seit gestern.

 

Der genetische Algorithmus ist irgendwo verschwunden... 360 bauen

Frage entfernt! Sie suchen an der falschen Stelle!

 

Können wir uns auf die Tatsache verlassen, dass HistorySelectByPosition() eine ORDNUNGSLISTE von Geschäften zurückgibt?

ulong CExpertAdvisor::GetDealByOrder(ulong order) // получение тикета сделки по тикету ордера
  {
   PositionSelect(m_smb);
   HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER));
   uint total=HistoryDealsTotal();
//   for(uint i=0; i<total; i++)
   for(uint i=total-1; i>=0; i--)
     {
      ulong deal=HistoryDealGetTicket(i);
      if(order==HistoryDealGetInteger(deal,DEAL_ORDER))
         return(deal);                            // запомнили тикет сделки 
     }
   return(0);
  } 

Dann wäre die Aufzählung HIER überflüssig. Wenn nicht, kann die Aufzählung vom Ende her beginnen ... (es wurde festgestellt, dass die Gewerke im Tester bestellt wurden).

 

Sehr geehrte Herren Entwickler und Programmierer! Ich brauche Hilfe! Vielleicht bin ich nicht der Erste, aber trotzdem...

1. Wie ist es möglich, eine Schleife zu organisieren, die z.B. beim Drücken auf das Objekt "Button" unterbrochen wird. Ich verstehe, dass die OnChartEvent-Funktion nicht zwangsweise aus der gleichen Schleife aufgerufen werden kann? Wenn ja, gibt es vielleicht einige Möglichkeiten, dies zu umgehen, denn ich habe mir bereits den Kopf zerbrochen.

Wenn die Schleife läuft, werden die Systemvariablen nicht aktualisiert, d. h. es ist (zumindest) nicht möglich, die Änderung der Diagrammperiode auszunutzen. Wenn die Schleife durch die Überprüfung von OnChartEvent organisiert wird, muss ständig etwas mit dem Diagramm gemacht werden, um diese Funktion auszulösen - auch keine Option.

2. Ist es möglich, das Diagramm im Diagrammfenster nicht nur manuell, sondern auch programmatisch zu verschieben? ChartNavigate funktioniert entweder nicht, oder es ist für etwas anderes gedacht, oder ich habe nicht herausgefunden, wie es funktioniert.

Ich danke Ihnen im Voraus.

p.s. Wäre es möglich, eigene Funktionen und Variablen im Programmtext hervorzuheben?

 
KffAlex:

1. Wie kann man eine Schleife so einrichten, dass sie unterbrochen wird (z.B.), wenn ein "Button"-Objekt gedrückt wird? Ich verstehe, dass die OnChartEvent-Funktion nicht zwangsweise aus der gleichen Schleife aufgerufen werden kann? Wenn ja, gibt es vielleicht ein paar Möglichkeiten, das zu umgehen, denn ich habe mir schon den Kopf zerbrochen.

Prüfen Sie den Zustand des Schaltflächenobjekts.
 
KffAlex:

ChartNavigate funktioniert entweder nicht, oder es ist für etwas anderes gedacht, oder ich habe noch nicht herausgefunden, wie es funktioniert.

Versuchen Sie ChartRedraw nach dem Funktionsaufruf und stellen Sie sicher, dass das automatische Scrollen des Diagramms deaktiviert ist...
Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 

Ich habe MT5 auf einem dedizierten Remote-Server installiert. Von Zeit zu Zeit muss ich dafür sorgen, dass das Terminal die Verbindung zu einem Server wiederherstellt, wenn die Verbindung für kurze Zeit unterbrochen wird. Achten Sie darauf, dass Sie den zu verwendenden Server angeben, da sonst der gesamte Handel "einfriert". Wie kann ich dafür sorgen, dass sich das Terminal automatisch neu verbindet, wenn es z. B. nicht innerhalb von 5 Minuten verbunden wird?

 
EvgeTrofi:

Ich habe MT5 auf einem dedizierten Remote-Server installiert. Von Zeit zu Zeit muss ich dafür sorgen, dass das Terminal die Verbindung zu einem Server wiederherstellt, wenn die Verbindung für kurze Zeit unterbrochen wird. Achten Sie darauf, dass Sie den zu verwendenden Server angeben, da sonst der gesamte Handel "einfriert". Wie kann ich dafür sorgen, dass sich das Terminal automatisch wieder verbindet, wenn es z. B. 5 Minuten lang nicht verbunden ist?

Dies sollte automatisch geschehen.

Das Terminal erkennt automatisch den Verlust der Verbindung und stellt die Verbindung wieder her (wenn diese Funktion verfügbar ist).

Sollte dies nicht der Fall sein, schreiben Sie eine Anfrage an den Service Desk mit einer vollständigen Beschreibung des Problems und vergessen Sie nicht, die Protokolle beizufügen.

 

Ich bin mit einem Stapelüberlaufproblem konfrontiert (glaube ich).

Nach dem Aufruf einer Methode eines der Objekte, siehe Beispiel unten. Der Code ist vereinfacht, nur das Wesentliche. Die Klasse CClass1 ist eine Basisklasse, und list1 hat verschiedene Objekte, die von dieser Klasse abstammen, und ihre init-Funktionen haben unterschiedliche Implementierungen. In einer Klasse, in der die init-Funktion eine solche Liste abruft (um es einfach auszudrücken, initialisiert sie eine verschachtelte Schnittstelle, ein Panel im Panel), nachdem sie von init in der Zeile

    Print(t.name);

es liegt ein Fehler vor

2010.12.02 00:21:00 test1 (EURUSD,H1) Ungültiger Zeigerzugriff in 'Container.mqh' (74,10)

for(CClass1* t = list1.GetLastNode(); t != NULL; t = list1.GetPrevNode() ) {
   t.init(); //после выхода отсюда t-мертвый указатель
    Print(t.name); 
}

D.h. der Zeiger t ist tot.

Beim Debuggen tritt dieser Fehler nicht auf, nach dem Aufruf der Methode ist der Zeiger "lebendig", verschachtelte Schnittstellen werden erstellt und EA arbeitet weiter.

Die einzige Möglichkeit, den Fehler zu umgehen

savePoint = t;
t.init();
t = savePoint;
#Eigenschaft stacksize Zeiger nichts erreicht.