堡垒。执法问题 - 页 120

 
在MQ-demo服务器上,来自FORTS部分的股票有所有三种货币--报价/利润、保证金、基础--设置为RUR,但一堆股票(如BR-、GOLD-等)显然是以美元报价的。问题:这是演示设置的一个小故障吗?如果没有,我如何从MQL中知道这种股票的真实报价货币?
 
Stanislav Korotky:
在MQ-demo服务器上,来自FORTS部分的股票有所有三种货币--报价/利润、保证金、基础--设置为RUR,但一堆股票(如BR-、GOLD-等)显然是以美元报价的。问题:这是演示设置的一个小故障吗?如果没有,我如何从MQL中知道这种股票的真实报价货币?

是的,它们是以美元报价的,清算是重新计算的,并考虑到了汇率差异。

 
Aleksey Vyazmikin:

是的,以美元报价,在清算时有一个重新计算,汇率差异被考虑在内。

"是",在什么意义上?实际上是美元,但在终端是卢布。如何从程序上处理这个问题?到目前为止,我只看到一个办法--将输入参数相乘,以便能够与MQL API函数的值相重叠。

 
Stanislav Korotky:

"是",在什么意义上?实际上是美元,但在终端是卢布。如何从程序上进行处理?到目前为止,我只看到一个办法--将输入参数相乘,以便与MQL API函数的值重合。

目的到底是什么?为了计算出GO?

 
Stanislav Korotky:

"是",在什么意义上?实际上是美元,但在终端是卢布。如何从程序上进行处理?到目前为止,我看到一个办法--将输入参数相乘,以便与MQL API函数的值重叠。

我把所有东西都转换为点数,然后用它们来工作。

如果我需要将点数转换成价格,我就用

此功能。

//+------------------------------------------------------------------+
//| Expert Points to price function                                  |
//+------------------------------------------------------------------+
double PointsToPrice(const long a_points)
{
  step_price = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
  double a_price = (double(a_points) * Point() ) / step_price;
  if(a_points < 0)
  {
    a_price = MathFloor(a_price) * step_price;
  }
  else
  {
    a_price = MathCeil(a_price) * step_price;
  }
  return(NormalizeDouble(a_price, Digits()));
}

如果我想转换CS,所有的股票都是用卢布。

添加

据此,输入参数为点。

允许对所有符号进行通用计算。

 

在Otkritie的真实账户。我试图用AccountInfoDouble函数 获取账户数据(余额、资金、保证金和其他)。

我几乎得到了所有的东西,但当我试图用线来获得追加保证金和止损水平时。

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


我总是得到零分。如果做了也一样。

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


这与什么有关,为什么我总是得到零?是经纪人的问题还是MT5的问题?

 
Zmeev:

在Otkritie的真实账户。我试图用AccountInfoDouble函数 获取账户数据(余额、资金、保证金和其他)。

我几乎得到了所有的东西,但当我试图用线来获得追加保证金和止损水平时。

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


我总是得到零分。如果做了也一样。

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


它与什么有关,为什么我总是得到零?这是经纪人的问题还是MT5的问题?

外汇交易?

 

堡垒。

收到的其余账户数据与现实相符。

询问了经纪人,但他们完全没有联系,也没有帮助。
 
Zmeev:

堡垒。

其余收到的账户信息都是真实的。

问过经纪人,但他们根本不了解情况,根本没有帮助。

因此,显然他们通过其他方式自己监测情况,他们通常发送短信,可能打电话,然后关闭....。

这取决于情况,有风险经理在监控。服务器可能没有完全配置好...

 
Aleksey Vyazmikin:

目的到底是什么呢?为了计算出GO?

目标很简单--一个正确的集群指标。基本上,不清楚为什么在价格明确为美元的情况下,终端会返回卢布。这是否正常?

娼者。

我把所有东西都转换为点数,并以点数来工作。

如果我需要将点数转换成价格,我就用

价格会是什么货币?同样,你也不知道。我需要将不同工具的价格转换为一个共同的价格。