Neues MetaTrader 4 Client Terminal 387 und MetaTrader 4 Data Center Build 387 - Seite 13

 
- Ich habe heute (1.03.2011) auf eine neue Version aktualisiert und habe Probleme mit dem Indikator IND_Correlation.mq4. Beim Einschalten des Terminals oder bei kurzzeitigem Ausfall der Kommunikation erlischt die Anzeige. Ich muss entweder die Vorlage neu laden oder von einem Zeitrahmen zum anderen wechseln. Das ist nicht praktisch, Leute).
 
brici:
- Ich habe heute (1.03.2011) auf eine neue Version aktualisiert und habe Probleme mit dem Indikator IND_Correlation.mq4. Beim Einschalten des Terminals oder bei kurzzeitigem Ausfall der Kommunikation erlischt die Anzeige. Ich muss entweder die Vorlage neu laden oder von einem Zeitrahmen zum anderen wechseln. Das ist nicht praktisch, Leute).
Heute hat 2 DC vorgeschlagen, auf die Version 388 zu aktualisieren, vielleicht haben die Entwickler noch etwas korrigiert. Ich habe aktualisiert und bisher nichts Schlimmes bemerkt. Das Update war von 229, ich war zuerst überrascht, dann erinnerte ich mich, dass es einen Thread über 387 gab
 
Renat:

Wir werden den Support für den 225er Build nach einiger Zeit aufgrund einiger kritischer Fehler einstellen und alle Nutzer einen Monat im Voraus darüber informieren.

Ich behalte absichtlich einen der 225 Build-Terminals für den Fall, dass wir die Schnittstelle mit der DLL debuggen müssen. Sie haben das Debugging in späteren Versionen verboten. Soweit ich das verstanden habe, soll damit verhindert werden, dass erneut Dekompilierer auftauchen. Welche Lösung würden Sie für diejenigen vorschlagen, die die Schnittstelle zwischen MQL-Skripten und der DLL debuggen müssen?
 
api:
Ich behalte absichtlich einen der 225 Build-Terminals für den Fall, dass ich eine Schnittstelle mit einer DLL debuggen muss. Sie haben das Debugging in späteren Versionen verboten. Soweit ich das verstanden habe, soll damit verhindert werden, dass erneut Dekompilierer auftauchen. Welche Lösung würden Sie für diejenigen vorschlagen, die die Schnittstelle zwischen den MQL-Skripten und der DLL debuggen müssen?

Damit bleiben eigentlich nur noch Drucker oder ähnliche Protokollierungsmechanismen übrig.

Leider musste die Entscheidung zwischen Schutz und Bequemlichkeit zugunsten des Schutzes getroffen werden.

 
Zhunko:

Hier sind die Fakten:

1. Sie laden den angehängten Indikator in den Chart. Es erscheint eine gestrichelte Linie.

2. Aktualisieren Sie das Fenster über das Kontextmenü - "Aktualisieren". Die Linie verschwindet und wird nicht angezeigt.

Alles geschieht aufgrund von Optimierungen im Code und unnötiger Initialisierung von Indikatorpuffern bei der Aktualisierung des Charts.


Ich danke Ihnen. Wir werden versuchen, es herauszufinden.
 

Zhunko

Der von Ihnen vorgestellte Indikator berücksichtigt überhaupt nicht IndicatorCounted, das Hauptinstrument zur Optimierung der Berechnungen.

Die Daten können sich nicht nur durch Refresh, sondern auch nach einem Verbindungsabbruch ändern. Und? Ihr Indikator zeigt dies in keiner Weise an. Dies ist falsch.

Übrigens, Ihr Indikator verfolgt auch nicht den Wechsel des Symbols und/oder der Periode (und die Neuinitialisierung der Puffer war schon immer so!). Ihr Beispiel zeigt im Gegenteil die Notwendigkeit der Initialisierung von Indikatorpuffern, um unnötige Illusionen zu vermeiden.

 
stringo:

Zhunko

Der von Ihnen vorgestellte Indikator berücksichtigt überhaupt nicht IndicatorCounted, das Hauptinstrument zur Optimierung der Berechnungen.

Die Daten können sich nicht nur durch Refresh, sondern auch nach einem Verbindungsabbruch ändern. Und? Ihr Indikator zeigt dies in keiner Weise an. Dies ist falsch.

Übrigens verfolgt Ihr Indikator auch nicht den Wechsel des Symbols und/oder der Periode (und die Neuinitialisierung des Puffers war schon immer so!). Ihr Beispiel zeigt im Gegenteil die Notwendigkeit der Initialisierung von Indikatorpuffern, um unnötige Illusionen zu vermeiden.

Welche Illusionen? Ich brauche es nicht. Es ist nur ein vertikaler Schwung und das war's. Es ist mir egal, welche Daten sich im Puffer befinden. Solange sie die vertikale Größe festlegt.

Warum ist diese Funktion erst in 387 erschienen und war in früheren Versionen nicht vorhanden? Sicherlich sind alle Beschwerden über Blinker heutzutage auf diese unnötige Funktion zurückzuführen.

Machen Sie besser eine separate Funktion für die Zwangsinitialisierung von Indikatorpuffern.

 

Ich habe eine Frage an die Entwickler.

Wenn benutzerdefinierte Indikatoren verwendet werden, in bild 388 und zukünftigen, verstehe ich, dass IndicatorCounted() eine Garantie gegen Kontofehler ist.

Aber wenn der Berechnungsalgorithmus direkt in einem Expert Advisor verwendet wird, was sollte ich in diesem Fall tun? Es scheint, dass IndicatorCounted() nicht in Experten funktioniert, zumindest habe ich es überprüft und es gibt -1.

Ich habe gesehen, dass Sie aufgefordert wurden, eine Funktion zu erstellen, was darauf hindeutet, dass das Herunterladen oder Aktualisieren von Daten stattgefunden hat, aber Sie schweigen zu diesem Punkt. Es ist grundsätzlich schwierig zu tun, oder Sie haben einfach keine Zeit, alles auf einmal zu tun, oder Sie haben einfach keine Zeit oder wollen sich nicht darum kümmern?

Ich habe bereits geschrieben, dass ich eine Menge Geld verloren habe, als ich meinen Expert Advisor mit unvollständig heruntergeladenen Daten eingeschaltet habe.

Was können Sie dann raten, um Berechnungsalgorithmen direkt im Expert Advisor zu verwenden, um nicht in unvollständig gepumpte Daten zu geraten?

Ich verwende das Konstrukt häufig in Expert Advisors:

void my_function()
{
   static int bars;
   int limit=Bars-bars-1;
   bars=Bars-1;
   if (limit<0) return;
   if (limit>1)
   {
      limit=Bars-period-1;
      // Еще данные
   }
   for (int i=limit; i>=0; i--)
   {
      // Расчет переменных
   }
}

Vielleicht kann noch etwas hinzugefügt werden, um die Zuverlässigkeit zu erhöhen?

Schließlich geht es beim Trading, wie Sie selbst wissen, nicht nur um die Berechnung und das Zeichnen von Customs und anderen Indikatoren, sondern in erster Linie darum, Geld zu verdienen. Der Markt ist bereits extrem beweglich und komplex, und Sie können sich wahrscheinlich nicht vorstellen, wie nervenaufreibend die Arbeit mit echten Konten manchmal ist. Und wenn man dann noch auf Konstruktionsfehler achten muss, ist das eine große Belastung für die Gesundheit, den Geist und alles andere. Schließlich ist die Programmierung des Terminals eine sehr komplexe, aber auch sehr spezifische Aufgabe und Zielsetzung. Und die Verarbeitung eines ständig zappelnden Signals, das ständig die Frequenz, die Amplitude, die Spreads, die Nachrichten, die Kursmanipulation durch Banken und große Händler, die Gier von Brokern, im Allgemeinen, wie auf einem Minenfeld ändert. Bei diesem Problem werden selbst Doktoranden wie kleine Kinder und verlassen Forex in Angst und Schrecken, wenn sie es versuchen. Der Verlust großer Geldbeträge oder von Einlagen im Allgemeinen sieht aus wie der Tod einer Person. Dann dreht er sich wieder um und fängt von vorne an. Ich respektiere Sie als einen guten Fachmann in Ihrem Geschäft, und was Sie bereits getan haben, funktioniert im Allgemeinen gut, aber ich hoffe, dass Sie am Ende ein besseres und zuverlässigeres Produkt herstellen werden.

 
ANG3110:

Ich habe eine Frage an die Entwickler.

Ich bin zwar kein Entwickler, aber lassen Sie mich ein wenig sagen.

Wenn benutzerdefinierte Indikatoren verwendet werden, in bild 388 und zukünftigen, verstehe ich, dass IndicatorCounted() eine Garantie gegen Kontofehler ist.

Dies war in allen Builds der Fall, es wurden lediglich einige Fehler behoben.

Aber wenn der Berechnungsalgorithmus direkt in einem Expert Advisor verwendet wird, was sollte ich in diesem Fall tun? Es scheint, dass IndicatorCounted() nicht in Experten funktioniert, zumindest habe ich es überprüft und es gibt -1.

Es funktioniert nicht und wird nicht funktionieren

Ich habe gesehen, dass Sie aufgefordert wurden, eine Funktion zu erstellen, was darauf hindeutet, dass das Herunterladen oder Aktualisieren von Daten stattgefunden hat, aber Sie schweigen zu diesem Punkt. Es ist grundsätzlich schwierig zu tun, oder Sie haben einfach keine Zeit, alles auf einmal zu tun, oder Sie haben einfach keine Zeit oder wollen sich nicht darum kümmern?

MT4 wird nicht verändert - höchstens Fehler behoben

Ich habe bereits geschrieben, dass ich eine Menge Geld verloren habe, als ich meinen Expert Advisor mit unvollständig heruntergeladenen Daten eingeschaltet habe.

Das sind nur Worte... Wir brauchen eine Nachbesprechung über das Warum und Wie... Es kann an einem falschen/undokumentierten Algorithmus des Expert Advisors liegen

Dann, welche Ratschläge haben Sie auf die Verwendung der Algorithmen für die Berechnung direkt in den Expert Advisor nicht in unterfüllten Daten laufen?

Wir müssen uns auf die Terminologie einigen. Was sind "unterbewertete Daten"? Sie können in Ihrem EA eine eigene Funktion IndicatorCounted() erstellen, wie zum Beispiel diese: https://www.mql5.com/ru/articles/247

Vielleicht können Sie noch etwas hinzufügen, um die Zuverlässigkeit zu erhöhen?

Darüber hinaus können Sie das Überspringen von Takten verfolgen und auf dieser Grundlage feststellen, dass der Verlauf unvollständig heruntergeladen wurde usw.

 

AlexSTAL:

Das sind nur Worte... Wir brauchen eine Nachbesprechung über das Warum und Wie... Es kann der Fehler eines falschen/unvollständigen Algorithmus des Expert Advisors sein

Was ist dann Ihr Rat, wenn Sie Algorithmen verwenden, um direkt im EA zu berechnen, damit Sie nicht mit untergepumpten Daten enden.

Wir müssen die Terminologie definieren. Was sind "unvollständige Daten"? Sie können in Ihrem EA eine eigene Funktion IndicatorCounted() erstellen, wie zum Beispiel diese: https://www.mql5.com/ru/articles/247

Vielleicht können Sie noch etwas hinzufügen, um die Zuverlässigkeit zu erhöhen?

Darüber hinaus können Sie das Überspringen von Takten verfolgen und auf dieser Grundlage feststellen, dass die Historie zu gering quantifiziert ist usw.

OK, ich werde mir den Artikel, auf den Sie sich beziehen, ansehen.

Über die zu wenig gesprungenen Daten... Da die Zeit verstrichen ist, werde ich die Protokolle nicht mehr zitieren können. Aber es sah in etwa so aus.

Bei American Broker ATC blieb EA eingeschaltet und das Terminal war geschlossen. Am nächsten Tag wurde das Terminal geöffnet, und nach dem Öffnen und dem automatischen Einloggen gab es eine Pause, in der keine Kurse angezeigt wurden. Der Expert Advisor schickte eine zusätzliche Aufforderung zur Eröffnung einer Position, woraufhin die Historie ausgetauscht wurde und die Position gemäß den Berechnungen vom Vortag in dem Bereich eröffnet wurde, in dem sie eigentlich hätte geschlossen werden sollen, aber sie wurde einfach eröffnet und verlor sofort gegen den Markt, der sich in die entgegengesetzte Richtung bewegte. Die Position wurde schließlich mit einem hohen Verlust geschlossen, ich weiß nicht mehr, wie hoch der Verlust war, aber es war eine Menge.

Ein weiterer Fall. Ich verließ einen Expert Advisor mit einer Kanalberechnung in seinem Algorithmus, ähnlich wie bei Bollinger, der aber viele Balken benötigt, weil er einen Anpassungsalgorithmus hat. Ich habe den Moment, in dem der Handel begann, nicht gesehen, aber ich habe ihn etwa 20 Minuten später gesehen. Es stellte sich heraus, dass Abweichungen vom angepassten Durchschnitt nicht berücksichtigt wurden und der Kanal in der Linie brach, als ob er auf dem Durchschnitt liegen würde. Mein Expert Advisor eröffnete und schloss eine Position nach der anderen und verlor in 20 Minuten etwa 4.500 $ um 0,2-0,3 Lots. 4.500$ auf einem absolut erfolgreichen Markt. Dies könnte der Fall sein, wenn es entweder nur sehr wenige Daten gibt oder wenn bei dem oben erwähnten Muster etwas fehlt.

Jetzt schalte ich EAs nach dem Handel immer aus. Jetzt deaktiviere ich sie immer, wenn ich das Terminal wieder öffne und warte, dass Daten gepumpt werden, und erst wenn ich mir sicher bin, schalte ich meine Expert Advisors ein, und normalerweise kann ich sie für eine lange Zeit eingeschaltet lassen.