Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Indikatoren

iSpread ist ein Spread-Indikator für das Handeln mit Paaren - Indikator für den MetaTrader 5

Ansichten:
1264
Rating:
(32)
Veröffentlicht:
2016.06.23 14:19
Aktualisiert:
2016.11.22 07:34
ispread.mq5 (16.72 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Durch die Verwendung dieses Indikators können Sie ein synthetisches Symbol basieren auf zwei ausgewählten Paaren erzeugen.

Der Algorithmus für den Indikator ist wie folgt:

Auswahl der initialen Daten

  1. Start date - Auswahl des Starttages um ein synthetisches Symbol zu bilden. Notwendig um die Verwendung unnötiger alter Historiendaten zu vermeiden.
  2. Symbol 1/2 - Auswahl von zwei initialen Paaren.
Der nächste Schritt ist die Vorbereitung der Eingabedaten.

Daten Konvertierung

  1. Action - Auswahl einer arithmetischen Operation die verwendet wird, um die zwei Reihen in eine zusammenzuführen. Es gibt 4 verfügbare Operationen: - + / * Ich habe die Differenz und das Verhältnis verwendet. Wahrscheinlich wird die Summe und das Produkt ebenfalls notwendig sein, aber ich habe das nie getan. Ich wäre froh, wenn mir jemand schreibt, wie man sie verwenden kann.
  2. Symbol reverse 1/2 - invertiere eine ausgewählte Reihe wenn die Korrelation negativ ist.
  3. Symbol degree 1/2 - Exponentiation der ausgewählten Serie. Ich weiß, dass es notwendig ist, obwohl ich nie diese Option verwende weil ich nicht genau verstehe, warum man die Reihe exponentieren soll. Ich denke, diese Option kann verwendet werden um die Dimensionen der beiden Serien gleichzusetzen, aber ich verwenden dafür Multiplikatoren. Wenn diese Annahme stimmt, was ist dann der Vorteil eines Ansatzes gegenüber dem anderen?
  4. Symbol multiplier 1/2 - multiplizieren einer Reihe mit einer bestimmten Zahl. Ich verwende das, um die Reihen gleichzusetzen.
  5. Logarithms - konvertiere die Ergebnisreihe in eine logarithmische Skala. Wenn ich den Logarithmus verwend, bereite ich die endgültige Reihe vor, indem ich die Differenz zwischen den beiden Originalreihen verwende. Wenn Sie das nicht verwenden, dann wählen Sie ratio als Aktion. Im Allgemeinen können Sie durch Konvertierung in diese Skala den Einfluss des quadratischen Trends vermeiden. Aber ich sehe keinen Unterschied in kurzen Abschnitten, daher verwende ich es oft nicht und wähle als Aktion ratio. Sollte ich falsch liegen, würde ich mich über Ihre Kommentare freuen.
  6. Smoothing.Period - Wenn alle Aktionen ausgeführt wurden, wird manchmal eine leichte Glättung der resultierenden Daten vor der Vereinigung der beiden Reihen verwendet. Ich glätte diese Reihen durch einen einfachen gleitenden Durchschnitt (MA) mit einer bestimmten Periode. Es verursacht praktisch keine Verzerrung, aber es können einige Spikes und Non-Market-Quotierungen weggeschnitten werden. Sie können einstellen, dass keine Glättung verwendet wird, indem Sie 0 für diesen Parameter festlegen. Bei Verwendung kurzer Perioden um Trends zu entfernen (siehe weitere Optionen), verwende ich keine Glättung. Die Glättung bewirkt keinen Datenverlust, wenn sie auf große Werte angewendet wird, wobei die finale Reihe glatter mit weniger Rauschen wird.

Das ist alles, was wir tun müssen, um die Daten vorzubereiten und ein synthetisches Symbol zu generieren. Das haben wir gemacht:

Wir haben EURUSD genommen:

eurusd

Wir haben GBPUSD genommen:

gbpusd

Dies ist das synthetische Symbol:

synthetic symbol


Der letzte Schritt ist die die Bestimmung der benötigten Abweichung um Einstiegspunkte zu finden:

Finden von Abweichungen

  1. Selecting an Algorithmus - Trendentfernung durch Verwendung eines einfachen gleitenden Durchschnitts (MA) oder den ersten Unterschied. Den Trend von der resultierenden Reihe entfernen. Ich kenne zwei Arten um das zu bewerkstelligen (ich bebvorzuge die zweite). Die erste Art ist, den gleitenden Durchschnitt mit einer notwendigen Periode (Lücke) aus der resultierenden Reihe zu entfernen. Die Periode wird auf Basis des Anlagehorizontes gewählt. Der gleitende Durchschnitt (MA) wird basierend auf einem einfachen Algorithmus gebildet. Es ist immer noch nicht klar, ob es Sinn macht das Exponential zu verwenden und was der Unterschied ist. Ich würde mich über Ihre Kommentare dazu freuen. Die zweite Art: nehme die erste Differenz zweimal, zuerst für jedes Paar, dann die Differenz zwischen den Ergebnissen. Die finalen Ergebnisse dieser zwei Arten sich ähnlich, wenn es keine starken Bewegungen in einer der Reihen gibt. Wenn es eine starke Bewegung gibt, liefert die erste Art ein schnelleres Ergebnise des synthetischen Ergebnis gleich 0, was oft eine falsche Indikation ist. Eine Bemerkung zur ersten Differenz: Statt Close[1]-Close[2] verwende ich Close[1]/Close[2], d.h. das "erste Ratio", obwohl ich das noch nie so gesehen habe.
  2. Period for the Algorithmus - eine Lücke, ein Offset. Ich setze das auf 0, das synthetische Symbol wird nicht verändert.
  3. Show levels - zeige oder verstecke Abweichungslevels, Kreuzungen die eine Entscheidung zum Einsteig in den Markt anzeigen. Ich verwende drei Levels in beide richtungen: rot, gelb, grün.
  4. Level Berechnung Methode - Ich kenne drei Arten diese Levels zu bestimmen. Methode 1 (Normalisierung zwischen 0..1 mit einem Offset genannt) - das trendbereinigte synthetische Symbol wird in einem Einheitsbereich normalisiert, gefolgt von einem Offset = -0.5 so dass es Fluktuationen um 0 gibt. Diese Methode verwende ich am häufigsten. Beachten Sie aber bitte, dass die verfügbaren initialen Daten immer noch normalisiert werden, wenn wir keine stabilen Extrema haben und diese Werte sollten nicht berücksichtigt weden. Da der Indikator die Vergangenheit nicht neu zeichnet, wenn ein aktualisiertes Extreme kommt, sieht das am Chart wie folgt aus:

Normalisierung


Aber nach zwei oder drei guten Divergenzen der initialen Reihen können Sie langsam diesen Levels trauen. Extrema für die Normalisierung gehen nicht verloren, da die Daten akkumuliert werden.

Methode 2 (Levels der Extrema genannt) - einfach nur die absolute maximale Abweichung verfolgen und Teilung in 3 Levels für den Einstieg in den Markt.

Die Funktionen sind die gleichen wie bei der Normalisierung - es empfiehlt sich nicht, solchen Werten zu trauen, bis Sie stabile Extrema erhalten.

Bei Verwendung dieser Methode sehen wir folgendes Bild:

Abweichungen der Extrema

Es gibt einen signifikatnen Vorteil der Verwendung einer der obigen Methoden zum Zeichnen der Levels - die Levels werden nicht eingeengt. Aber es gibt auch einen Nachteil - wenn es einen Gipfel gibt, werden nachfolgende Berechnungen von diesem geführt. Um das zu entfernen hat der Indikator einen weiteren Parameter namens Levels Coefficient (das ist einfach nur ein Faktor, der es Ihnen erlaubt, die Levels für den Markteinstieg einzuengen oder auszuweiten).

Methode 3 zum Zeichnen von Levels - Berechnung der Standardabweichung. Diese Methode wurde im Indikator nicht implementiert, weil das eine Einengung der Level verursacht, was meiner Meinung nach inakzeptabel ist. Als Ergebnis schauen die Levels wie Blasen aus die kontinuierlich gequetscht und gestreckt werden. Ich können leider keine Screenshots machen, da ich diese Berechnungsmethode aus allen Indikatoren entfernt habe. Ein weiterer Nachteil ist, dass Sie ständig alle verfügbaren Daten um alles korrekt zu berechnen überprüfen müssen.

P.S. Der Indikator wurde von MetaTrader 4 migriert um eine Ideen im Multitester zu prüfen, aber es gibt einige Bemerkungen:

  1. Der Indikator zeichnet etwas Rauschen wenn er nicht alle Daten bekommt. Ich konnte den Grund nicht herausfinden, in MetaTrader 4 passiert es nicht;
  2. Der Indikator könnte vorhergehende Daten verwenden, wenn er auf Datenlücken in der Historie stößt, aber wegen Absatz 1 habe ich die Daten leer gelassen, sodass wir genau sehen können, wo Daten ausgelassen wurden.
  3. Wenn irgendetwas eigenartiges gezeichnet wird, aktualisieren Sie den Chart, ändern die Periode/das Paar usw.
  4. Ich habe versucht den Timer zu verwenden, wenn es keine Daten gab - das Ergebnis war nicht zufriedenstellen, daher habe ich den Timer gelöscht.
  5. Ich vermute, dass 1-4 aus meiner "nicht ausreichenden" Kenntnis der MQL5 resultieren, daher würde ich Ihre Kommentare schätzen.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/2197

BB-HL BB-HL

Eine weitere Variante von Bollinger Bändern. In diesem Indikator werden Hoch und Tief-preise anstatt des Schlusskurses für die Berechnung der Standardabweichung verwendet.

BBands_Stop_v1_HTF BBands_Stop_v1_HTF

Der BBands_Stop_v1 Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

BWImp-T01 BWImp-T01

Ein nicht normalisierter Trend-Oszillator.

Simple EA Simple EA

Einfachster Roboter der kauft und verkauft!