从保证金的百分比中正确计算出该批次的金额 - 页 6

 
gochu:

接受建设性的批评


正如我在上面写给维宁 同志的那样


TICKVALUE 给出了TICKSIZE 的价格。

而到SL 的距离是用POINT 点来表示的。

POINT 不一定与TICKSIZE 相同(见Alpari的3位数对XAUUSD)。

因此,你必须将到SL 的距离从POINT转换为 TICKSIZE

否则,在这种情况下,我们会得到10倍的高估手数(这是我在XAUUSD货币对上看到的,直到我加入重新计算)。

重新计算的方法如下(在乘以TICKVALUE 之前):MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)

PS: 你没有检查pipsLoss==0,这可能会产生一个 "除以0 "的错误。


 
EverAlex:

正如我在上面写给维宁 同志的那样


TICKVALUE 给出了TICKSIZE 的价格。

而到SL 的距离是用POINT 点来表示的。

POINT 不一定与TICKSIZE 相同(见Alpari的3位数对XAUUSD)。

因此,你必须将到SL 的距离从POINT转换为 TICKSIZE

否则,在这种情况下,我们会得到10倍的高估手数(这是我在XAUUSD货币对上看到的,直到我加入重新计算)。

重新计算是这样进行的(在乘以TICKVALUE 之前):MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)

PS: 你没有检查pipsLoss==0,这可能会产生一个 "除以0 "的错误。


谢谢你,我将检查并最终确定!
 

我已经修好了,敲门...

离题的问题,有谁在终端中处理过可用的货币对列表...?

我不知道该如何处理它们!

 
gochu:

我已经修好了,敲门...

离题的问题,有谁在终端中处理过可用的货币对列表...?

我不知道该如何处理它们!

它就在这里。 另见功能列表中的邻居(左栏)。
 

我需要它来做什么...我想找到能使TICKSIZE和POINT 之间产生差异的配对。

找到并调整了脚本(附件https://www.mql5.com/en/code/8317)......但它需要很长的时间......。(在我的电脑上12分钟)...我希望有更快的东西

如果我找不到好东西,我就自己写...

 

这里有一个关于TICKSIZE和POINT 不匹配的函数

string CurrArray[];

string TICK_NOT_POINT()
{
   string resultString = "\nКоличество валютных пар="+IntegerToString(SymbolsTotal(false))+"\n";
   int quantCurr = SymbolsTotal(false);
   ArrayResize(CurrArray,quantCurr);
   Print(ArraySize(CurrArray));
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         CurrArray[i]=SymbolName(i,false);
         Print(SymbolName(i,false));
     }
     resultString+="\nНесовпадают TICKSIZE и POINT:";
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         if((int)(MarketInfo(CurrArray[i],MODE_TICKSIZE)/MarketInfo(CurrArray[i],MODE_POINT)) != 
        (int)(MarketInfo(CurrArray[i],MODE_POINT)/MarketInfo(CurrArray[i],MODE_POINT)))
           {
              resultString +="\n"+ CurrArray[i]+
              " TICKSIZE"+ DoubleToStr(MarketInfo(CurrArray[i],MODE_TICKSIZE), (int)MarketInfo(CurrArray[i],MODE_DIGITS))+ 
              " POINT"+DoubleToStr(MarketInfo(CurrArray[i],MODE_POINT), (int)MarketInfo(CurrArray[i],MODE_DIGITS));
           }      
     }
     return resultString;
}

只有在Alpari 53对演示中,我从未见过任何一对有不同的TICKSIZE和POINT。

 
gochu:

这里有一个关于TICKSIZE和POINT不匹配的函数

只有在阿尔帕里演示的53对,我从来没有看到一双有不同的。


那么,由此得出的结论是什么呢?

我们能不能不加一条从点到刻度的转换线?

让你的函数的用户在从2位数到3位数时获得10倍的增长?

我已经在上面报告了--在Alps中3位数的XAUUSD的手数计算存在差异,直到我加入了重新计算(真实的,ECN-新账户)。

如果TICKVALUE TICKSIZE 设置了价格,但距离(例如到SL)是在Point 中设置的,我们应该从Point到 TICKSIZE 重新计算。

仅仅因为TICKSIZE 现在 等于 的某个地方并不意味着什么,而且

不重新计算成ticks,对你的函数的用户来说是一个炸弹。

 

不,不是以任何方式......计算的想法是计算TICKSIZE和POINT 之间的系数,在手数计算中考虑到它,我做了,但没有把....(我是指计算手数的功能),最后一个功能是需要简单检查特定平台上的所有交易(找到有上述参数不同的交易)...没有其他

我并不声称自己是最终的权威...总是乐于接受健康的冲突

我是为自己写的,但为了使我的想法可行,我了解文件功能,但这不是这个主题的问题。

 

同事们,一个离题的问题,请大家给个提示,并转到一个资源。

如何找出非交易货币对的价值。

我想解释一下,有一些平台(同样是Alpari),美元卢布在夜间不交易,我想计算这个区间,当禁止交易 时,我将感谢你的帮助,我将分享结果。

 
gochu:

同事们,一个离题的问题,请大家给个提示,并转到一个资源。

如何找出非交易货币对的价值。

我想解释一下,有一些平台(同样是Alpari),美元卢布在夜间不交易,我想计算这个区间,当禁止交易时,我将感谢你的帮助,我将分享结果。


这与平台有什么关系...他真的不在晚上讨价还价......大家都在睡觉...:-)))