Fehler, Irrtümer, Fragen - Seite 2394

 
Hallo!

Gegeben: zwei Charts im mt5 Terminal, z.B. EURUSD H1,EURUSD H1. Die Diagramme erhalten die Nummern 1 und 2, wenn sie von links nach rechts nummeriert werden.

Wenn das "Panel" (praktisch jedes Panel) auf dem Diagramm mit der Nummer 1 platziert wird, dann wird das Panel nach dem Übergang zum Diagramm 2 und der Rückkehr zum Diagramm 1 minimiert - minimiert in die linke obere Ecke.

Zur gleichen Zeit, wenn das "Panel" in Chart 2 platziert ist, mit dem bestehenden, natürlich, Chart 1, dann nach dem Übergang zu den 1 und Rückkehr in die 2 Chart, Minimierung - Minimierung der "Panel" in die obere linke Ecke nicht passieren:).

Wer kann erklären, was das Problem ist und wie man es lösen kann?

Gremium-01Gremium-02
Dateien:
 
SEM:

Hallo!

In der neuesten Version(Build 2007, 25. Februar 2019) wurden zwei Fehler entdeckt:

1) 1) Beim Öffnen des Programms (oder beim Ändern des Profils) zeigen viele Diagramme (insgesamt 41) ein ewiges "Waiting for update".

2) 2) Beim Schließen des Programms wird es nicht vollständig geschlossen, der Task-Manager zeigt an, dass das Programm nicht geschlossen ist, obwohl es visuell nicht mehr angezeigt wird.

3) Umstrittener Fehler (bei der Version vom Dezember 2018 funktionierte alles einwandfrei, keine Fehler), vielleicht ein Fehler im Indikator, beim Starten des Programms oder beim Ändern des Profils wird der Indikator nicht korrekt berechnet, Sie können aus den gerenderten Daten sehen, dass einige der Daten nicht korrekt berechnet werden. Wenn Sie die Vorlage oder die Eigenschaften des Öffnungs- und Schließungsindikators erneut anwenden, werden die Daten korrekt berechnet.

4) Aus irgendeinem Grund funktionieren die Agenten nach dem Update nicht mehr in der Cloud (das Konto ist aufgelistet). Tests bestanden 586, Zeit vergangen 0 Stunden 0 Minuten.

Fehler beim Rendern von Charts, passiert auch bei Standardindikatoren, nur Neustart des Terminals und erzwungenes Schließen über den Taskmanager hilft.

Worin kann der Fehler liegen? Der Symbolverlauf wird geladen.

Fehler

 
SEM:

Fehler bei der Darstellung von Graphen, passiert bei Standard-Indikatoren, nur Neustart des Terminals und erzwungenes Schließen über den Taskmanager hilft.

Worin könnte der Fehler liegen? Der Symbolverlauf wird geladen.


Meistens in Indikatoren, wo ich mit Objekten (Etiketten usw.) arbeite. Vielleicht hängt es mit der großen Anzahl von Indikator-Arrays zusammen. Im Durchschnitt sind es etwa 40 "INDICATOR_DATA" sowie "INDICATOR_CALCULATIONS". Übrigens, wenn ich mich recht erinnere, würde das Terminal in solchen Situationen auch nach erfolgreicher Kompilierung die Indikatoren nicht aktualisieren, aber ich bin mir da nicht sicher.

Der Code wurde dahingehend optimiert, dass pro Zeiteinheit möglichst wenige dieser Arrays mit der gleichen oder einer größeren Anzahl von Arrays verarbeitet werden.

Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
  • www.metatrader5.com
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
 
Ilya Malev:

Ich bin mir solcher Feinheiten nicht bewusst, da ich in der Vergangenheit nicht an der Entwicklung meines eigenen TS auf MT5 beteiligt war. Wie kommt es, dass Take's Marktplätze sind, was sind die Neuigkeiten? Wenn sie auf eine Lücke stoßen, sollten sie bei der ersten Notierung ausgeführt werden, d.h. wenn die Limits im Plus rutschen. Ein Qualitätsmakler kann dies auf dem Realkonto erlauben. Aber das ist natürlich nicht die Regel. Aber wenn der Spread pro Bar maximal wäre, würde er den Gewinn bei den Limits kompensieren.

Der wahrscheinlich schnellste Weg, um den Schlupf im Strategy Tester zu überprüfen

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: TradePanel_Csharp

fxsaber, 2019.03.05 10:10

Demo

SlipPage-Spalte ansehen

Die Spalte SlipPage zeigt die Slippage bei Eröffnung (durch Limit) und bei Schließung (durch Take) in Pips. Wir können sehr gut sehen, wie der Tester im Modus "Echte Ticks" den Gewinn überschätzt.

 
Ist dies bei anderen Compilern möglich?
void OnInit()
{
  OnInit2(); // Пропишите внизу OnInit
}

#define OnInit OnInit2
Im Moment gibt der Compiler Folgendes aus
'OnInit2' - function not defined        Test3.mq5       3       3
1 error(s), 0 warning(s)                2       1


Ich möchte, dass sie Folgendes ausgibt

'OnInit2' - function not defined        Test3.mq5       3       3 Пропишите внизу OnInit
1 error(s), 0 warning(s)                2       1
 
fxsaber:
Gibt es diese Funktion auch bei anderen Compilern?


Ich möchte, dass er Folgendes ausgibt

In Compilern ist das unwahrscheinlich, in Interpretern sehr wahrscheinlich. Compiler haben normalerweise eine statische Zeigerbindung an Funktionsaufrufe oder Variablen (sollte das so klingen?), d.h. alle Zeiger-Offsets werden zur Kompilierzeit berechnet

In Ihrem Beispiel ist alles auf die altmodische Art und Weise, #define und #ifndef ( _DEBUG ? )

 
Igor Makanu:

in Compilern unwahrscheinlich, in Interpretern höchstwahrscheinlich möglich, Compiler verwenden in der Regel statische Zeigerbindung an Funktionsaufrufe oder Variablen (sollte das so klingen? ), d.h. alle Zeiger-Offsets werden zur Kompilierzeit berechnet

In Ihrem Beispiel ist alles so wie immer: #define und #ifndef ( _DEBUG ? )

Ich wollte nur, dass der Compiler die Fehlermeldung durch einen Zeilenkommentar ergänzt.

 
Vjacheslav Lapaev:

Ich auch konfrontiert. Ich kann nicht sagen, dass in der neuesten Version, aber in früheren - sicher. Meistens in Indikatoren, wo ich mit Objekten (Etiketten usw.) arbeiten. wahrscheinlich ist es mit einer großen Anzahl von Indikator-Arrays verbunden. im Durchschnitt, etwa 40, sowohl "INDICATOR_DATA" und "INDICATOR_CALCULATIONS". Übrigens, wenn ich mich recht erinnere, würde das Terminal in solchen Situationen auch nach erfolgreicher Kompilierung die Indikatoren nicht aktualisieren, aber ich bin mir da nicht sicher.

Der Code wurde dahingehend optimiert, dass pro Zeiteinheit möglichst wenige dieser Arrays mit der gleichen oder einer größeren Anzahl von Arrays verarbeitet werden.

Danke für den Tipp! Es ist natürlich schade, dass das Programm instabil ist, in der Dezember-Version gab es diesen Fehler nicht.
 
Ilyas:

Habe nicht in den vorgestellten Code zu bekommen, werde ich versuchen zu erraten - das Problem ist, dass beide EAs mit der gleichen grafischen Ressource arbeiten.

Dies ist ein Beispiel für die Verwendung der Standardbibliotheksklasse CAppDialog

wenn Sie diese Klasse verwenden, wird beim Umschalten von Diagrammen immer die Methode Minimize() aufgerufen

Ich wollte es nicht verstehen, ich habe einfach mein eigenes OnClickButtonMinMax() geschrieben, es war ziemlich chaotisch, aber es hat ohne Probleme funktioniert.

CAppDialog::OnClickButtonMinMax()
  {
   if(Width()<200) Minimized_state=false;
   if(Minimized_state)
     {
      Minimize();
     }
   else
     {
      Maximize();
      ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(TS2.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(CP.Name()+"Label",OBJPROP_BACK,true);
     }
  }

es gibt einen weiteren Fehler in der Klasse CAppDialog, nach Minimize() und Maximize() wird die Eigenschaft OBJPROP_BACK der Klasse CCheckBox geändert, und die Checkboxen werden mit "quadratischem" Rand, ich habe ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true) in diesem Code schnell festgelegt; ...

 
Vjacheslav Lapaev:
Hallo!

Gegeben: zwei Charts im mt5 Terminal, z.B. EURUSD H1, EURUSD H1. Die Diagramme sollen die Nummern 1 und 2 haben, wobei die Nummerierung von links nach rechts erfolgt.

Wenn das "Panel" (praktisch jedes) auf dem Diagramm mit der Nummer 1 platziert wird, dann wird nach dem Übergang zum Diagramm 2 und der Rückkehr zum Diagramm 1 das Panel minimiert - minimiert auf die linke obere Ecke.

Zur gleichen Zeit, wenn das "Panel" in Chart 2 platziert ist, mit dem bestehenden, natürlich, Chart 1, dann nach dem Übergang zu den 1 und Rückkehr in die 2 Chart, Minimierung - Minimierung der "Panel" in die obere linke Ecke nicht passieren :).

Wer kann erklären, worum es dabei geht und wie man damit umgeht?

Ich habe meine vorherige Antwort gelöscht.

Das Fenster kollabiert, weil es nicht in das Diagramm passt.
Wenn Sie den Modus "Diagramm im gesamten Terminalfenster" beenden, sehen Sie die tatsächliche Größe der Diagramme.

Um zu verhindern, dass das Feld auf dem Diagramm kollabiert, müssen Sie die Größe der Diagramme erhöhen.
Danach können Sie das Diagramm auf das gesamte Terminal ausdehnen und versuchen, zwischen ihnen zu wechseln