und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 1330
- Rating:
- Veröffentlicht:
- 2016.05.23 08:26
- Aktualisiert:
- 2016.11.22 07:34
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Zweck des EA
Universal Expert Advisor für das Arbeiten mit benutzerdefinierten Indikatoren, die Pfeile als Kauf- und Verkaufssignale erzeugen, mit Ausnahme von Indikatoren, die mit Zeichenketten (strings) arbeiten.
Der Name des benutzerdefinierten Indikators ist in den Parametern des EA anzugeben, sowie die Liste der Indikator-Parameter und die Anzahl der Buffer zum Zeichnen der Pfeile für Kaufen/Verkaufen.
Trotz der Verwendung der Zeichenkette mit ihren Parametern, ist es möglich, bis zu fünf Parameter des Indikators zu optimieren. Anstelle einer der Variablen der Zeichenkette iCustomParam können die Werte von einer der Variablen Opt_1_Value - Opt_5_Value zu verwenden.
Die Parameter des Expert Advisors
- Zeitrahmen - Arbeits-Zeitrahmen des EA: 0 - Zeitrahmen des Charts auf dem der EA läuft oder der im Tester ausgewählt wurde. Oder mit einem bestimmten Wert 1,5,15,30,60,240,1440...
- iCustomName - Namen des benutzerdefinierten Indikators.
- iCustomParam - die Liste der Parameter, getrennt durch "/". Für boolesche Variable verwenden Sie 1 statt true, 0 statt false. Wenn die Parameter des Indikators "string"-Variablen enthalten, wird der EA wird nicht funktionieren!
- iBuyBufIndex - Index des Buffers mit dem Pfeilen Kaufen.
- iSellBufIndex - Index des Buffers mit dem Pfeilen Verkaufen.
- iShift - Zeitversatz (offset) des Indikators. 1 - beachte nur vollendete (geschlossene) Bars, 0 - aktuelle, noch offene Bar (nicht zu empfehlen). Es ist auch möglich, einen Wert einzugeben: 2,3,4...
- Opt_1_Use - aktiviert die Verwendung der Variablen 1 für die Optimierung. Wenn die Variable für die Optimierung aktiviert wurde, wird statt des Wertes aus iCustomParam der Wert der Variablen Opt_X_Value, bestimmt durch Opt_X_Index, verwendet.
- Opt_1_Index - Index der Variable 1 in der Zeichenkette von iCustomParam. Die Nummerierung beginnt mit Null.
- Opt_1_Value - der Wert der Variablen 1 für die Optimierung.
- Opt_2_Use - aktiviert die Verwendung der Variablen 2 für die Optimierung.
- Opt_2_Index - Index der Variable 2 für die Optimierung in der Zeichenkette von iCustomParam. Die Nummerierung beginnt mit Null.
- Opt_2_Value - der Wert der Variablen 2 für die Optimierung.
- Opt_3_Use - aktiviert die Verwendung der Variablen 3 für die Optimierung.
- Opt_3_Index - Index der Variable 3 für die Optimierung in der Zeichenkette von iCustomParam. Die Nummerierung beginnt mit Null.
- Opt_3_Value - der Wert der Variablen 3 für die Optimierung.
- Opt_4_Use - aktiviert die Verwendung der Variablen 4 für die Optimierung.
- Opt_4_Index - Index der Variable 4 für die Optimierung in der Zeichenkette von iCustomParam. Die Nummerierung beginnt mit Null.
- Opt_4_Value - der Wert der Variablen 4 für die Optimierung.
- Opt_5_Use - aktiviert die Verwendung der Variablen 5 für die Optimierung.
- Opt_5_Index - Index der Variable 5 für die Optimierung in der Zeichenkette von iCustomParam. Die Nummerierung beginnt mit Null.
- Opt_5_Value - der Wert der Variablen 5 für die Optimierung.
- MMMethod - ММ-Methode: 0-Lots, 1-anteilig (das Risiko) vom freien Margin, 2-anteilig (Risiko) vom freie Margin normiert durch MeansStep (zum Beispiel Risiko=0.1, MeansStep=1000, wenn die Margin weniger ist als 2000, Lot ist gleich 0.1, wenn die Margin größer ist als 2000 oder mehr - 0.2 Lot, 3000 oder mehr - 0.3 Lot und so weiter)
- Lots - Lotgröße wenn MMMethod=0.
- Risiko - Risiko. Der Wert basiert auf Kontostand, wenn FixedLot=false.
- MeansType - Typ des Geldwertes für die Berechnung der Lotgröße. 1 - Balance, 2 - Equity, 3 - FreeMargin.
- MeansStep - Schrittweite der Geldmittel. Verwendet, wenn MMMethod=2.
- LotsDigits - die Anzahl der Dezimalstellen von Lots.
- Slippage - erlaubte Abweichung von den geforderten Preis.
- StopLoss - StopLoss.
- TakeProfit - TakeProfit.
- Magic_N - MagicNumber.
- MaxOrdersCount - erlaubte Höchstzahl offener Positionen. -1 - nicht beschränkt.
- MaxBuyCount - erlaubte Anzahl der offenen Kauf-Positionen. -1 - nicht beschränkt.
- MaxSellCount - erlaubte Anzahl der offenen Verkauf-Positionen. -1 - nicht beschränkt.
- SleepBars - Wartezeit (in Bars des aktuellen Zeitrahmens) nach dem Öffnen einer Position.
- CancelSleeping - Setzt die Wartezeit beim Öffnen einer entgegengesetzten Position aus.
- CloseOnRev - Schließe Position, wenn in Gegenrichtung eine neue eröffnet werden soll.
- TrailingStop_Use - Aktiviere die Funktion des Trailing-Stopps.
- TrailingStopStart - Gewinn der Position zur Aktivierung des Trailing-Stopps.
- TrailingStop - der Trailing-Stopp Level.
- BreakEven_Use - Aktivierung der Breakeven-Funktion.
- BreakEvenStart - Gewinn der Position zur Aktivierung von Breakeven.
- BreakEvenLevel - Level ab dem StopLoss platziert werden, bei aktiviertem Breakeven.
Anmerkung
Das Archiv mit den Experten enthält die Datei test_example.set mit den Beispiel-Einstellungen für die Verwendung des ind_Test Indikators (Kreuzung von zwei MAs) und die zu optimierenden Variablen. Der Indikator ind_Test ist beigefügt.
Version 2
1. Ergänzt die Fähigkeit verschiedene Indikatoren für die Eröffnungs- und Schließ-Signale zu verwenden. Die Parameter für den Indikator zur Eröffnung beginnen mit dem Präfix _O_ und die zum Schließen mit dem Präfix _C_.
Hier sind 3 Möglichkeiten für die Verwendung der Indikatoren zum Öffnen und Schließen (bestimmt durch die Variablen _OС_Mode):
- Modus 1 - Indikator wird nicht für die Schließung verwendet. Das Schließen ist nur möglich durch StopLoss und TakeProfit.
- Modus 2 - Indikator zum Schließen wird nicht verwendet. Abgesehen von der Schließung durch StopLoss und TakeProfit, erfolgt eine Positionsschließung durch Eröffnungssignale in der Gegenrichtung. StopLoss und TakeProfit kann deaktiviert werden - setzen Sie die Werte der Variablen StopLoss und/oder TakeProfit auf 0 (gilt für alle Modi).
- Modus 3 - Separate Schließ-Signale basierend auf den Indikator (_C_) für das Schließen. In diesem Modus gibt es einen zusätzlichen, optionalen Modus, der die Werte des Parameter des Indikators für das Schließen auf die Werte des Indikators für das Eröffnen setzt (die C_UseOpenParam Variable), gleichzeitig wird der Indikatorname und dessen Parameter kopiert werden. Dieser Modus ist für Indikatoren mit Eröffungs- und Schließ-Signalen gedacht, um das Tempo der Optimierung zu erhöhen (optimierte Parameter werden auch kopiert).
2. Man kann jetzt nicht nur Indikatoren mit Pfeilen sondern auch mit Linien verwenden. Es ist möglich, zwei Linien (Kreuzung von Haupt-und Signallinie) oder eine Linie (Kreuzung der Linie mit einem Level) zu verwenden. Verwenden Sie die Variable _O_Mode (und _C_Mode im Block der Positionsschließung), um den Indikatortyp zu wählen.
- Modus 1 - der Indikator zeichnet Pfeile. Die Variablen _O_M1_iBuyBufIndex und _O_M1_iSellBufIndex werden für die Buffer-Indizierung verwendet; im Block für das Schließen sind das _C_M1_iCloseBuyBufIndex und _C_M1_iCloseSellBufIndex.
- Modus 2 - verwendet die Haupt- und Signallinie des Indikators. Wenn die Hauptlinie die Signallinie aufwärts kreuzt - Signal zu kaufen oder eine Verkaufsposition zu schließen. Die Variablen _O_M2_iMainBufIndex, _O_M2_iSignalBufIndex, _C_M2_iMainBufIndex, _C_M2_iSignalBufIndex sind die Indices der Buffer der jew. Indikatoren.
- Modus 3 - eine Indikator Linie wird verwendet. Der Index des Buffers wird durch die variable _O_M3_iBufIndex (oder _С_M3_iBufIndex im Schließ-Block) angegeben. _O_M3_BuyLevel und _O_M3_SellLevel (_O_M3_CloseBuyLevel und _C_M3_CloseSellLevel im Schließ-Block) setzen die Werte der Levels. Aufwärts kreuzen des Kauf-Levels - kaufen, abwärts kreuzen der Verkaufs-Levels - verkaufen.
Version 3
Eine weiterer _O_Mode Modus (und _S_Mode)
Mode 4 - Extremum von drei Punkten. Verwendet eine Indikatorlinie. Der Bufferindex wird in _O_M4_iBufIndex (oder _С_M4_iBufIndex im Schließ-Block) angegeben.
Version 4
1. Hinzugefügt das Arbeiten mit Pending-Orders.
2. Abschnitt mit Trennzeichen im Eigenschaften-Fenster (von string-Variablen) hinzugefügt.
Auswahl des Order-Typs durch die Variable OrdType: 0 - Markt, 1 - Stopp, 2 - Limit (Variable ist im Abschnitt "Order").
Der Abschnitt der Variablen "Pending orders" für die Verwaltung der Pending-Orders:
- PendLevel - der Abstand vom aktuellen Marktpreis des Preises der Pending-Order
- PendPromPrice - der Preis der Pending-Order, mit PendPromPrice = 0 - dem Schlusskurs der aktuellen Bar(entspricht dem aktuellen Marktpreis) oder 1 - dem Eröffnungskurs dieser Bar.
- PendNewSigMode - die Methode der Steuerung der Pending-Order auf eine neue Handelssignal: 0 - wenn eine Order bereits platziert worden ist und ein neues Handelssignal angezeigt wird, passiert nichts, 1 - ersetze die Order bei einem neuen Signal, 2 - bei einem neuen Signal wird die bestehende Order nur "verbessert", d.h. Buy-Stopp wird ggf. nach unten, Buy-Limit nach oben, Sell-Stop nach oben und Sell-Limit nach unten verschoben.
- PendPriceFollow - Modus der Preisverfolgung. Die Order wird bei jeder Veränderung der durch die Variable PendPromPrice bestimmten Preises modifiziert, aber nur zu einem "besseren Preis" (siehe die Beschreibung der Variablen PendNewSigMode).
- PendDelete - Löschen der Pending-Order bei einem entgegengesetzten Handelssignal. Wenn dieser Wert false ist, ist es möglich, dass zwei Pending-Orders in unterschiedlichen Richtungen gleichzeitig existieren.
- PendExpiration - Verfallszeit der Order in Minuten (Minimum 11 Minuten).
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/7632
![MyFriend](https://c.mql5.com/i/code/expert.png)
Ein Expert Advisor, der ist immer wieder im Forum diskutiert worden ist.
![NinaEA](https://c.mql5.com/i/code/expert.png)
Der NinaEA Expert Advisor. Er verwendet den NINA Indikator. Und NINA nutzt 0_IndInverse.
![MAMA_NK](https://c.mql5.com/i/code/indicator.png)
Dieser Indikator Version wurde erstellt mit dem Code für Omega, geschrieben von John Ehlers
![ArtificialIntelligence_Right](https://c.mql5.com/i/code/expert.png)
Der Expert Advisor mit künstlicher Intelligenz - ein Single-Layer Neuronales Netzwerk. Das "Perceptron" wird für die Identifizierung der Richtung der Kursbewegung verwendet.