Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 662

 
Sergey Gritsay :
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ı.
SiparişCalcMargin
OrderCalcMargin Mevcut bekleyen emirler ve açık pozisyonlar hariç, cari hesapta ve cari piyasa ortamında belirtilen emir türü için gerekli teminat tutarını hesaplar. Planlanan ticaret işlemi için marjı tahmin etmenizi sağlar. Değer, hesabın para biriminde iade edilir. bool OrderCalcMargin ( ENUM_ORDER_TYPE eylemi, // sipariş tipi dize sembolü, // sembol adı çift hacim, // hacim çift fiyatı, // açık fiyat çift & marj // marj değerini almak için değişken); Parametre eylemi [içinde] Sipariş türü, ENUM_ORDER_TYPE numaralandırmasından değerler alabilir. sembol [içinde] Sembol adı. hacim [olarak] Ticaret işlem hacmi. fiyat [içinde] Açılış fiyatı. margin [out] İşlevin başarılı bir şekilde yürütülmesi durumunda gerekli kenar boşluğu boyutunun yazılacağı değişken. Hesaplama, cari hesapta bekleyen emir ve açık pozisyon yokmuş gibi yapılır. Marjın değeri birçok faktöre bağlıdır ve...
Belgeler | 2015.12.03 14:00
 
forexman77 :

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.
 
Alexey Kozitsyn :
OrderCheck() işlevini deneyin.
Teşekkür ederim! Anladım.
double lot= 1.0 ;
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);
 
forexman77 :
Teşekkür ederim! Anladım.
double lot= 1.0 ;
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);
Evet, yapabilirsiniz, ancak OrderCheck() durumunda, talebin kendisinden hemen önce gönderilmeye hazır bir ticari talebin yapısı ile beslenir.
 

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);

  } 

 
-Aleks- :

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);

}

 
-Aleks- :

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.

 
-Aleks- :

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:

int CountExpOrder_OS= 0 ,CountExpOrder_OB= 0 ,CountMarketOrder_OS= 0 ,CountMarketOrder_OB= 0 ;

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" ));
 }
 
Vladislav Andruschenko :

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 :)

 
-Aleks- :

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...