Programlı olarak "Marj Yüzdesi" nasıl alınır

 

"Sözleşme Özellikleri" terminal penceresinde "Marj yüzdesi" öğesi vardır. Teorik olarak, SymbolInfoDouble() işlevi tarafından döndürülmelidir, ancak belirteçleri arasında bu "Marj Yüzdesini" bulmanızı sağlayan bir değer bulamadım. Programlı olarak nasıl alabilirim?


 
Ve bu marj yüzdesi ne anlama geliyor?
 
Alexey Viktorov :
Ve bu marj yüzdesi ne anlama geliyor?
CFD'ler için marj hesaplamasında kullanılır. ENUM_SYMBOL_CALC_MODE açıklamasına bakın.
 

Eksik soru için özür dilerim, daha ayrıntılı sormalıydım.

Ve hedef nedir? Marjın nasıl doğru / yanlış hesaplandığını kontrol edin? Değilse, açıklamadaki bu formülden hesaplanabilir. Ve sonra onunla ne yapmalı?

 
Alexey Viktorov :

Eksik soru için özür dilerim, daha ayrıntılı sormalıydım.

Ve hedef nedir? Marjın nasıl doğru / yanlış hesaplandığını kontrol edin?

Hedefler, uygun hayal gücü ile çok şey ortaya çıkarabilirsiniz. :) Ve kesinlikle "doğru / yanlış" olup olmadığını kontrol etmek için değil.

Değilse, açıklamadaki bu formülden hesaplanabilir.

Nasıl? Onun için sadece bu "Marj Yüzdesi" gereklidir. Ellerinizle sürmeyi mi önerirsiniz? :) Kodun programlı olarak alabilmesi gerekir.

Ve sonra onunla ne yapmalı?

Şimdi soru şu - "Marjin Yüzdesi" değerini programlı olarak elde etmek için. Tabloda olduğu için, programlı olarak elde etmenin mümkün olması gerektiği anlamına gelir. Ve bundan sonra ne yapılacağı, bu konu için geçerli olmayan ayrı bir sorudur.
 

bkz. SymbolInfoDouble

 SymbolInfoDouble (symbol, SYMBOL_MARGIN_INITIAL );
SymbolInfoDouble (symbol, SYMBOL_MARGIN_MAINTENANCE );
 
Taras Slobodyanik :

bkz. SymbolInfoDouble


Maalesef öyle değil. MT4'te bu değerler genellikle sıfırdır.
 

yani düzenle?

 double procentMgn;
procentMgn= AccountBalance ()* 100 / MarketInfo ("GOLD",MODE_MARGINREQUIRED);
 
Renat Akhtyamov :

yani düzenle?

Hayır, olmayacak.

1. MarketInfo() işlevi kullanımdan kaldırılmıştır.

2. MODE_MARGINREQUIRED, kısa boşluklar için yalnızca uzun pozlar için doğru sonucu döndürür.

3. MODE_MARGINREQUIRED, zaten ihtiyacım olmayan mevduat para birimindeki sonucu döndürür.

4. Depozito yüzdesine ihtiyacım yok. Sadece sembol için "Marjin Yüzdesi" parametresinin değerine ihtiyacım var. Ve neye ihtiyacım olduğunu hesaplayabilirim.

 
ir0407 :

Hayır, olmayacak.

1. MarketInfo() işlevi kullanımdan kaldırılmıştır.

2. MODE_MARGINREQUIRED, kısa boşluklar için yalnızca uzun pozlar için doğru sonucu döndürür.

3. MODE_MARGINREQUIRED, zaten ihtiyacım olmayan mevduat para birimindeki sonucu döndürür.

4. Depozito yüzdesine ihtiyacım yok. Sadece sembol için "Margin Percentage" parametresinin değerine ihtiyacım var. Ve neye ihtiyacım olduğunu hesaplayabilirim.

MT5'e ihtiyacınız varsa, o zaman forumun başka bir bölümündesiniz.

iyi bilinen bilgilerle şaşırtmadın, ya da daha kötüsü:

1. aslında MarketInfo() işlevi değil, sonucu yüzde olacak bir ifade

2. En az 4 ondalık basamağınız yok, bu nedenle uzun ve kısa için % olarak marj aynı olacaktır.

3. sadece çarp

procentMgn

0.01'e kadar ve mutlu olacaksınız.

 
ir0407 :

Hedefler, uygun hayal gücü ile çok şey ortaya çıkarabilirsiniz. :) Ve kesinlikle "doğru / yanlış" olup olmadığını kontrol etmek için değil.

Nasıl? Onun için sadece bu "Marj Yüzdesi" gereklidir. Ellerinizle sürmeyi mi önerirsiniz? :) Kodun programlı olarak alabilmesi gerekir.

Şimdi soru şu - "Marjin Yüzdesi" değerini programlı olarak elde etmek için. Tabloda olduğu için, programlı olarak elde etmenin mümkün olması gerektiği anlamına gelir. Ve bundan sonra ne yapılacağı, bu konu için geçerli olmayan ayrı bir sorudur.

Pekala, evet ... fantezi bizim her şeyimiz ... ama neden size yardım etmeye çalışan insanların kendi hayal ettiğiniz şeyi hayal etmesi gerektiği açık değil? Pekala, tamam, soru bu değil.

Bu formülden gerekli olanı nasıl elde edersiniz:

Formülün kendisi Marj = Lot *SözleşmeBoyutu*PiyasaFiyatı*Yüzde/100'dür

Dolayısıyla Yüzde = Marj/ ( Lot *SözleşmeBoyutu*MarketFiyatı/100 )

ir0407 :

1. MarketInfo() işlevi kullanımdan kaldırılmıştır.

Şimdiye kadar, bu, kullanımdan kaldırılan işlevler listesinde değil. Bu yüzden marj yüzdesini belirlemek için eksik değeri verir.

 MarketInfo ( _Symbol , MODE_MARGINREQUIRED );

O anki tüm verileri mevcut fiyattan aldıktan sonra, emir açarken tutulan marjı emir açılış fiyatından yeniden hesaplamak kolaydır.

mql5 için gerekirse, kullanmanız gerekir

 bool    SymbolInfoMarginRate ( 
   string              name,                     // символ 
   ENUM_ORDER_TYPE     order_type,               // тип ордера 
   double &             initial_margin_rate,       // коэффициент взимания начальной маржи 
   double &            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );
Устаревшие функции - Справочник MQL4
Устаревшие функции - Справочник MQL4
  • docs.mql4.com
Устаревшие функции - Справочник MQL4