Friday, February 10, 2017

Moving Average Ring Puffer

MetaTrader 5 - Indikatoren Die Klasse, die MACD mit dem Ringpuffer-Indikator für MetaTrader 5 zeichnet Die CMACDOnRingBuffer-Klasse ist für die Berechnung des technischen Indikators Moving Average ConvergenceDivergence (Moving Average ConvergenceDivergence, MACD) mit dem Algorithmus des Ringpuffers ausgelegt. Datei der CMACDOnRingBuffer. mqh-Klasse sollte in dem IncOnRingBuffer-Ordner platziert werden, der in MQL5Include eingerichtet werden muss. Zwei Dateien mit den Beispielen, die von der Klasse aus diesem Ordner verwendet werden, sind der Beschreibung beigefügt. Die Datei mit der Klasse des Ringpuffers und die Klasse des Moving Average müssen sich ebenfalls in diesem Ordner befinden. Um die berechneten Daten des Indikators aus dem Ringpuffer zu erhalten, ist es möglich, das übliche Array zu verwenden. Beispiel: Beachten Sie, dass die Indexierung im Ringpuffer dieselbe ist wie in der Zeitreihe. Die Datei TestMACDOnArrayRB. mq5 berechnet den Indikator anhand der Zeitreihen. Die MainOnArray () - Methodenanwendung wird demonstriert Die TestMACDOnValueRB. mq5-Datei demonstriert die Verwendung der MainOnValue () - Methode. Zuerst wird die MACD-Anzeige berechnet und gezeichnet. Dann wird auf der Basis des Ringpuffers dieses Indikators ein weiterer MACD-Indikator gezeichnet. Das Ergebnis der Arbeit des TestMACDOnArrayRB. mq5 mit der Größe des Ringpuffers von 256 Elementen das Ergebnis der Arbeit des TestMACDOnValueRB. mq5 mit der Größe des Ringpuffers von 256 elementsMetaTrader 5 - Indikatoren Die Klasse zum Zeichnen von Moving Average mit Der Ringpuffer - Indikator für MetaTrader 5 Die CMAOnRingBuffer-Klasse dient zur Berechnung von Moving Averages (Moving Average) mit dem Algorithmus des Ringpuffers. Datei der CMAOnRingBuffer. mqh-Klasse sollte in dem IncOnRingBuffer-Ordner platziert werden, der in MQL5Include eingerichtet werden muss. Zwei Dateien mit den Beispielen, die von der Klasse aus diesem Ordner verwendet werden, sind der Beschreibung beigefügt. Die Datei mit der Klasse des Ringpuffers muss sich ebenfalls in diesem Ordner befinden. Um die berechneten Daten des Indikators aus dem Ringpuffer zu erhalten, ist es möglich, das übliche Array zu verwenden. Zum Beispiel: Beachten Sie, dass die Indizierung im Ringpuffer die gleiche ist wie in einer Zeitreihe. Der Indikator berechnet die TestMAOnArrayRB. mq5-Datei auf Basis der Preis-Zeitreihen. Die MainOnArray () - Methodenanwendung wird demonstriert Die TestMAOnValueRB. mq5-Datei veranschaulicht die Verwendung der MainOnValue () - Methode. Zuerst wird der MA-Indikator berechnet und zeichnet. Dann wird auf der Basis des Ringpuffers dieses Indikators ein weiterer Indikator berechnet. Das Ergebnis der Arbeit des TestMAOnArrayRB. mq5 mit der Größe des Ringpuffers von 256 Elementen Das Ergebnis der Arbeit des TestMAOnValueRB. mq5 mit der Größe des Ringpuffers von 256 Elementen weiß ich, dass dies mit dem Boost nach: Aber möglich ist Ich möchte wirklich vermeiden, mit Boost. Ich habe gegoogelt und keine geeigneten oder lesbaren Beispiele gefunden. Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahlstroms mit den letzten 1000 Zahlen als Datenprobe verfolgen. Was ist der einfachste Weg, um dies zu erreichen, experimentierte ich mit einem kreisförmigen Array, exponentiellen gleitenden Durchschnitt und einem einfacheren gleitenden Durchschnitt und festgestellt, dass die Ergebnisse aus dem kreisförmigen Array meine Bedürfnisse am besten geeignet. Wenn Ihre Bedürfnisse sind einfach, können Sie nur versuchen, mit einem exponentiellen gleitenden Durchschnitt. Setzen Sie einfach, Sie eine Akkumulator-Variable, und wie Ihr Code sieht auf jede Probe, aktualisiert der Code den Akkumulator mit dem neuen Wert. Sie wählen eine konstante Alpha, die zwischen 0 und 1 ist, und berechnen Sie: Sie müssen nur einen Wert von Alpha zu finden, wo die Wirkung einer gegebenen Probe nur für etwa 1000 Proben dauert. Hmm, Im nicht wirklich sicher, dass dies für Sie geeignet ist, jetzt, dass Ive es hier. Das Problem ist, dass 1000 ist ein ziemlich langes Fenster für einen exponentiellen gleitenden Durchschnitt Im nicht sicher, gibt es ein Alpha, die den Durchschnitt über die letzten 1000 Zahlen, ohne Unterlauf in der Gleitkomma Berechnung. Aber, wenn Sie einen kleineren Durchschnitt wünschen, wie 30 Zahlen oder so, dieses ist eine sehr einfache und schnelle Weise, es zu tun. Beantwortet Jun 12 12 at 4:44 1 auf Ihrem Beitrag. Der exponentielle gleitende Durchschnitt kann zulassen, dass das Alpha variabel ist. Somit kann dies dazu verwendet werden, Zeitbasisdurchschnitte (z. B. Bytes pro Sekunde) zu berechnen. Wenn die Zeit seit dem letzten Akkumulator-Update mehr als 1 Sekunde beträgt, lassen Sie Alpha 1.0 sein. Andernfalls können Sie Alpha zulassen (usecs seit letztem update1000000). Ndash jxh Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahls mit den neuesten 1000 Zahlen als Datenbeispiel zu verfolgen. Beachten Sie, dass im Folgenden die Summe als Elemente als addiert ergänzt wird, wobei kostspielige O (N) - Transversionen vermieden werden, um die Summe zu berechnen, die für den durchschnittlichen Bedarf erforderlich ist. Insgesamt wird ein anderer Parameter von T gebildet, um z. B. Mit einem langen langen, wenn insgesamt 1000 lange s, eine int für char s, oder eine doppelte bis total float s. Dies ist ein wenig fehlerhaft, dass Nennsignale an INTMAX vorbeiziehen könnten - wenn Sie darauf achten, dass Sie ein langes langes nicht signiertes verwenden konnten. Oder verwenden Sie ein zusätzliches Bool-Datenelement, um aufzuzeichnen, wenn der Container zuerst gefüllt wird, während numsamples rund um das Array (am besten dann umbenannt etwas harmlos wie pos). Man nehme an, daß der quadratische Operator (T-Abtastwert) tatsächlich quadratischer Operator (T-Abtastwert) ist. Ndash oPless Jun 8 14 um 11:52 Uhr oPless ahhh. Gut beobachtet. Eigentlich meinte ich, dass es sich um void operator () (T sample) handelt, aber natürlich könntet ihr auch irgendeine Notation verwenden, die ihr mochtet. Wird beheben, danke. Ndash Tony D Jun 14 14 am 14:27


No comments:

Post a Comment