如何以编程方式获得 "保证金的百分比"?

 

在终端窗口 "合同规格 "中,有一个 "保证金百分比 "项目。它应该由SymbolInfoDouble() 返回,但我没有在它的指定器中找到任何可以找出这个 "保证金百分比 "的值。 如何以编程方式获得?


 
这个百分比的保证金是什么意思?
 
Alexey Viktorov:
这个百分比的保证金是什么意思?
它被用于CFD抵押品的计算。参见ENUM_SYMBOL_CALC_MODE 的描述。
 

对不起,我的问题不完整,我应该问得更明确。

这个问题的目的是什么?检查保证金的计算是否正确/错误?如果没有,可以根据描述中的那个公式来计算。然后你用它来做什么?

 
Alexey Viktorov:

对不起,我的问题不完整,我应该问得更明确。

目标是什么?要检查保证金的计算是否正确或不正确?

只要有正确的想象力,你就能想出很多目标。:)而根本不是为了检查 "对/错"。

如果没有,可以根据描述中的公式计算。

如何?嗯,这就是这个 "保证金百分比 "的作用。你是在建议我们用手输入吗?)代码必须能够以编程方式得到它。

然后该如何处理?

现在的问题是--如何以编程方式获得 "保证金百分比 "的值。如果它在表中,那么一定可以通过编程获得它。而下一步该怎么做是一个单独的问题,与这个话题无关。
 

SymbolInfoDouble

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

见SymbolInfoDouble


不幸的是,事实并非如此。在MT4中,这些值往往是零。
 

这样可以吗?

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

这样可以吗?

不,它不会。

1.MarketInfo()函数已被淘汰。

2.MODE_MARGINREQUIRED只对长仓返回正确的结果,对短仓则失败。

3.MODE_MARGINREQUIRED返回已经在库房货币中的结果,我不需要这个。

4.我不需要存款的百分比。我只需要符号的 "保证金百分比 "参数的值。而且我可以自己计算出我需要的东西。

 
ir0407:

不,它不会。

1.MarketInfo()函数已被淘汰。

2.MODE_MARGINREQUIRED仅对长仓返回正确结果,对短仓则失败。

3.MODE_MARGINREQUIRED返回的结果是存款货币,我不需要。

4.我不需要存款的百分比。我只需要符号的 "保证金的百分比 "的值。而且我可以自己计算出来。

如果你在MT5上需要它,请到另一个论坛版块。

你对自己的常识并不感到惊讶,甚至更糟。

1.这不是MarketInfo()函数,而是一个表达式,其结果将是一个百分比的

2.你没有至少4位小数,所以多头和空头的百分比保证金将是一样的。

3.仅仅是乘法

procentMgn

你可以使用0.01,你会很高兴。

 
ir0407:

只要有正确的想象力,你可以想到很多目标。:)而根本不是为了正确/错误的测试。

它是如何工作的?你需要这个非常 "保证金的百分比"。你想让我用手打出来吗?)代码应该能够以编程方式得到它。

现在的问题是--如何以编程方式获得 "保证金百分比 "的值。如果它在表中,那么一定可以通过编程获得它。而下一步该怎么做是一个单独的问题,与这个话题无关。

是的,嗯...幻想是一切......我只是不明白,为什么试图帮助你的人要幻想你所幻想的?总之,这不是问题所在。

你如何从这个公式中获得你需要的东西?

该公式本身是:保证金=手数*合约大小*市场价格*百分比/100

因此,百分比= 保证金/手数*合约大小*市场价格/100)。

ir0407

1.MarketInfo()函数已被淘汰。

它还不在废弃的函数 列表中。因此,它产生了缺失值,以确定保证金百分比。

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

在获得了当前时刻、当前价格的所有数据后,很容易重新计算在订单开仓时扣留的保证金,以订单的开仓价格计算。

如果你需要它用于mql5,你应该使用

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