![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie wollen also, dass ich weiterhin die Vorteile von OOP herunterspiele, und jeder trollt mich weiter?) Aber im Wesentlichen haben Sie Recht. Die Diskussion ist in die falsche Richtung gegangen.
Aber ich trolle mich nicht. Reagieren Sie einfach nicht auf Trolle.
In TWS werden die Balken unabhängig vom Eintreffen einer Notierung nach der Zeit gebildet. Wenn es keine Notierung gibt und es Zeit für einen neuen Balken ist, erscheint der Balken als Strich auf dem Preis der letzten Notierung. In diesem Fall werden alle Indikatoren auf die gleiche Weise gezeichnet wie in MT. Alle meine Ideen über Bars stammen aus der Erfahrung der Arbeit mit TS.
Wenn es in MT genauso wäre, wäre meine Lösung die effektivste. Es ist jedoch nicht...
Daher werde ich es nicht mehr zur Verwendung vorschlagen.
Peter, ich schlage ein anderes Thema zur Diskussion vor, zum zweiten Mal. Sie brauchen nichts zu schreiben, nur Theorie.
Aber ich trolle mich nicht. Trolle reagieren einfach nicht.
Es kann also sein, dass der Balken nicht bei der Anforderung von iBars eintrifft, sondern erst einen Moment nach der Anforderung. Dann wird es dem System fehlen. Genau das ist der Punkt.
Was dann, wenn man ständig darauf zugreift? - Das ist eindeutig nicht die beste Lösung.
Aber wenn jemand einen neuen Takt so schnell wie möglich erhalten muss, ohne OnTimer abzufragen, gibt es benutzerdefinierte Interrupts.
Wenn Sie das Konzept der Bar hier neu überdenken, wird sich alles von selbst ergeben. Es würden Ressourcen eingespart und die Lösung wäre einfach. Meiner Meinung nach sollte der Balken mit der Zeit und nicht mit den Anführungszeichen verbunden sein.
Es liegt also kein Fehler in meinem Code vor. Es gibt einen Unterschied im Konzept der Balken zwischen den Plattformen.
Was gibt es da zu diskutieren?Polymorphismus in seiner reinen Form. OOP-Regeln.
Für diejenigen, die sich auskennen, gibt es nichts zu diskutieren. Hier ist ein Beispiel dafür, wie ich zu dem Entschluss kam, zumindest ein wenig über OOP zu lernen.
Nicht umsonst habe ich die Funktion der Definition eines neuen Balkens als Beispiel genommen. Mit dieser Funktion hat alles begonnen. Die Funktion, die einen neuen Balken an der aktuellen TF definiert, wurde vor langer Zeit geschrieben. Plötzlich brauchte ich sie auch, aber ich entdeckte sie in einer bestimmten TF. Nun, kein Problem. Ich habe ihn mit einem halben Klick umgeschrieben. Aber plötzlich brauche ich sie nur noch für die aktuelle TF. Warum sollte ich PERIOD_CURRENT an diese Funktion übergeben? Kein Problem, ich habe es noch einmal umgeschrieben und jetzt habe ich zwei Funktionen mit unterschiedlichen Namen.
Ich weiß nicht, wie oft ich es noch umschreiben oder mir merken muss, wen ich anrufen soll. Und als ich verstand, dass ich mehrere Funktionen mit einem Namen und unterschiedlichen Eingabeparametern haben konnte, war meine Qual vorbei...
Es stellt sich heraus, dass in meinem Code kein Fehler vorliegt. Es gibt einen Unterschied im Konzept der Balken zwischen den Plattformen.
Übrigens, wenn in meiner Lösung nur die Häufigkeit des Füllens des Arrays ändern und statt eine Minute zu pausieren, Zugriff einmal pro Sekunde, könnte das Problem vollständig gelöst werden. In diesem Fall ist es unwahrscheinlich, dass die Belastung des Systems zunimmt. Sie können es überprüfen.
Ersetzen Sie if(Minute*Timer_Frequenz >= 60000) durch if(Minute*Timer_Frequenz >= 1000).
Tut mir leid, Pjotr, aber dein Code ist einfach nur chaotisch.