Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 662
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Leider gibt es kein Analogon der EigenschaftMarketInfo(symbf,MODE_MARGINREQUIRED) in MQL5, aber es wurde bereits irgendwo im Forum diskutiert
Sie müssen programmatischden Betrag der freien Mittel erhalten, die benötigt werden, um 1 Lot zu öffnen, um in MQL5 zu kaufen, analog zu MQL4 "MarketInfo(symbf,MODE_MARGINREQUIRED);"
Probieren Sie die Funktion OrderCheck() aus.
double margin_buy,margin_sell;
OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,lot,SymbolInfoDouble(_Symbol,SYMBOL_ASK),margin_buy);
OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,lot,SymbolInfoDouble(_Symbol,SYMBOL_BID),margin_sell);
Print("margin_buy=",margin_buy);
Print("margin_sell=",margin_sell);
Ich danke Ihnen! Ich habe es herausgefunden.
double margin_buy,margin_sell;
OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,lot,SymbolInfoDouble(_Symbol,SYMBOL_ASK),margin_buy);
OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,lot,SymbolInfoDouble(_Symbol,SYMBOL_BID),margin_sell);
Print("margin_buy=",margin_buy);
Print("margin_sell=",margin_sell);
Ich möchte einen Teil des Codes in eine Funktion übertragen, aber das Ergebnis der Funktion ist nicht die Rückgabe eines Wertes, sondern die tatsächliche Änderung der Werte der Variablen, wie kann ich das tun?
int CountExpOrder_OS=0;
int CountExpOrder_OB=0;
int CountMarketOrder_OS=0;
int CountMarketOrder_OB=0;
OpenOrdersInfo();
void OpenOrdersInfo()
{
CountExpOrder_OS=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,SELL,ALL,"Number"));
CountExpOrder_OB=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,BUY,ALL,"Number"));
CountMarketOrder_OS=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_SELL, ALL, "Number"));
CountMarketOrder_OB=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_BUY, ALL, "Number"));
Print("Отложенных ордеров на покупку открыто(Magic: ",Magic,")=",CountExpOrder_OB);
Print("Отложенных ордеров на продажу открыто(Magic: ",Magic,")=",CountExpOrder_OS);
Print("Рыночных ордеров на покупку открыто(Magic: ",Magic,")=",CountMarketOrder_OB);
Print("Рыночных ордеров на продажу открыто(Magic: ",Magic,")=",CountMarketOrder_OS);
}
Ich möchte einen Teil des Codes in eine Funktion übertragen, aber das Ergebnis der Funktion wäre nicht , einen Wert zurückzugeben, sondern tatsächlich die Werte der Variablen zu ändern, wie kann ich das tun?
es nicht helfen wird?
int OpenOrdersInfo()
{
...
zurück(0);
}
Diese Frage, ich möchte einen Teil des Codes in eine Funktion zu übertragen, aber das Ergebnis der Funktion ist nicht die Rückkehr eines Wertes, sondern tatsächlich ändern die Werte der Variablen, wie kann ich es tun?
int CountExpOrder_OS=0;
int CountExpOrder_OB=0;
int CountMarketOrder_OS=0;
int CountMarketOrder_OB=0;
OpenOrdersInfo();
void OpenOrdersInfo()
{
CountExpOrder_OS=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,SELL,ALL,"Number"));
CountExpOrder_OB=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,BUY,ALL,"Number"));
CountMarketOrder_OS=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_SELL, ALL, "Number"));
CountMarketOrder_OB=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_BUY, ALL, "Number"));
Print("Отложенных ордеров на покупку открыто(Magic: ",Magic,")=",CountExpOrder_OB);
Print("Отложенных ордеров на продажу открыто(Magic: ",Magic,")=",CountExpOrder_OS);
Print("Рыночных ордеров на покупку открыто(Magic: ",Magic,")=",CountMarketOrder_OB);
Print("Рыночных ордеров на продажу открыто(Magic: ",Magic,")=",CountMarketOrder_OS);
}
Hier ist es in Ordnung, VOID gibt das Ergebnis nicht zurück.
Ich möchte einen Teil des Codes in eine Funktion übertragen, aber das Ergebnis der Funktion wäre nicht , einen Wert zurückzugeben, sondern tatsächlich die Werte der Variablen zu ändern, wie kann ich das tun?
Ich könnte das versuchen, aber es ist keine gute Lösung:
OpenOrdersInfo(CountExpOrder_OS,CountExpOrder_OB,CountMarketOrder_OS,CountMarketOrder_OB);
Print("Ордеров на покупку(Magic: ",Magic,")=",CountExpOrder_OB);
Print("Ордеров на продажу(Magic: ",Magic,")=",CountExpOrder_OS);
Print("Позиций на покупку(Magic: ",Magic,")=",CountMarketOrder_OB);
Print("Позиций на продажу(Magic: ",Magic,")=",CountMarketOrder_OS);
void OpenOrdersInfo(int &CountExpOrder_OS,int &CountExpOrder_OB,int &CountMarketOrder_OS,int &CountMarketOrder_OB)
{
CountExpOrder_OS=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,SELL,ALL,"Number"));
CountExpOrder_OB=StrToInteger(Order.Exp_Order_Info(Symbol(),Magic,BUY,ALL,"Number"));
CountMarketOrder_OS=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_SELL, ALL, "Number"));
CountMarketOrder_OB=StrToInteger(Order.Market_Order_Info(Symbol(), Magic, OP_BUY, ALL, "Number"));
}
Es ist OK, der VOID liefert kein Ergebnis.
Ja, es funktioniert richtig - ich hatte nur einen Fehler und bin in einen Stupor gefallen.
Ich danke Ihnen allen für Ihre Hilfe.
Jetzt werde ich Fragen zu fünf stellen :)
Ja, das stimmt - es war nur ein Ausrutscher meinerseits und ich fiel in einen Stupor.
Ich danke Ihnen allen für Ihre Hilfe.
Ich werde jetzt Fragen für einen Fünfer stellen :)
5 Pfund für eine Antwort?
)
Ich warte...