Saturday 18 February 2017

Semaphore Indikator Forex

3LevelZZSemafor (Anzeige für MT4) Sehr interessanter Indikator. Vielen Dank, wie viele Takte zurück es neu lackiert (oder tut es) Letztes Semaphore bewegt sich immer zusammen mit dem Preis bis dann wird noch nicht fixiert 1. Stufe des Preises. Doch wird nicht brechen die Ebenen der ersten oder zweiten vorherigen Semaphoren 2. Acoording Zeit. Wenn die letzte Semaphore lange Zeit zwischen zwei vorherigen, über ein Zeitintervall ist, wird es ihre Festsetzung sein. Danke, viel Glück asystem2000: Letztes Semaphore bewegt sich immer zusammen mit dem Preis bis dahin wird noch nicht fixiert 1. Stufe des Preises. Doch wird nicht brechen die Ebenen der ersten oder zweiten vorherigen Semaphoren 2. Acoording Zeit. Wenn die letzte Semaphore lange Zeit zwischen zwei vorherigen, über ein Zeitintervall ist, wird es ihre Festsetzung sein. Vielen Dank, der Indikator sieht gut aus bei 4 H und EOD, was denkst du über itMetaTrader 5 - Trading-Systeme Einfache Trading-Systeme mit Semaphore-Indikatoren Einleitung Semaphore oder Signal-Indikatoren sind einfache Detektoren, die die Momente für Markteintritt oder Ausgang zu zeigen. Falls an der aktuellen Leiste ein Eingangssignal vorhanden ist, erscheint ein entsprechender Aufkleber auf einer Symboltafel. Dieses Label kann dann als Bedingung für die Durchführung eines Deals verwendet werden. Es gibt viele Indikatoren dieser Art, aber das Wesen des ursprünglichen Handelssystems, das auf solchen Indikatoren basiert, hat sich nicht geändert. Daher ist es eine gute Idee, es in der einfachsten und universellen Form zu implementieren. Dies ermöglicht eine weitere Verwendung des erhaltenen Ergebnisses, wenn mit ähnlichen Indikatoren ohne wesentliche Änderungen gearbeitet wird. Fig. 1 ASCtrend-Semaphoresignalanzeige Abb. 2. Trading-Signal für die Durchführung eines Deal mit ASCtrend Semaphor Signal-Indikator Proben von typischen Semaphore Signal Indikatoren Derzeit gibt es viele solcher Indikatoren in Code Base. In diesem Artikel werde ich nur einige Links zu den entsprechenden Webseiten anbieten: Neben den Semaphorsignal-Indikatoren gibt es eine Gruppe von Semaphore-Trend-Indikatoren: Abb. Semaphore-Trendanzeiger Abb.4. Trading-Signal für die Durchführung eines Deal mit Heiken Ashi geglättet Semaphore Trend Indikator Handelssysteme mit solchen Indikatoren haben etwas unterschiedliche Code für immer Trading-Signale, während der Expert Advisor-Code bleibt fast unverändert. Muster der typischen Semaphore Trend Indikatoren Code Base enthält viele solcher Indikatoren. In diesem Artikel werde ich nur einige Links zu den entsprechenden Webseiten anbieten: Basisdaten für die Erstellung eines Handelssystems: Semaphore-Indikator mit den Eingabeparametern, die im Expertenratgeber vorhanden sein sollen Liste der zusätzlichen Expert Advisor-Handelsparameter: a Anteil der in einem Deal verwendeten Grösse von Stop Loss und Take Profit (ausstehende Aufträge dürfen nicht bei Nullwerten verwendet werden) Rutschen (maximal zulässige Differenz zwischen Soll - und Istpreis) Index der Bar, von der Trading-Signale werden erhalten Berechtigungen für die Eröffnung von Long-und Short-Positionen Berechtigungen für die erzwungene Schließung von langen und kurzen Positionen nach Indikator Signale. Natürlich wäre es viel bequemer, Aufträge für die Durchführung von Geschäften mit universellen Handelsfunktionen zu geben. Diese Funktionen sind sehr komplex und sollten in einer separaten Bibliotheksdatei verpackt werden, um den Anwendungscode so einfach wie möglich zu machen. Der Code des Expertenberaters, der das Semaphor-Handelssystem implementiert: Der Code für die Verwirklichung einer solchen Idee ist ganz einfach und klar, obwohl einige Details geklärt werden sollten. Die Diagrammperiode, die von einer Signalanzeige und einem Expertenratgeber verwendet wird, ist in der Eingangsvariablen InpIndTimeframe des Expertenberaters festgelegt. Daher ändert der Wechsel eines Diagramms, an dem sich ein Expertenratgeber befindet, diesen Parameter für den Expertenratgeber nicht. IsNewBar () - Funktion benötigt für die Bestimmung der Moment einer neuen Bar-Ankunft wird als Klasse in der TradeAlgorithms. mqh-Datei platziert implementiert. Dies ermöglicht es, eine beliebige Anzahl solcher Funktionen in dem Code leicht zu verwenden, indem eine individuelle statische CIsNewBar-Variable für jeden von ihnen eingestellt wird. UpSignalTime - und DnSignalTime-Variablen werden zum Speichern und Übertragen der Zeit, nach der es möglich ist, den nächsten Deal nach dem vorherigen durchzuführen, zu Handelsfunktionen verwendet. In unserem Fall wird dieses Merkmal verwendet, um zu vermeiden, dass mehrere Deals in derselben Richtung an derselben Bar ausgeführt werden (bei der Durchführung eines Deals speichert die Handelsfunktion die Zeit des aktuellen Bar Ends und führt keine neuen Deals in derselben Richtung bis zu diesem aus Moment). Der Block Die Suche nach der letzten Handelsrichtung, um Signale für die Schließung von Positionen in der Funktion OnTick () zu erhalten, wird benötigt, um Positionen zu empfangen, die Signale auf den Balken ohne Handelssignale schließen. Im Falle eines Expert Advisor normalen Betrieb, gibt es keine Notwendigkeit in ihnen. Aber im Falle der Internet-Verbindung Ausfall, ist es durchaus möglich, dass ein neues Trading-Signal verpasst werden. Es ist kaum eine gute Idee, in das Marktpost-Factum einzutreten, aber es wäre ein kluger Schritt, die offenen Positionen zu schließen. Verwenden des Handelssystems mit anderen Semaphor-Signal-Indikatoren Wenn es notwendig ist, diesen Code mit einer anderen Semaphoresignal-Anzeige zu verwenden, sollten folgende Aktionen durchgeführt werden: Ersetzen Sie die vorherigen Indikatordaten durch die notwendigen Parameter des neuen in einem Experten-Berater Eingabeparameter Ändern Sie den Code des Erhaltens des Indikatorhandles im OnInit () - Block Bestimmen Sie die Indizes für die Indikatorpuffer, die zum Speichern von Kauf - und Verkaufssignalen aus dem Indikatorcode verwendet werden, und geben Sie diese in CopyBuffer () - Funktionsaufrufen von OnTick () Block. In diesem Fall werden Null - und erste Indikatorpuffer verwendet. Ändern der Initialisierung der Datenberechnungsstartpunktvariablen (minratestotal) in einem Expertenratgeber gemäß dem Kennzeichencode Ändern des Blocks Suchen nach der letzten Handelsrichtung, um Signale für die Schließpositionen in OnTick ( ) - Funktion gemäß dem Kennzeichencode. Verwendung des Trading-Systems mit anderen Semaphore-Trendindikatoren Bei Verwendung dieses Trading-Systems mit Semaphore-Trendindikator hat der Expert Advisor-Code ein Bit im Block für die Bestimmung von Signalen für OnTick () - Funktionsabschlüsse geändert. Beispielsweise sieht der Code wie folgt für den Expert Advisor aus, der auf dem FiboCandles-Indikator basiert: In diesem Fall werden die Trading-Signale von nur einem Farbindikatorpuffer (mit Farbindizes) empfangen. Die Daten in diesem Puffer können nur zwei Werte haben: 0 - für aufsteigenden Markt und 1 - für absteigende. Auf der Suche nach der letzten Trading-Richtung zum Erhalten von Positionsschließsignalen ist der Blockcode so einfach wie möglich geworden, da eine Trendrichtung an jedem Balken direkt von der entsprechenden Zelle des Indikatorpuffers empfangen werden kann. Bei den Performing Deals blockieren die Funktionen der Positionen, die zuerst schließen, gefolgt von den Öffnungsfunktionen. Im Falle der entgegengesetzten Sequenz ist es nur möglich, die Deals auf einer Bar zu schließen, Sie werden nicht in der Lage sein, sie gleichzeitig zu öffnen, wenn die Prüfung in der Open-Preise nur Modus Daher wird das Handelsergebnis ernsthaft gestört werden. Testen des Handelssystems Bevor Sie mit der Prüfung des Handelssystems beginnen, sollte ein wichtiges Detail geklärt werden. Falls der Wert der Signalband-Eingangsvariablen gleich Null ist, erhält der Expertenrat Berichte, die Signale von der aktuellen Leiste ausführen. Das aktuelle Balken-Signal ist jedoch nicht zuverlässig, um die Veränderung des Trends anzuzeigen, der gegen dieses Signal an dem vorherigen Balken verschoben wurde. Die Signale auf dem aktuellen Balken können erscheinen und verschwinden, während sich eine Tendenz längere Zeit gegen solche Signale bewegen kann. Dies ist leicht zu sehen, wenn ein Expert Advisor auf alle Ticks mit aktivierter Visualisierung und SignalBar-Variable gleich Null getestet wird. Die ASCtrend-Indikatorbetriebsvisualisierung zeigt in einem solchen Fall einen sehr deutlichen Beweis für diese Tatsache. Auch hier ist nur jeder Tick-Modus für eine Expert Advisor-Optimierung mit einem Signal aus dem aktuellen Balken geeignet. Falls es von einer anderen bereits geschlossenen Bar empfangen werden soll, ist der Open-Modus nur Modus genug. Das beschleunigt die Analyse der Trading-System-Analyse ohne ernsthafte Verluste in ihrer Qualität. Daher ist es besser, keine Signale aus der aktuellen Leiste zum Testen und Optimieren solcher Trading-Systeme zu verwenden. So können Sie den Expert Advisor mit den Standardparametern auf EURUSD seit Anfang des Jahres bis Anfang Dezember testen: Abb.5. Prüfergebnisse von ExpASCtrend Expert Advisor mit Default-Parametern auf EURUSD H1 Nach dem Ändern der Expert Advisor-Einstellungen im Strategy Tester finden wir die passende Kombination der Expert Advisor-Parameter für bestehende historische Daten ganz einfach: Abb.6. Prüfergebnisse von ExpasCtrend Expert Advisor nach Optimierung mit besseren Parametern auf EURUSD H1 Der Prozess der Trading-Systemoptimierung hat keine Besonderheiten, deshalb werde ich nur einen Link zu dem Artikel anbieten, der diesen Prozess beschreibt: MQL5: Guide to Testing Und Optimierung von Expertenberatern in MQL5. Natürlich wäre es naiv, einige herausragende Gewinne aus einem solchen einfachen Handelssystem zu erwarten. Aber es ist durchaus möglich, gute Ergebnisse zu erzielen, wenn dieses halbautomatische System geschickt gehandhabt wird und entsprechend dem Marktstromverhalten regelmäßig abgestimmt wird. Beispielsweise gab es von Januar bis Mai einen Aufwärtstrend auf EURUSD H12-Chart im Jahr 2011. Und es war leicht im frühen Stadium zu erkennen: Abb.7. EURUSD H12 chart (JanuaryMay 2011) Es wäre interessant, den Expert Advisor auf dieses Zeitintervall mit den Default-Einstellungen, die Möglichkeit, nur zu kaufen und die Verwendung von nur 5 einer Anzahlung (MM0.05) zu testen. Hier sind die Ergebnisse des Expertenberaters mit solchen Parametern, die auf dem H1-Diagramm getestet wurden: Abb.8. Prüfergebnisse von ExpASCtrend Expert Advisor mit Standardparametern auf EURUSD H1 für JanuarMay 2011 (nur Longpositionen, MM0.05) Selbstverständlich ist in diesem Fall ein Trader für die Auswahl einer Deal-Richtung voll verantwortlich. Aber wenn wir bedenken, dass es mit großen Zeitrahmen-Charts getan werden sollte, werden wir kaum mit Schwierigkeiten konfrontiert werden. Änderung des Trading-Moduls für die Verwendung mit einem anderen Indikator Dieser Artikel könnte hier fertig sein, aber MetaEditor hat die Möglichkeit erworben, Expert Advisors auf der Grundlage von fertigen Trading-Module zu generieren. Der Prozess der Erstellung solcher Module unter Berücksichtigung der gesamten Material präsentiert ist sehr komplex und erfordert eine separate Studie. Daher konzentriere ich mich auf die bereits angelegten Handelsmodule, die völlig analog zu den von mir vorgeschlagenen Handelssystemen sind. Und erst danach werde ich auf die Details dieser Module Modifikation nach den spezifischen Signal-Indikatoren zu vermeiden unnötige detalization. Wir gehen davon aus, dass wir bereits die Sammlung von Handelsmodulen für Semaphorsignalsysteme (MySignals. zip) haben und das analoge Modul für einen bestimmten Indikator erstellen möchten. Lassen Sie es BykovTrendSignal. mq5 Indikator, die eine typische Semaphor-Signal-Indikator ist. Zuerst sollten wir die genaueste Analogie des Indikators aus dieser Sammlung (Indicators. zip) finden. Optisch bestimmen wir, dass der erste Indikator aus diesem Artikel (ASCtrend) der am ähnlichsten ist. Daher werden wir das Handelsmodul dieses Indikators zur Änderung verwenden. Der Indikator selbst (BykovTrend) hat eine Reihe von Eingabeparametern und berücksichtigt die Indizes der Indikatorpuffer, die für die Speicherung der Signale für die Durchführung von Transaktionen verwendet werden. In unserem Fall sind dies: 0 - für Verkaufssignale und 1 - für Kaufsignale. Nun, da wir wissen, welches Modul für die Änderung verwendet werden soll, kopieren wir es in MQL5IncludeExpertSignalMySignals Ordner mit BykovTrendSignal. mqh Dateinamen und öffnen Sie es in MetaEditor. Es ist ein regelmäßig auftretender Ausdruck ASCtrend (der vorherige Indikatorname) in dem verwendeten Code. Es sollte ersetzt werden durch den Namen des neuen Indikators - BykovTrend. Dazu die Tasten Strg und H gleichzeitig drücken und die notwendige Änderung vornehmen: Abb.9. Ersetzen des Indikatorkennzeichens im Modul des Handelsmoduls Die nächste Stufe unserer Arbeit ist die sorgfältigste. Wir müssen alles, was die Indikator-Eingangsparameter betrifft, im Handelsmodul-Code ersetzen. Der Prozess ist sehr ähnlich, was in dem Artikel MQL5 Wizard angegeben wurde: Wie man ein Modul von Trading-Signale zu erstellen. Zunächst sollten wir einige Änderungen in den kommentierten Block von MQL5 Wizard Trading Signals Klassenbeschreibung: Beide Indikatoren enthalten die gleiche RISK-Eingangsvariable, daher kann es verlassen werden. Aber in diesen Indikatoren ist sein Vorgabewert unterschiedlich. Tatsächlich ist dieser Unterschied nicht kritisch und kann unverändert bleiben. Die Kommentarzeile über SSP-Variable wurde hinzugefügt: Und die Verknüpfung zum Codebasis-Indikator wurde ersetzt: Nun sollten alle, die sich auf die Änderungen der Eingabeparameter beziehen, in der Beschreibung der CBykovTrendSignal-Handelssignalklasse wiedergegeben werden. Wir haben die Zeile der neuen globalen mSSP Klasse Variablendeklaration in den Einstellungsparametern: und die Zeile der neuen SSP () Einstellungen Parameter installation method declaration: Alles, was mit der RISK-Eingangsvariable in dem von uns erstellten Trading-Signal-Modul zusammenhängt, entspricht der Eingabe Modul und somit keine Änderungen in den aktuellen und anderen Handelsmodulbausteinen. Nun übergeben wir den CBykovTrendSignal :: CBykovTrendSignal () - Klassenkonstruktor. In diesem Baustein sollte die Initialisierung einer neuen Variablen erfolgen: Die Prüfung der neuen Variablen auf Korrektheit sollte in CBykovTrendSignal :: ValidationSettings () Einstellungen Parameter Verifizierungsbaustein durchgeführt werden: Danach können wir zum BykovTrend Indikator Initialisierungsblock übergeben - BykovTrendSignal :: InitBykovTrend ( ). Der neue Indikator hat eine unterschiedliche Anzahl von Eingangsvariablen und daher ist die Dimension für das deklarierte Eingabeparameter-Array auch anders: In unserem Fall benötigen wir eine Dimension für den Indikator-String-Namen und zwei weitere für seine Eingangsparameter. Nun müssen wir eine neue Zelle der Eingabeparameter-Arrays initialisieren und dabei den Typ der Variablen angeben, die in ihr gespeichert werden soll: Danach ändern Sie die Anzahl der Eingangsvariablen um 3 in diesem Block im Aufruf zur Indikatorinitialisierung: Die Zahl Der Indikatorpuffer im Indikator gleich bleibt und gleich zwei ist, ist es in unserem Fall nicht nötig, etwas in der Indikatorpufferanzahl-Initialisierungszeile zu ändern: Die ASCtrend - und BykovTrend-Indikatoren haben jeweils zwei Indikatorpuffer. Die Funktionen der Puffer sind völlig ähnlich. Der Nullpuffer wird zum Speichern von Verkaufssignalen verwendet, während der Puffer mit dem Index 1 zum Speichern von Kaufsignalen verwendet wird. Somit ist es nicht notwendig, in den Funktionsblöcken irgendwelche Änderungen für die Lieferung von CBykovTrendSignal :: LongCondition () und CBykovTrendSignal :: ShortCondition () - Handelsignalen zu veranlassen und die Arbeit an der Modifikation der Modifikationen der Handelssignale kann als vollständig betrachtet werden. Aber im Allgemeinen sind alle Semaphore-Indikatoren unterschiedlich und daher können diese Blöcke für verschiedene Semaphorindikatoren erheblich voneinander abweichen. Das MySignals. zip-Handelsmodul-Archiv und das entsprechende Indicators. zip-Archiv enthalten genügend Beispiele für die Erstellung verschiedener Indikatoren. Nach einigen Untersuchungen ist es möglich, die Details des Ersatzprozesses und mögliche Codeversionen zu erfahren. Nun möchte ich mich auf die IndTimeframe-Eingangsvariable des Trading-Signals-Moduls konzentrieren. Diese Variable erlaubt es, einen geeigneten Zeitrahmen zum Indikator herunterzuladen. Der generierte Expert Advisor arbeitet jedoch auf dem Zeitrahmen, dem es zugewiesen wurde. Es bedeutet, dass der variable Zeitrahmen für den IndTimeframe-Eingang niemals eine Periode des Diagramms überschreiten darf, für die der Experte Advisor arbeitet, um den Modul-Normalbetrieb bereitzustellen. Schließlich möchte ich eine weitere Besonderheit der Schaffung von Trading-Signale-Module offenbaren. Manchmal werden benutzerdefinierte Enumerationen in den Basisindikatorcode als die Typen für die Modul-Eingangsvariablen implementiert. Beispielsweise wird die benutzerdefinierte SmoothMethod-Enumeration als MASMethod-Variablentyp für CandlesSmoothed-Indikator verwendet: In einem solchen Fall sollten Eingangsvariablen dieser Art und alle zugehörigen Elemente in dem Handelssignalmodul (CandlesSmoothedSignal. mqh) in die Variablen von int - oder uint-Typen modifiziert werden. Außerdem sollte die umgekehrte Prozedur von benutzerdefinierten Enumerationen bis hin zu den Expert Advisor-Eingabeparametern und dem Ersetzen der notwendigen Eingabevariablentypen (ExpMCandlesSmoothed Expert Advisor) für die einfache Benutzung dieser Eingabevariablen im bereits generierten Code des fertigen Expert durchgeführt werden Advisor: In unserem Fall wurde dies mit der SignalMASMethod Eingangsvariable durchgeführt. Sie können Codeänderungen erheblich beschleunigen, wenn Sie beide Codeversionen (ASCtrendSignal. mqh und BykovTrendSignal. mqh) gleichzeitig im Editor öffnen (auf der linken Seite und auf der anderen Seite auf der rechten Seite) und beide Codeversionen sorgfältig vergleichen. Fazit Ich habe genügend Expert Advisors basierend auf dem Semaphor-Trading-System in Experts. zip Archiv an diesem Artikel beigefügt, damit Anfänger Experten Advisors Schöpfer leicht zu verstehen, alle Merkmale des Schreibens eines solchen Code oder zumindest mit vorgefertigten Expert Advisors Mit sehr beliebten Indikatoren. Alle angegliederten Expert Advisors werden zusätzlich als Trading-Module für diejenigen präsentiert, die den Trading-Strategien-Generator als Grundlage für ihre eigenen Handelssysteme nutzen wollen. Diese Module befinden sich in MySignals. zip, während die Handelssysteme, die auf ihnen basieren, in Expertsez. zip gefunden werden können. Die Indikatoren, die in den Expertenberatern verwendet werden, werden in Indicators. zip gelegt. Die Pfade zum Extrahieren der Dateien sind wie folgt: Experts. zip: MQL5Experts Expertsez. zip: MQL5Experts MySignals. zip: MQL5IncludeExpertSignalMySignals Indicators. zip: MQL5Indikatoren SmoothAlgorithms. mqh: Include TradeAlgorithms. mqh: Include. Starten Sie MetaEditor neu, öffnen Sie das Navigator-Fenster, klicken Sie mit der rechten Maustaste auf das MQL5-Label und wählen Sie im Popup-Menü die Option Kompilieren. SmoothAlgorithms. mqh-Datei ist für die Zusammenstellung von einigen Indikatoren aus Indicators. zip erforderlich, während TradeAlgorithms. mqh-Datei für die Kompilierung aller Experten-Berater von Experts. zip benötigt wird.


No comments:

Post a Comment