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

 
ir0407:
保证金百分比不是计算出来的抵押品。它只是计算保证金的组成部分之一。而这个计算的结果(使用表中的公式)以保证金货币 返回,然后(如果它与存款货币不同)需要转换成存款货币。
都明白了,除了一个,这个组件的本质是什么)
 
K-2SO:

你能推荐一个经纪人吗,谢谢?对于我的测试...
机器人。
 

我将分享这些测试,我终于被这些公式搞糊涂了,到目前为止,这些公式加起来也没能成为一个单一的公式。三个不同的经纪人--三个不同的保证金百分比--三个不同的公式,你几乎可以说适合这个结果。这是一个已经下了(!)黄金订单(买入)的保证金计算。

正如你所看到的,保证金百分比有时仍然很重要,但元引号真的不需要它。

 margin=OrderLots()*contract*OrderOpenPrice()/leverage/100; // метаквоты - процент маржи 100%

 margin=OrderLots()*contract*OrderOpenPrice()*Percentage/100; // инста - процент маржи 1%
            
 margin=(OrderLots()*contract*OrderOpenPrice()*Percentage)/leverage/100;// робо - процент маржи 200%
 
我想我明白了一般的公式应该如何运作(当我最终意识到实际上有一个保证金百分比时)--测试没有白费。而且是的...保证金百分比值绝对应该被使用(即使是已经下好的订单)。一旦我理解了如何计算和获得该值,我将分享我对计算单个下单CFD订单的保证金的一般公式的结论,如果有人感兴趣...尽管从原则上讲,在上述信息的代码中,一切都在眼前(我们正在寻找的依赖性)。
 
K-2SO:
我想我明白了一般的公式应该如何运作(当我最终意识到保证金百分比究竟是什么时)--测试没有白费。而且是的...保证金百分比值绝对应该被使用(即使是已经下好的订单)。当我明白如何计算和获得这个值时,如果有人感兴趣,我将分享我对单个下单CFD订单的保证金计算的一般公式的结论...尽管从原则上讲,在上面的信息中,所有的东西都在眼前(我们要寻找的依赖性)。

一切都在头版

关于交易、自动交易系统和测试交易策略的论坛

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

Alexey Viktorov, 2017.06.02 09:42

对...我不知道为什么试图帮助你的人要幻想你所幻想的东西?总之,这不是问题所在。

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

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

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

它还没有被列入过时的功能 列表。所以它产生了缺失的值,以确定保证金的百分比。

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

在获得当前时间和当前价格的所有数据后,很容易重新计算在订单开盘价时被扣留的保证金。

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

bool  SymbolInfoMarginRate( 
   string             name,                     // символ 
   ENUM_ORDER_TYPE    order_type,               // тип ордера 
   double&            initial_margin_rate,      // коэффициент взимания начальной маржи 
   double&            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );

当打开一个订单时,当前的价格和相同的保证金百分比被考虑在内,这只能从公式中获得。因此,我们应该首先使用以下函数定义当前价格下整手的必要保证金

MarketInfo(symbol, MODE_MARGINREQUIRED);

根据这个保证金,我们计算出保证金的百分比,然后计算出具体订单的保证金。但同样,保证金并不总是以存款的货币计算,而是以开单时的现行汇率换算成它,而且在mql4中没有办法在以后得到它(汇率)。在mql5中更容易,有CopyTicks(),你可以得到开单时的汇率,但这不是我们在这里谈论的语言。

 
Alexey Viktorov:

但同样,保证金并不总是以存款的货币计算,而是以开单时的现行汇率换算成它,而且在mql4中没有办法在以后得到它(汇率)。

在这一点上我仍然感到困惑。很明显,MARGINREQUIRED返回的是存款货币 的值,但我们需要什么货币呢?以符号报价的货币计算?
 
K-2SO:
在这一点上,我仍然感到困惑。很明显,MARGINREQUIRED返回的是存款货币 的价值。以符号报价的货币计算?

比较一下这两张图片,在第一个帖子和我的帖子中的第5页。两者都是黄金规格,但第一种规格的保证金货币是美元,第二种规格的保证金货币是XAU。因此,在第一种情况下,你可以什么都不做。 在第二种情况下,在收到存款货币的保证金后,它应该被转换为保证金货币,通过乘以报价,并将其放入公式中,我们用它来计算保证金百分比。否则,结果将是不正确的。因此,我们应该再次在公式中加入

符号_货币_边际

计算保证金的货币

绳子

 

经过一些实验,我必须承认,在这里

关于交易、自动交易系统和测试交易策略的论坛

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

Alexey Viktorov, 2017.06.02 10:24

杠杆一般不在基本公式中,保证金=(手数*合约大小*市场价格*百分比)/杠杆,所以我没有把它考虑在内。对于确定问题的内容,杠杆就像牛的马鞍。但进一步可能需要,但这与目前的问题无关......

我错了。必须使用杠杆,因为保证金

MarketInfo(symbol, MODE_MARGINREQUIRED);

我们用杠杆得到它。



 
Alexey Viktorov:

经过一些实验,我不得不承认,在这里

我错了。杠杆必须被使用,因为保证金

是通过考虑到杠杆作用而得到的。

测试表明,当保证金百分比等于1时,杠杆率就不会被考虑在内!但从100岁以上开始,已经考虑到了这一点。我希望能找到一个保证金比例从2到99的经纪人。

 
K-2SO:

测试表明,当保证金百分比等于1时,杠杆率不被考虑在内!但当它是100及以上时,就已经被考虑在内了。我希望能找到一个保证金比例在2到99之间的经纪人。

用5英镑和100的杠杆开一个模拟账户,看看保证金比例是多少,比如说,黄金也是如此,甚至更好--卢布...