Diskussion zum Artikel "Nutzerdefinierte Symbole: Praktische Grundlagen"

 

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:

Der LKOH Original Chart mit dem realen Volumen von 10000 pro Barren, generiert kaufen die EqualVolumeBars EA in MetaTrader 5

Das LKOH Chart mit gleichen Volumina mit dem realen Volumen von 10000 pro Balken, generiert durch den EqualVolumeBars EA in MetaTrader 5

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

 
In dem Artikel habe ich eine Funktion von MQL gesehen, die ich nicht kannte. Ein Beispiel für seine Verwendung.
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
}
 
fxsaber:
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.

Вычисление математических выражений (Часть 2). Парсеры Пратта и сортировочной станции
Вычисление математических выражений (Часть 2). Парсеры Пратта и сортировочной станции
  • www.mql5.com
В этой статье мы продолжаем изучать различные методы парсинга математических выражений и их реализацию на языке MQL. В первой части были рассмотрены парсеры рекурсивного спуска. Их главное достоинство — интуитивно понятное устройство, напрямую связанное с конкретной грамматикой выражений. Но если речь заходит об эффективности и технологичности...
 

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?


К сожалению, имя исходного символа и созданного на его основе ренко никак нельзя связать средствами самой платформы. Было бы удобно иметь среди свойств пользовательского символа строковое поле "origin" (источник) или "parent" (родитель), в которое мы могли бы записать имя реального рабочего инструмента. По умолчанию оно было бы пустым, но если его заполнить, то платформа могла бы автоматически и прозрачно для пользователя подменять символ во всех торговых приказах и запросах истории.

Eine sehr gute Idee. Außerdem würde der Handel aus dem Chart heraus eingebaut funktionieren.

Wen soll ich anpingen? @Renat Fatkhullin @Slava

 
Andrey Khatimlianskii:

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.

 
Stanislav Korotky:

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.

 
MetaTrader 5 hat die Unterstützung für echte Tick-Historie hinzugefügt und die Plattform selbst ist unter anderem als Werkzeug für den Hochfrequenzhandel (HFT) positioniert. <br/ translate="no">

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.

 
secret:

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

MetaTrader 5 – the best solution for HFT traders!
MetaTrader 5 – the best solution for HFT traders!
  • www.mql5.com
Speed is a key attribute of High-Frequency Trading. Everything from data delivery and trade execution to the instant analysis based on huge amounts of data using hundreds of analytical tools must be as fast as possible. All this is available in MetaTrader 5! In MetaTrader 5, quotes are updated dozens of times per second. The quoting speed is an...
 
Stanislav Korotky:

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.





 
Nikolai Semko:

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.

 
Andrey Khatimlianskii:

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.