Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 9

 
fxsaber :
Karar hemen geldi.
// Размер свободных средств, необходимых для открытия 1 лота на покупку
double GetMarginRequired( const string Symb )
{
   MqlTick Tick;

   return ( SymbolInfoTick (Symb, Tick) ? Tick.ask * SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE ) * SymbolInfoDouble (Symb, SYMBOL_TRADE_CONTRACT_SIZE ) *
         SymbolInfoDouble (Symb, SYMBOL_POINT ) / ( SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_SIZE ) * AccountInfoInteger ( ACCOUNT_LEVERAGE )) : 0 );
}
Bu FOREX için bir hesaplamadır. Gerisi benzetme gereğidir.
Harika, mevduat para birimindeki marjı getirmeye devam ediyor, çünkü. Teminat, örneğin, mevduat para birimi USD olan AUDCAD için USD cinsinden olmalıdır.
 
Alexey Volchanskiy :
Harika, mevduat para birimindeki marjı getirmeye devam ediyor, çünkü. teminat, örneğin, USD depo para birimi olan AUDCAD için USD cinsinden olmalıdır.
Bu yapıldı.
 
Alexey Volchanskiy :
Harika, mevduat para birimindeki marjı getirmeye devam ediyor, çünkü. teminat, örneğin, mevduat para birimi USD olan AUDCAD için USD cinsinden olmalıdır.
sadece bunun için işlevde SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE ) gibi bir tür... pip-lotları depo para birimine dönüştürün
 
fxsaber :
Bu yapıldı.

Forex'te her şey yolunda gidiyor, ancak son soru şu: "neden iki kat daha düşük ve nasıl düzeltilir?"

 
Vitaly Muzichenko :

Forex'te her şey yolunda gidiyor, ancak son soru şu: "neden iki kat daha düşük ve nasıl düzeltilir?"

SGDJPY'de marjın FIBOGroup-MT5 Sunucusu ve MetaQuotes-Demo sunucularında birçok kez farklı olduğu gerçeğiyle karşılaştım. Bu, MT5'in marjı hatalarla hesapladığını gösterir. Eğer öyleyse, o zaman karşılaştırma için bir standart yoktur. Bu nedenle, bunun benim uygulamamın mı yoksa geliştiricilerin mi bir hatası olduğunu söylemek kesinlikle imkansız. Bence şurada burada bir yanlışlık var. Sorun doğru bilgi eksikliğidir.
 
fxsaber :
SGDJPY'de marjın FIBOGroup-MT5 Sunucusu ve MetaQuotes-Demo sunucularında birçok kez farklı olduğu gerçeğiyle karşılaştım. Bu, MT5'in marjı hatalarla hesapladığını gösterir. Eğer öyleyse, o zaman karşılaştırma için bir standart yoktur. Bu nedenle, bunun benim uygulamamın mı yoksa geliştiricilerin mi bir hatası olduğunu söylemek kesinlikle imkansız. Bence şurada burada bir yanlışlık var. Sorun doğru bilgi eksikliğidir.

Bir istisna dışında doğru şekilde gösterilen iki sunucum var - kırmızıyla vurgulanmış

Kırmızı ile vurgulanan mülk nasıl bulunur?

Teşekkür ederim!

 
Vitaly Muzichenko :

Bir istisna dışında doğru şekilde gösterilen iki sunucum var - kırmızıyla vurgulanmış

Kırmızı ile vurgulanan mülk nasıl bulunur?

Bahşiş için teşekkürler! Vahşi doğada, bu SymbolInfoMarginRate . Yani şimdi
// Размер свободных средств, необходимых для открытия 1 лота на покупку
double GetMarginRequired( const string Symb )
{
   MqlTick Tick;
   double MarginInit, MarginMain;

   return (( SymbolInfoTick (Symb, Tick) && SymbolInfoMarginRate (Symb, ORDER_TYPE_BUY , MarginInit, MarginMain)) ? MarginInit * Tick.ask *
           SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE ) / ( SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_SIZE ) * AccountInfoInteger ( ACCOUNT_LEVERAGE )) : 0 );
}

MT5'te farklı yönlerde tamamen farklı marj gereksinimleri olabileceği açıkça anlaşılmalıdır. Onlar. tek MT4 seçeneği yuvarlanmayabilir. Forex'te elbette bu olmayacak. Ama hatırlaman gerek. Bu nedenle, genel olarak, böyle yazmanız gerekir.
// Альтернатива OrderCalcMargin
bool MyOrderCalcMargin(  const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )
{
   double MarginInit, MarginMain;

   const bool Res = SymbolInfoMarginRate (symbol, action, MarginInit, MarginMain);
  
  margin = Res ? MarginInit * price * volume * SymbolInfoDouble (symbol, SYMBOL_TRADE_TICK_VALUE ) /
                 ( SymbolInfoDouble (symbol, SYMBOL_TRADE_TICK_SIZE ) * AccountInfoInteger ( ACCOUNT_LEVERAGE )) : 0 ;
  
   return (Res);  
}
 
fxsaber :
Bu yapıldı.
Evet doğru heyecanlandım
 

FIBOGroup-MT5 Sunucusunda Eğlenceli MT5 SGDJPY

Bu durumda, MyOrderCalcMargin doğru hesaplar, ancak standart OrderCalcMargin yapmaz!

 
fxsaber :

FIBOGroup-MT5 Sunucusunda Eğlenceli MT5 SGDJPY

Bu durumda, MyOrderCalcMargin doğru hesaplar, ancak standart OrderCalcMargin yapmaz!

Hedge edilen marj nasıl hesaplanabilir?