Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 15

 
Renat Akhtyamov:
sehen wir uns den Code an.
Sie mischen es.
 
A1exPit:
Sie rühren es an.
Dann viel Glück.
 
Renat Akhtyamov:
dann viel Glück.
Ist der Code nicht wichtig für die Frage, die Sie gestellt haben? Sie hätten auch einfach schreiben können - ich weiß nicht, aber es funktioniert irgendwie.
 
A1exPit:
Ist der Code in dieser Frage nicht wichtig? Sie hätten auch einfach "Ich weiß nicht" schreiben können, aber es scheint zu funktionieren.

Die Frage bezieht sich auf den Code, also kann man es nicht ohne den Code machen.

Fragen Sie nach Modifikatoren oder nach der Auftragsabwicklung?

Ich weiß nicht, was Sie brauchen. Aber der Fehler liegt im Code - 100%.

 

Bitte beraten Sie, wie man MQL4 verwenden, um einen Margin-Wert für jede offene Position im Terminal zu erhalten?

Ich habe es immer so gemacht:

margin = MarketInfo(Symbol(),MODE_LOTSIZE) * OrderOpenPrice() / AccountLeverage() * OrderLots();

Beim Handel mit EUR/USD hat diese Konstruktion gut funktioniert, und ich war mir sicher, dass ihre Logik korrekt war.

Aber jetzt möchte ich das gleiche Ergebnis für EUR/JPY (oder EUR/CHF) erhalten. Offensichtlich muss ich anstelle vonOrderOpenPrice() den Wert eines Standard-Lots mit dem Kurs der Basiswährung zur Einzahlungswährung multiplizieren (in meinem Fall mit EUR/USD). Doch wie hoch ist dieser Satz? Diejenige, die zum Zeitpunkt der Positionseröffnung galt, oder diejenige, die jetzt gilt (zu dem Zeitpunkt, zu dem wir die Höhe der Einlage für diese Position wissen wollen)?

 
Babu Bonappan:

Bitte beraten Sie, wie man MQL4 verwenden, um einen Margin-Wert für jede offene Position im Terminal zu erhalten?

Ich habe es immer so gemacht:

margin = MarketInfo(Symbol(),MODE_LOTSIZE) * OrderOpenPrice() / AccountLeverage() * OrderLots();

Beim Handel mit EUR/USD hat diese Konstruktion gut funktioniert, und ich war mir sicher, dass ihre Logik korrekt war.

Aber jetzt möchte ich das gleiche Ergebnis für EUR/JPY (oder EUR/CHF) erhalten. Offensichtlich muss ich anstelle vonOrderOpenPrice() den Wert eines Standard-Lots mit dem Kurs der Basiswährung zur Einzahlungswährung multiplizieren (in meinem Fall mit EUR/USD). Aber wie hoch ist dieser Satz? Diejenige, die zum Zeitpunkt der Eröffnung der Stelle existierte, oder diejenige, die jetzt existiert (zu dem Zeitpunkt, zu dem wir den Betrag der Einlage für diese Stelle wissen wollen)?

margin = MarketInfo(OrderSymbol(),MODE_MARGINREQUIRED) * OrderLots();

Das Ergebnis wird nicht genau sein.

Sie können aber auch den Kurs des gewünschten Währungspaares zum Zeitpunkt der Ordereröffnung auf dem Chart ablesen und gegebenenfalls die Spanne (Geld-/Briefkurs) berücksichtigen und den genaueren Wert der Marge zum Zeitpunkt der Ordereröffnung nach folgender Formel berechnen

Der Fallstrick kann die Berechnung der Marge zu einem Zeitpunkt sein, als die Hebelwirkung anders war

 
Was ist, wenn der EUR/USD-Wechselkurs bei der Auftragseröffnung in das Kommentarfeld geschrieben und dann von dort ausgelesen wird?
 
Babu Bonappan:
Was ist, wenn der EUR/USD-Wechselkurs bei der Auftragseröffnung in das Kommentarfeld geschrieben und dann von dort ausgelesen wird?

Kommentar für andere Zwecke.

So finden Sie den Preis heraus:

         string Symbol_X="USDCHF";
        
         int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
         double bid_X=iClose(Symbol_X,Period(),bs);
 
Renat Akhtyamov:

Kommentar für andere Zwecke.

So finden Sie den Preis heraus:

         string Symbol_X="USDCHF";
        
         int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
         double price_X=iClose(Symbol_X,Period(),bs);

Wenn wir z. B. auf Tages-Charts handeln, erhalten wir den Eröffnungskurs des Tages, in dessen Mitte der Auftrag, der uns interessiert, eröffnet wurde, oder? Und er kann sich erheblich von dem Preis unterscheiden, der zum Zeitpunkt der Eröffnung galt.

 
Babu Bonappan:

Wenn wir also z. B. auf Tages-Charts handeln, erhalten wir den Eröffnungskurs des Tages, in dessen Mitte der Auftrag, der uns interessiert, eröffnet wurde, oder? Und er kann sich erheblich von dem Preis unterscheiden, zu dem er eröffnet wurde.

Niemand besteht auf der Verwendung von Period()

Geben Sie z.B. ausdrücklich PERIOD_M15 oder eine andere

Grund der Beschwerde: