Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
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
Ansichten:
1380
Rating:
(25)
Veröffentlicht:
2016.05.23 08:40
\MQL4\Include\
lot_lib.mqh (10.68 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Also, Sie entscheiden - was kann in jedem Handel riskiert werden? Es gibt viele Optionen und die richtige Wahl ist nicht immer einfach. Um dieses Problem zu lösen, habe ich die lot_lib.mqh Bibliothek
geschrieben
Verwendung:
- kopieren Sie die Datei lot_lib.mqh den Ordner MetaTrader 4\experts\include;
- fügen Sie die folgenden Zeilen in einen EA ein:
// am Anfang:
#include <lot_lib.mqh>
 
// in die init() Funktion:
lotlib_PrevLots = 0.0;  lotlib_PrevProfit = 0.0;
 
// in die start() Funktion, vor dem Absenden jeder Order:
lotlib_OpenPriceLevel = Ask; // anstatt des Ask - den wirklichen Wert 
                             // der Position, deren Eröffnungspreis 
lotlib_StopLossLevel = Ask-StopLoss*Point; 
// statt Ask-StopLoss*Point - den wirklichen Wert des StopLoss 
// der Position
 
// in der start() Funktion, wo die offene Position selektiert wurde (zum Beispiel,
// vor dem Trailing-Stop):
lotlib_PrevLots = OrderLots();  lotlib_PrevProfit = OrderProfit();

- die Lotgröße einer neuen Position wird bestimmt durch die Funktion Lot(). Das heißt, statt einer Variablen, die die Lotgröße (in der Regel 'Lot' oder 'Lots') bestimmt, schreiben Sie Lot();
- kompilieren Sie den EA und verwenden ihn.

Hinweis: wenn dem EA gleichzeitig 2 oder mehr offene Positionen zuzurechnen sind, müssen den Variablen lotlib_PrevLots und lotlib_PrevProfit die gewünschten Werte vor der Eröffnung einer neuen Position zugewiesen werden. Wählen Sie selbst, welche Werte verwendet werden sollen: die der letzten geschlossene Position oder die zuletzt geöffnete Position.

Externe Variablen:
- LotSizeVariant - Zahl mit unterschiedlichen Bedeutungen, sie werden unten beschrieben;
- StartLot - anfangs Lotgröße (für LotSizeVariant, von 0 bis 5);
- AddLot - die Zahl, um die die Lotgröße "erhöht" wird (für LotSizeVariant - 1 und 2);
- KLot - Erhöhungsverhältnis (für LotSizeVariant - 3 und 4);
- MaxRisk - Prozentsatz des Geldes, das kann riskiert wird (für LotSizeVariant - 5, 6, 11-17, 31-37);
- TrueProfitPoints - die Anzahl der Points, über der eine Position als im Gewinn, darunter als im Verlust angesehen wird (für LotSizeVariant - 1-4);
- BalanceUse - Prozent des Kontostandes (Balance), die der EA verwenden darf. Wenn mehreren Experten laufen, setzen Sie sie auf 100/"Anzahl der Experten", d.h. 33 bei 3 Experten, 25 bei 4, und so weiter (für LotSizeVariant - 5, 6, 7, 11-17, 31-37)

Mögliche Werte von LotSizeVariant:
0 - Feste Lotgröße, definiert durch die Variable StartLot;
1 - wenn die vorherige Position profitabel war, d.h. der Gewinn war größer als TrueProfitPoints Points, wird die LotGröße um AddLot erhöht oder verringert, wenn AddLot ist kleiner als 0 ist, wenn aber die Position unprofitabel war, d.h. das Ergebnis war kleiner als TrueProfitPoints Points - wird StartLot verwendet;
2 - wenn die vorherige Position unrentabel war, die Lotgröße um AddLot erhöht, wenn profitabel - wird StartLot verwendet;
3 - wenn die vorherige Position unrentabel war, wird die Lotgröße AddLot-mal erhöht, wenn unrentabel - wird StartLot verwendet;
4 - wenn die vorherige Position unrentabel war, wird die Lotgröße AddLot-mal erhöht, wenn profitabel - wird StartLot verwendet;
5 - Lotgröße ist so gewählt, dass der maximale Verlust der offenen Position nicht mehr als MaxRisk Prozent des Geldes falls der StopLoss ausgelöst wird;
6 - die Lotgröße als Prozentsatz des Guthaben und gesteuert durch die Variable MaxRisk. Zum Beispiel für EURUSD bei einem Guthaben von 1000 und MaxRisk=10 wird mit 0,1 Lot eröffnet und mit einem Guthaben von 15000 und MaxRisk=5 werden es 0,8 Lot;
7 - Lotgröße wird berechnet mit der Formel "1 Prozent Guthaben" / "Durchschnittliche Schwankungsweite der Preisbewegungen der letzten 20 Bars" * 0,4. Ich kann mich nicht erinnern, wie ich auf so etwas gekommen bin;

11-17 - Algorithmus der Berechnung aus den Varianten 1-7, Lotgröße ist begrenzt durch die Größe in der 5. Variante, d.h. der Verlust ist höchstens MaxRisk Prozenten des Guthabens;
21-27 - Algorithmus der Berechnung aus den Varianten 1-7, Lotgröße kann nicht reduziert werden;
31-37 - Algorithmus der Berechnung aus den Varianten 1-7, Lotgröße ist begrenzt durch die Größe der Variante 5 und kann nicht reduziert werden, d.h., wenn es größer ist als in der 5. Variante, wird sie auf die Größe der 5. Variante verringert, aber wenn sie kleiner ist als die vorherige Größe, wird es gleich der vorherigen Größe;

100-128 - alle Varianten in einer Reihe (praktisch für Optimierung):
100 - 0
101 - 1 108 - 11 115 - 21 122 - 31
102 - 2 109 - 12 115 - 22 123 - 32
103 - 3 110 - 13 117 - 23 124 - 33
104 - 4 111 - 14 118 - 24 125 - 34
105 - 5 112 - 15 119 - 25 126 - 35
106 - 6 113 - 16 120 - 26 127 - 36
107 - 7 114 - 17 121 - 27 128 - 37

PreSet (wenn nötig, ändern Sie die Werte im code):

//---- die LotGröße wird nicht KLEINER als der Wert von MIN_LOT
#define MIN_LOT            0.1
//---- die LotGröße wird nicht GRÖSSER als der Wert von MAX_LOT
#define MAX_LOT            100
//---- wenn ein Fehler auftritt (zum Beispiel, wurden nicht alle erforderlichen 
//---- Variablen vom EA initialisiert), liefert diese Funktion 
//     den Wert DEFAULT_LOT
#define DEFAULT_LOT        -1

Beispiel der Verwendung:
Ich nahm MACD Sample, ergänzte StopLoss, integriert die Bibliothek und versucht Tests mit verschiedenen Werten von LotSizeVariant. Chart-Symbol - EURUSD, Zeitrahmen - H1, Test-Zeitraum: 01.01.2001 - 01.08.2005, modeling-Modus - Jeden Tick, Modellierungsqualität - 90%.

Die Abbildungen zeigen einige zufällige Ergebnisse. Ich wählte nicht die beste Variante und ich optimierte auch nicht die Parameter. Das erste Bild hat eine feste LotGröße.

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

ZH_Dynamic_Arrays_Lib ZH_Dynamic_Arrays_Lib

Eine Reihe von Funktionen, um dynamische Arrays zu emulieren.

Rotating text objects Rotating text objects

Beispiel für das Arbeiten mit Objekten: Objekt erstellen, ändern von Eigenschaften, neu zeichnen des Charts.

Gap indicator Gap indicator

Der Indikator zeigt die Lücken (Gaps) zwischen dem Schlusskurs der vorherigen Bar und dem Eröffnungskurs der aktuellen.

ADXdon ADXdon

Der ADXdon Indikator. Eine andere Version des ADX-Indikators, er zeigt die Stärke des Trends.