Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 662
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ne yazık ki, MQL5'te MarketInfo(symbf,MODE_MARGINREQUIRED) özelliğinin bir benzeri yok, tam olarak hatırlamıyorum ama bu konu zaten forumda bir yerde tartışılmıştı.
MQL4 "MarketInfo(symbf,MODE_MARGINREQUIRED);" gibi MQL5'te satın almak için 1 lot açmak için gereken serbest teminat miktarını programlı olarak almak gerekir.
OrderCheck() işlevini deneyin.
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);
Teşekkür ederim! Anladım.
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);
Böyle bir soru, kodun bir kısmını bir fonksiyona aktarmak istiyorum ama fonksiyonun sonucu bir değerin dönüşü olmasın ama değişkenlerin değerlerindeki asıl değişiklik olsun diye bu nasıl yapılır ?
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);
}
Böyle bir soru, kodun bir kısmını bir fonksiyona aktarmak istiyorum ama fonksiyonun sonucu bir değerin dönüşü olmasın ama değişkenlerin değerlerindeki asıl değişiklik olsun diye bu nasıl yapılır ?
bu yardımcı olmayacak mı?
int AçıkSipariş Bilgileri()
{
...
dönüş(0);
}
Böyle bir soru, kodun bir kısmını bir fonksiyona aktarmak istiyorum ama fonksiyonun sonucu bir değerin dönüşü olmasın ama değişkenlerin değerlerindeki asıl değişiklik olsun diye bu nasıl yapılır ?
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);
}
yani burada her şey yolunda gitti VOID sonucu döndürmez.
Böyle bir soru, kodun bir kısmını bir fonksiyona aktarmak istiyorum ama fonksiyonun sonucu bir değerin dönüşü olmasın ama değişkenlerin değerlerindeki asıl değişiklik olsun diye bu nasıl yapılır ?
Bunu deneyebilirsiniz, ancak çözüm en iyisi değil:
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" ));
}
yani burada her şey yolunda gitti VOID sonucu döndürmez.
Evet, doğru çıkıyor - benim açımdan sadece bir söve vardı ve ben bir sersemliğe düştüm.
Yardımlarınız için hepinize teşekkür ederim.
Şimdi 5 soru soracağım :)
Evet, doğru çıkıyor - benim açımdan sadece bir söve vardı ve ben bir sersemliğe düştüm.
Yardımlarınız için hepinize teşekkür ederim.
Şimdi 5 soru soracağım :)
Cevap için 5 dolar mı?
)
Beklemek...