template <typename T> void f( T& ) {} // Funktioniert nur für Objekte von Strukturen und Klassen. template <typename T> void OnlyObjects( T& ) { const T Tmp; f((T)Tmp); // .... } void OnStart() { int i; MqlTick Tick; OnlyObjects(Tick); // OK OnlyObjects(i); // Fehler }
In dem Artikel habe ich eine Funktion von MQL gesehen, die ich nicht kannte. Ein Beispiel für seine Verwendung.
Es gehört wahrscheinlich in einen anderen Artikel ;-) - https://www.mql5.com/de/articles/8028/ - dort wurden Vorlagen verwendet, und das Beispiel von dort wurde einfach vorgefertigt hierher verschoben.

- www.mql5.com
Stanislav, vielen Dank für Ihre Arbeit!
Warum sind nicht alle vier Charttypen (equi-, renge-, tick- und renko) in einem EA kombiniert? Gab es einen Grund, sie zu trennen, oder war es einfach einfacher, etwas Vorgefertigtes neu zu erstellen?
Eine sehr gute Idee. Außerdem würde der Handel aus dem Chart heraus eingebaut funktionieren.
Wen soll ich anpingen? @Renat Fatkhullin @Slava
Warum sind nicht alle vier Charttypen (equi-, renge-, tick- und renko) in einem EA vereint? Gab es Gründe, sie zu trennen, oder war es einfach einfacher, etwas Vorgefertigtes neu zu erstellen?
Erstens wurden sie historisch gesehen getrennt gemacht (um mit einigen Dingen zu beginnen, die nicht meine sind ;-). Zweitens hat IMHO jeder Charttyp seine eigenen Anhänger und es gibt kaum Überschneidungen (z.B. sind Tick-Fans keine Renko-Fans, und Timeshift ist ein ganz eigenes Lied). Drittens haben sie nur die Initialisierung gemeinsam, und zwar nicht vollständig, denn die Fortführung der Generierung nach dem Neustart sollte anders erfolgen. Es gab die Idee, das Gemeinsame in einen separaten includnik zu packen, aber unter Berücksichtigung von Punkt 2 ist es für alle einfacher, eine Datei ohne Abhängigkeiten zu wählen.
Erstens wurden sie historisch gesehen getrennt betrieben (einige sind nicht mein Ding ;-). Zweitens hat IMHO jede Art von Charts ihre eigenen Anhänger und sie überschneiden sich nicht viel (zum Beispiel sind Tick-Fans keine Renko-Fans, und Timeshift ist ein eigenes Lied). Drittens haben sie nur die Initialisierung gemeinsam, und zwar nicht vollständig, denn die Fortsetzung der Generierung nach einem Neustart sollte anders erfolgen. Es gab die Idee, das Gemeinsame in einen separaten includnik zu packen, aber unter Berücksichtigung von Punkt 2 ist es für alle einfacher, eine Datei ohne Abhängigkeiten zu wählen.
Nun, sie haben alle den gleichen Sinn - Ticks (oder Minuten) zu nehmen, und bauen ein Diagramm von ihnen ohne eine Zeitleiste.
Die Vorbereitung der Historie (idealerweise eine einmalige, mit Fortsetzung nach einer Pause an der richtigen Stelle), die Erzeugung neuer Balken und die Emulation von Ticks sind alle ähnlich. Nur die Regeln für "neuer Balken" sind unterschiedlich.
Aber ich verstehe die Antwort, ich würde auch mit der Anpassung von Vorgefertigtem beginnen, anstatt ein Fahrrad zu erfinden.
Lustig) und wer und wo positioniert es so?
Der MT5-Server meines Brokers kann eine schwebende Order nicht in 100 ms ausführen, wie kann es also HFT sein?)
Ganz zu schweigen davon, dass schwebende Aufträge als Marktaufträge ausgeführt werden.
Lustig) und wer und wo positioniert es so?
Der MT5-Server meines Brokers kann eine schwebende Order nicht in 100ms ausführen, was ist HFT).
Ganz zu schweigen davon, dass schwebende Aufträge als Marktaufträge ausgeführt werden.
https://www.mql5.com/en/welcome/en-metatrader-5-high-frequency-trading

- www.mql5.com
Renko
Um Renko-Charts zu realisieren, verwenden wir den nicht handelbaren Expert Advisor RenkoTicks.mq5. Er generiert Renko in Form von Kursen eines benutzerdefinierten Instruments, indem er echte Ticks verarbeitet (in MetaTrader 5 bei Ihrem Broker erhältlich). Die Kurse (Balken) des ursprünglichen Symbols und der Zeitrahmen des Arbeitscharts, in dem RenkoTicks platziert ist, spielen keine Rolle.
Eine Alternative zu benutzerdefinierten Symbolen beim Plotten von Renko könnte ein Indikator oder eine Zeichnung (mit Objekten oder auf Leinwand) sein,aber in beiden Fällen wäre es unmöglich, Indikatoren oder Skripte auf solche Pseudo-Grafiken anzuwenden.
Nun, warum so kategorisch sein. Sie können auf der Leinwand zeichnen, die Werte in den Indikatorpuffer schreiben und andere Indikatoren zum Preis "Daten des vorherigen Indikators" anwenden. Und das ist nur eine der primitivsten Varianten. Es gibt noch andere, fortgeschrittenere Varianten.
Nun, warum so kategorisch. Sie können auf der Leinwand zeichnen, die Werte in den Indikatorpuffer schreiben und andere Indikatoren zum Preis "Daten des vorherigen Indikators" anwenden. Und das ist nur eine der primitivsten Varianten. Es gibt noch andere, fortgeschrittenere Varianten.
Diese Lösung deckt nicht die ganze Vielfalt der in der Praxis verwendeten Werkzeuge ab.
Diese Lösung deckt nicht die gesamte Vielfalt der in der Praxis verwendeten Instrumente ab.
Diese Lösung erhebt nicht den Anspruch, die gesamte Vielfalt abzudecken, sondern soll nur die Behauptung widerlegen, dass es keine Möglichkeit gibt, Indikatoren auf einem Chart mit einem nicht standardmäßigen Taktschemazu verwenden .
Ich wiederhole - es gibt fortgeschrittenere Lösungen (wenn auch viel komplizierter), die bereits den Anspruch erheben können, "die gesamte Vielfalt" abzudecken.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Nutzerdefinierte Symbole: Praktische Grundlagen :
Der Artikel ist der programmatischen Generierung von nutzerdefinierten Symbolen gewidmet, die zur Demonstration einiger gängiger Methoden zur Anzeige von Ticks verwendet werden. Er beschreibt eine vorgeschlagene Variante der minimal-invasiven Anpassung von Expert Advisors für den Handel mit einem realen Symbol aus einem abgeleiteten nutzerdefinierten Symbolchart. Die MQL-Quellcodes sind diesem Artikel beigefügt.
Der EA erlaubt auch die Verwendung des Realvolumenmodus für Austauschinstrumente:
Das ursprüngliche (a) und das äquivolumige (b) LKOH Chart mit dem realen Volumen von 10000 pro Balken, erzeugt durch den EqualVolumeBars EA in MetaTrader 5
Der Zeitrahmen des Symbols, auf dem der EA läuft, ist nicht wichtig, da für die Berechnungen immer entweder M1-Balken oder Tick-Historie verwendet werden.
Der Zeitrahmen der nutzerdefinierten Symbolcharts muss gleich M1 sein (der kleinste verfügbare Zeitrahmen im Terminal). Daher entspricht die Zeit der Balken in der Regel eng mit ihrem Entstehungsmoment. Bei starken Marktbewegungen jedoch, wenn die Anzahl der Ticks oder die Größe der Volumen mehrere Balken pro Minute bildet, ist die Zeit der Balken den realen voraus. Wenn sich der Markt beruhigt, werden sich die Zeitmarken der Balken mit gleichem Volumen wieder normalisieren. Diese Plattformbegrenzung ist wahrscheinlich nicht besonders kritisch für Balken mit gleichem Volumen oder gleicher Spanne, da die eigentliche Idee solcher Charts darin besteht, sie von der absoluten Zeit loszubinden.
Autor: Stanislav Korotky