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:
#include <lot_lib.mqh>
lotlib_PrevLots = 0.0; lotlib_PrevProfit = 0.0;
lotlib_OpenPriceLevel = Ask;
lotlib_StopLossLevel = Ask-StopLoss*Point;
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):
#define MIN_LOT 0.1
#define MAX_LOT 100
#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.