Alert im Indikator. Wie fügt man Alert und Pfeil in den Indikator ein?
Markt MQL5. Probleme und Fehler bei der Installation von Expert Advisor und Lösungen
Beschreibung
In diesem Artikel werde ich meine Methoden zur Berechnung der Lotgröße basierend auf einem Prozentsatz (Risiko in %) der Freien Marge über verschiedene Währungspaare und verschiedene Arten von Einlagen erklären. Autolot oder Dynamisches Lot vom Guthaben. RiskManager. Ich zeige Ihnen meinen Autolot-Code.
Lassen Sie uns beginnen:
Grundlegende Konzepte:
Zuerst heben wir einige Konzepte hervor, die in dieser Berechnung verwendet werden:
Freie Marge ( AccountFreeMargin() ) – Gelder, die nicht als Sicherheit in offenen Positionen verwendet werden. Die Freie Marge wird mit der Formel berechnet: Freie Marge = Aktuelles Einlagenkonto – Erforderliche Marge für offene Positionen. Dieser Indikator bestimmt die Anzahl der Transaktionen, die im aktuellen Moment eröffnet werden können.
Ask ist der Preis, zu dem Sie eine bestimmte Menge eines Finanzinstruments vom Broker kaufen. Der Broker verkauft es Ihnen zu diesem Preis. Beim Handel auf dem Forex-Markt werden Sie diese Art von Preis überall antreffen: vom Trading-Terminal bis zu Börsenberichten und analytischen Artikeln über Finanzmärkte.
Bid ist der Preis, zu dem Sie eine bestimmte Menge eines Finanzinstruments an Ihren Broker verkaufen. Der Broker kauft es von Ihnen zu diesem Preis. Beim Handel auf dem Forex-Markt werden Sie diese Art von Preis überall antreffen, wo Diskussionen über den internationalen Forex-Markt stattfinden: vom Trading-Terminal und den Wechselkursen auf der Website Ihres Brokers bis zu Börsenberichten und analytischen Artikeln über internationale Finanzmärkte.
Hebelwirkung ist das Verhältnis des eingesetzten Sicherheitenbetrags zu dem geliehenen Betrag. Bei der anfänglichen Auswahl der Hebelwirkung wählen Sie die Hebelgröße, die den Multiplikator angibt, mit dem das Guthaben des Kunden erhöht wird, um Handelsoperationen auf dem Forex-Markt durchzuführen. Der Kunde kann die Hebelwirkung von 1:1 bis 1:500 wählen, was bedeutet, dass der Kunde nur mit eigenen Mitteln handeln oder eine Erhöhung seines Guthabens um das bis zu 500-fache beantragen kann, um mit diesem Betrag in den Markt einzutreten. Hebelwirkung, als Verhältnis des Betrags, mit dem ein Trader in den Markt eintritt, zur Größe seines Guthabens, spielt eine entscheidende Rolle im Handelsprozess, da sie es einem Trader ermöglicht, sein Kapital erheblich zu erhöhen.
Währungspaar ist eine Bezeichnung für zwei Währungen, die zusammen einen Wechselkurs bilden. Das Währungspaar dient als Objekt für Finanztransaktionen. Ein Währungspaar wird durch die aufeinanderfolgenden Bezeichnungen der beiden Währungen, die das Paar bilden, dargestellt, entweder zusammen geschrieben oder durch einen Schrägstrich getrennt in folgender Form: Basiswährung / Kurswährung. Die Basiswährung ist die erste Währung, die gekauft und verkauft wird, und die Kurswährung wird verwendet, um den Preis der Basiswährung auszudrücken. Ein Währungspaar ist das grundlegende Konzept des Devisenmarktes, das überall präsent ist, sobald es um diesen Markt geht: von Marktberichten bis zum Trading-Terminal.
Lotgröße – das Volumen der Basiswährung, eines Rohstoffs oder die Anzahl der im Vertrag angegebenen Aktien. Die Lotgröße hängt von der im Vertrag angegebenen Währungssumme ab und ist eine Maßeinheit zur Bestimmung der Größe des Handelsvertrags. Ein Lot hat eine spezifische Größe, die zur Bestimmung des für Finanztransaktionen auf dem Forex-Markt verwendeten Währungsbetrags verwendet wird. Um eine Transaktion auszuführen, bestimmt der Kunde die Größe der Transaktion, ausgedrückt in der Anzahl der Lots. Das Volumen einer Handelsposition gibt an, wie viel Währung die Transaktion umfassen wird. Ein Lot ist die Größe des Vertrags, ein fester Währungsbetrag, der im Forex-Handel verwendet wird.
Der Wechselkurs zwischen zwei Währungen wird durch das Zusammenspiel von Angebot und Nachfrage zu einem bestimmten Zeitpunkt bestimmt.
Dieser Prozess ist als Währungsquotierung bekannt, und die Kurse können entweder direkt oder umgekehrt sein.
Eine direkte Quotierung spiegelt den Preis einer Fremdwährung in Einheiten der nationalen Währung wider.
Die meisten Wechselkurse werden als direkte Quoten des US-Dollars gegenüber den Währungen verschiedener Länder ausgedrückt.
Zum Beispiel bedeutet USD/UAH—30.70, dass ein US-Dollar 30,70 ukrainische Hrywnja wert ist,
und USD/CHF—1.0850 zeigt an, dass ein US-Dollar 1,0850 Schweizer Franken entspricht.
Eine umgekehrte Quotierung drückt den Wert der nationalen Währung in Bezug auf eine Fremdwährung aus.
Historisch wurden Währungen wie das Britische Pfund, der Euro, der Australische Dollar und der Neuseeländische Dollar auf diese Weise quotiert.
Zum Beispiel bedeutet EUR/USD—1.3374, dass ein Euro 1,3374 US-Dollar wert ist,
während GBP/USD—1.5970 bedeutet, dass ein Brittisches Pfund 1,5970 US-Dollar entspricht.
Es gibt auch das Konzept eines Cross-Wechselkurses, bei dem der US-Dollar weder die Basiswährung noch die Kurswährung ist.
Beispiele hierfür sind EUR/JPY, GBP/CHF und EUR/GBP.
Technische Seite
- NormalizeDouble – Rundet eine Fließkommazahl auf die angegebene Genauigkeit.
- MODE_LOTSIZE – Vertragsgröße in Basiswährung des Instruments.
- MODE_LOTSTEP – Der Schritt zur Änderung der Lotgröße.
- AccountCurrency – Gibt den Währungsnamen für das aktuelle Konto zurück.
- MathFloor – Die Funktion gibt die größte ganze Zahl zurück, die kleiner oder gleich x ist.
Wesentlich: Um sicherzustellen, dass alle Berechnungen genau sind, aktivieren Sie alle Symbole im “Market Watch”-Panel :
Meine Berechnungsformel für die Kontowährung
Meine Berechnungsformel sieht folgendermaßen aus:
USD Einlage
Einlage USD Direkte Quotierung ()
Lot = Freie Marge * Risiko * Hebelwirkung / 100 / Vertragsgröße
Einlage USD Rückwärtsquotierung()
Lot = Freie Marge * Risiko * Hebelwirkung / Ask / 100 / Vertragsgröße
Einlage USD Cross Rate:
Option 1: Wenn es einen aktuellen Preis der Basiswährung + USD gibt (zum Beispiel, wenn das Settlement-Paar AUDCAD ist, dann ist der aktuelle Preis der Basiswährung = AUDUSD)
Lot = Freie Marge * Risiko * Hebelwirkung / (Aktueller Basiswährungspreis + USD) / 100 / Vertragsgröße
Option 2: Wenn es keinen aktuellen Preis der Basiswährung + USD gibt (zum Beispiel CADJPY)
Lot = Freie Marge * Risiko * Hebelwirkung / 100 / Vertragsgröße
EUR Einlage
Einlage EUR Direkte Quotierung
Lot = Freie Marge * Risiko * Hebelwirkung / 100 / Vertragsgröße
Einlage EUR Cross Rate:
Aktueller Preis = EUR + Kurswährung (zum Beispiel, wenn das Settlement-Paar AUDCAD ist, dann ist der aktuelle Preis Kurswährung = EURAUD)
Lot = Freie Marge * Risiko * Hebelwirkung / (aktueller Preis EUR + Kurswährung) / 100 / Vertragsgröße
UAH Einlage und andere
Einlage UAH Rückwärtsquotierung (zum Beispiel USDUAH)
Lot = MathFloor(Freie Marge * Risiko * Hebelwirkung / 100 / Aktueller Preis / Vertragsgröße / Lot Step / 20) * Lot Step
Einlage UAH Cross (z.B., EURGBP)
Aktueller Preis = MarketInfo(StringSubstr(Symbol(), 0, 3) + UAH + StringSubstr(Symbol(), 6), MODE_BID);
if(pr != 0) Lot2 = MathFloor(Freie Marge * Risiko * Hebelwirkung / Aktueller Preis / 100 / Vertragsgröße / Lot Step) * Lot Step;
else Lot = MathFloor(Freie Marge * Risiko * Hebelwirkung / 100 / Vertragsgröße / Lot Step) * Lot Step;
Die Reihenfolge dieser Funktionen wurde durch die Berechnung der Parameter bei verschiedenen Einlagen bestimmt.
Wenn Sie Vorschläge für diese Berechnungen haben, teilen Sie bitte Ihre Autolot-Funktionen beim Bestellen der Programmierung.
Oder Freelance: Individuelle Programmierung auf MetaTrader und MQL! Fertigstellen?
Externe Variablen Autolot Berechnungsfunktion:
Lots | Fester Lot zum Eröffnen einer Position. |
RiskLotType TypeAutolot | Autolot Berechnungstyp: BALANCE (Risiko vom Guthaben) – Autolot wird aus dem aktuellen Guthaben berechnet. Die Lotberechnung basiert auf dem Kontostand. Wenn es offene Positionen auf dem Konto gibt, wird das nächste Lot ungefähr dasselbe sein, da der Kontostand sich nicht durch die Anzahl der derzeit offenen Positionen verringert! FREEMARGIN (Risiko von der freien Marge) – Die Standardlotberechnung von der aktuellen freien Marge besagt, dass je mehr offene Positionen auf dem Konto sind, desto kleiner wird das Lot für die nächste Position berechnet. Dies liegt daran, dass beim Öffnen einer Position die freie Marge abnimmt, sodass jede neue offene Position ein kleineres Lot bei der Berechnung des Autolot hat. Typ der Risikoberechnung für die RiskLot Option: Verfügbare Modi: RiskLotType = 0, // Risiko von der freien Marge RiskLotType = 1, // Risiko vom Guthaben |
DynamicLot | Ein dynamisches Lot, Autolot, für eine offene Position. Sie können die dynamische Lotberechnung als Prozentsatz der freien Marge und anderer Faktoren EIN SCHALTEN. Berechnung unseres Autolot: Formel und Code: https://expforex.com/de/my-autolot-secrets-dynamiclot-autolot/#eb-table-content-4 |
DynamicLotStopLoss | Risiko vom SL – Berechnet das automatische Lot unter Berücksichtigung des Stop Loss. Der maximale Verlust als Prozentsatz des Kontostands bei Schließung eines Geschäfts am Stop Loss. Bei der Lotberechnung berücksichtigt unser Expert Advisor den Stop Loss zum Zeitpunkt der Geschäftsöffnung. Wenn das Geschäft am Stop Loss geschlossen wird, entspricht der Verlust dieses Geschäfts einem Prozentsatz des Kontostands zum Zeitpunkt der Geschäftsöffnung. Wichtig! Wenn Ihr Stop Loss nach der Öffnung des Geschäfts geändert wird, kann die Lotgröße des Geschäfts nicht geändert werden. Beim Schließen des Geschäfts kann der Verlust mehr oder weniger betragen. Wichtig! Wenn Sie einen Trailing Stop verwenden, ändert sich der Stop Loss des Geschäfts mit jedem Tick, aber die Lotgröße kann nicht geändert werden. Formel und Code: https://expforex.com/de/my-autolot-secrets-dynamiclot-autolot/#eb-table-content-5 |
LotBalancePcnt RiskLot LotBalancePercent | Prozentsatz für Autolot. Der Prozentsatz für die dynamische Lotfunktion (Autolot). Wenn RiskLot = 0, wird das GeschäftsLOT (Volumen) gemäß dem Parameter Lot berechnet. Wenn RiskLot ungleich 0 ist, wird ein Geschäft am Kundenterminal mit einem Lot als Prozentsatz der freien Marge des Kunden (Autolot) eröffnet. |
RiskRate | Der Kurs Ihrer Währung gegenüber dem Dollar (oder Ihrer Kontowährung). Standardmäßig ist RiskRate = 0, was bedeutet, dass der Expert Advisor versuchen wird, den korrekten Kurs im Marktüberblick zu finden. Damit Autolot mit allen Währungspaaren gut funktioniert, müssen Sie “Alle Währungspaare anzeigen” in der Market Watch aktivieren. |
MaxLot | Das maximale Lot, das ein Expert Advisor beim Berechnen eines Autolot und Martingale für die erste Hauptposition öffnen kann. |
Martin | Martingale. Die Standardmultiplikation des Lots der zuletzt geschlossenen Position bei einem Verlust. Wenn Martin = 1, wird die Martingale nicht aktiviert (Feste Lots). Wenn Martin = 0, kann der Expert Advisor die nächste Position nicht öffnen. Wenn Martin = 2, dann das erste Lot = 0,1, das zweite Lot = 0,2 und so weiter: 0,4 – 0,8 – 1,6 – 3,2 – 6,4….. Wenn Martin = 0,5, dann das erste Lot = 1, das zweite Lot = 0,5 und so weiter: 0,25 – 0,125. |
Brauchen Sie einen Code?
Autolot Berechnung Codefunktion:
input double Lots=0.01; //Lots --> Feste Losgröße für geöffnete Positionen und Aufträge
input bool DynamicLot=false; //DynamicLot --> Berechnung des Loses aus der freien Marge
input bool DynamicLotStopLoss=false; //DynamicLotStopLoss --> Berechnung des Loses aus StopLoss und freier Marge
input double LotBalancePercent=1; //LotBalancePercent --> Prozentsatz für die Berechnung des Loses
extern double RiskRate=0; //RiskRate --> Wechselkurs des Symbols zur Einzahlungswährung für die Lose-Berechnung
input double MaxLot=999; //MaxLot --> Maximale Losgröße beim Eröffnen von Positionen
double GetSizeLot(double ll=1) // The function returns the lot size
{
string Author = "Author of function template: www.expforex.com";
string lotcalc;
double pr;
string Valdepo = AccountCurrency();
// If MM is enabled, then determine the lot size
double Lot2, MinLots, MaxLots;
int lotdig;
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) lotdig = 2; else lotdig = 1;
if (Valdepo == "USD")
{
if (StringSubstr(Symbol(), 0, 3) == "USD")
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else if (StringSubstr(Symbol(), 3, 3) == "USD")
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / Ask / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
{
pr = MarketInfo(StringSubstr(Symbol(), 0, 3) + "USD", MODE_ASK);
if (pr != 0)
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / pr / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
}
}
if (Valdepo == "EUR")
{
if (StringSubstr(Symbol(), 0, 3) == "EUR")
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
{
pr = MarketInfo("EUR" + StringSubstr(Symbol(), 0, 3), MODE_BID);
if (pr != 0)
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() * pr / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
Lot2 = NormalizeDouble(AccountFreeMargin() * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
}
}
if (Valdepo == "UAH")
{
if (StringSubstr(Symbol(), 0, 3) == "USD")
Lot2 = NormalizeDouble(AccountFreeMargin() / 40 * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else if (StringSubstr(Symbol(), 3, 3) == "USD")
Lot2 = NormalizeDouble(AccountFreeMargin() / 40 * LotBalancePcnt * AccountLeverage() / Ask / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
{
pr = MarketInfo(StringSubstr(Symbol(), 0, 3) + "USD", MODE_ASK);
if (pr != 0)
Lot2 = NormalizeDouble(AccountFreeMargin() / 40 * LotBalancePcnt * AccountLeverage() / pr / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
else
Lot2 = NormalizeDouble(AccountFreeMargin() / 40 * LotBalancePcnt * AccountLeverage() / 100 / MarketInfo(Symbol(), MODE_LOTSIZE), lotdig);
}
}
MinLots = MarketInfo(Symbol(), MODE_MINLOT);
MaxLots = MaxLot;
lotcalc = "Autolot=" + Lot2;
if (!DynamicLot) Lot2 = Lots;
if (Lot2 < MinLots) Lot2 = MinLots;
if (Lot2 > MaxLots) Lot2 = MaxLots;
lotcalc = lotcalc + " MinLots=" + MinLots + " LOT=" + NormalizeDouble(Lot2, lotdig);
Print(lotcalc);
return (NormalizeDouble(Lot2, lotdig));
}
Stoploss Autolot Berechnungsfunktion:
Wenn Sie die Stop Loss Autolot-Funktionalität zu Ihrem EA hinzufügen möchten, können Sie unseren Code herunterladen:
StopLosssd = Stop Loss in Punkten
Externe Variablen:
Lots = 0,1; // Fester Lot
DynamicLotStopLoss = // true/false
LotBalancePcnt (RiskLot) = 20; // % der freien Marge
Funktion:
double GetSizeLotStopLoss(double StopLosssd=1) // The function returns the lot size { string Author = "Author of function template: www.expforex.com"; string Valdepo = AccountCurrency(); // If MM is enabled, then determine the lot size double MinLots; int lotdig; if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) lotdig = 2; else lotdig = 1; double Free = AccountFreeMargin(); double LotVal = MarketInfo(Symbol(), MODE_TICKVALUE); // Cost of 1 pip for 1 lot double Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); double Max_Lot = MarketInfo(Symbol(), MODE_MAXLOT); double Step = MarketInfo(Symbol(), MODE_LOTSTEP); double Lot = MathFloor((Free * LotBalancePcnt / 100) / (StopLosssd * LotVal) / Step) * Step; MinLots = MarketInfo(Symbol(), MODE_MINLOT); if (Lot < MinLots) Lot = MinLots; return (NormalizeDouble(Lot, lotdig)); }
Fragen?
Wenn Sie Fragen haben, stellen Sie diese bitte. Wir verkaufen kein Schwein im Sack.
Jedes unserer Produkte kann vor dem Kauf getestet werden.
Wir schätzen Ihr Interesse und Ihre Unterstützung für unsere Produkte und bemühen uns, hohe Qualitätsstandards aufrechtzuerhalten.
Danke, dass Sie bei uns sind!
Haben Sie eine Frage?
5 responses to “Meine Autolot-Geheimnisse. Dynamisches Lot oder Autolot.”
-
I want to be able to double whatever lot size that is being copied from the master onto the client.. How do I do that with settings… so no matter what every new position the client with be 2x that.. master opens a trade of .03, then it will be copied to client as .06.
-
I want to be able to double whatever lot size that is being copied from the master onto the client.. How do I do that with settings… so no matter what every new position the client with be 2x that.. master opens a trade of .03, then it will be copied to client as .06.
-
I want to be able to double whatever lot size that is being copied from the master onto the client.. How do I do that with settings… so no matter what every new position the client with be 2x that.. master opens a trade of .03, then it will be copied to client as .06.
-
I want to be able to double whatever lot size that is being copied from the master onto the client.. How do I do that with settings… so no matter what every new position the client with be 2x that.. master opens a trade of .03, then it will be copied to client as .06.
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply