Werden wir alle Paare auf das aktuelle Instrument normalisieren?
dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits); // MA am Standort 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits); // MA am Standort 1-2
Werden wir alle Paare auf das aktuelle Instrument normalisieren?
Werden wir alle Paare auf das aktuelle Instrument normalisieren?
Und wie lässt sich das korrekt umsetzen, so dass es keine Warnungen gibt?
In der ursprünglichen Version ist es so:
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS) + 4;
dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA am Standort 2-3
dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA am Standort 1-2
Wie kann man dies ohne Warnungen umsetzen?
In der ursprünglichen Version ist es so:
Was hat +4 damit zu tun? So sollte es logischerweise sein
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS); dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA am Standort 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA am Standort 1-2
Was hat das mit +4 zu tun? Es soll logisch sein.
So geht auch die Warnung:
möglicher Datenverlust durch Typkonvertierung Multik.mq5 218 18
Um Warnungen zu vermeiden, müssen Sie die Konvertierung wie folgt vornehmen
int Digits_ = (int)SymbolInfoInteger(Symbol_, SYMBOL_DIGITS);
Gute Arbeit, aber verliert Multi-Instrument nicht seinen Sinn, wenn man mit denselben Setups mit gleichartigen Paaren handelt? Ich würde erwarten, dass ihre Drawdowns etwa zur gleichen Zeit auftreten, und das kann ein Problem sein. Leider sind jedoch alle Währungspaare so eng miteinander verbunden, dass dies unvermeidbar ist. Ich handele die Währungspaare EUR/USD, GBP/USD auch zusammen, aber für das eine verwende ich einen Trendfolger, für das andere einen Umkehr-, Tops-and-Bottoms-EA.
Wenn Sie keine Warnungen erhalten wollen, müssen Sie die Konvertierung wie folgt vornehmen.
request.volume = Money_M();
Dieser EA ist ein großartiges Beispiel für organisierten Code und hat tolle Kommentare. Ich habe jedoch eine Frage zu Ihrer Losgrößenfunktion namens Money_M(). Was und wo ist der Entscheidungsbaum dahinter?
Ich habe versucht, die Support-Website zu durchsuchen, konnte aber keinen Hinweis finden, und es schien nicht mit einer zugehörigen Klasse verknüpft zu sein.
request.volume = Money_M();
Dieser EA ist ein großartiges Beispiel für organisierten Code und hat tolle Kommentare. Ich habe jedoch eine Frage zu Ihrer Losgrößenfunktion namens Money_M(). Was und wo ist der Entscheidungsbaum dahinter?
Ich habe versucht, die Support-Website zu durchsuchen, konnte aber keinen Verweis finden, und es schien nicht mit einer zugehörigen Klasse verknüpft zu sein.
double Money_M() { double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10; Lots=MathMin(5,MathMax(0.1,Lots)); if(Lots<0.1) Lots=NormalizeDouble(Lots,2); else { if(Lots<1) Lots=NormalizeDouble(Lots,1); else Lots=NormalizeDouble(Lots,0); } return(Lots); }
Diese Funktion wird verwendet, um die Größe von Handelspartien zu berechnen.
double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10;
In diesem String wird die berechnete Größe der Handelslose angegeben. Die Berechnung wird mit freiem Geld(ACCOUNT_FREEMARGIN) durchgeführt. Risiko = 10% der verfügbaren freien Mittel.
Lots=MathMin(5,MathMax(0.1,Lots));In dieser Zeile wird die Normalisierung der Handelslose durchgeführt. 0.1 <= Lot <= 5.0
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Multik:
Der Multicurrency Expert Advisor.
Autor: Andrew Kornishkin