错误、漏洞、问题 - 页 934

 
uncleVic:
事情就是这样的。

非常感谢你们的帮助!一切都是简单而美好的 )

我最初尝试了Event map,但没有理解到最后,所以我决定自己重载OnEvent()...

P.S. 如果在终端附带的任何代码中,或者在其文档中,有一些使用事件映射(从ON_EVENT到ON_EXTERNAL_EVENT)的例子,那就更好了--理解它们会更容易。只有ON_EVENT的例子--Experts/Examples/Controls/ControlsDialog.mq5和Indicators/Examples/Panels/PanelDialog.mq5--至少我没有找到其他例子。而在网站上搜索,除了文章 中的几个字,并没有得到任何结果。

 
Rone:

非常感谢你们的帮助!一切都是简单而美好的 )

最初,我尝试了Event map,但没有完全理解它,因此我决定自己重载OnEvent()...

P.S. 如果在终端附带的任何代码中,或者在其文档中,有一些使用事件映射(从ON_EVENT到ON_EXTERNAL_EVENT)的例子,那就更好了--理解它们会更容易。只有ON_EVENT的例子--Experts/Examples/Controls/ControlsDialog.mq5和Indicators/Examples/Panels/PanelDialog.mq5--至少我没有找到其他例子。而在网站上搜索,除了文章 中的几个字,并没有得到任何结果。


1.请。请不要犹豫,与我联系。

2.要补充的是。

 
CTrade::OrderSend: 买入止损0.94 USDCHF at 0.93366 sl: 0.93016 tp: 0.94816 [无效量]

为什么我在USDCHF上收到错误的0.94手交易量

这是一个无效的交易量,还是我没有足够的钱来放置这个交易量?

 
Konstantin83:
CTrade::OrderSend: 买入止损0.94 USDCHF at 0.93366 sl: 0.93016 tp: 0.94816 [无效量]

为什么我在USDCHF上收到错误的0.94手交易量?

这是一个无效的交易量,还是我没有足够的钱来放置这个交易量?

在工具设置中,体积的步骤是什么?0.10或0.01手?如果是0.10,那么一切都正确 - 无效的体积
 
Renat:
工具设置中的音量步骤是什么?0.10或0.01手?如果是0.10,你是正确的--错误的体积

从metaquotes的演示服务器,你有0.01步。

签到



CSymbolInfo       Exp_Symbol_Info;              // symbol info object

...
double CBaseTrade::GetCorrectLot(double pLot)
 {
      double   dLot   = pLot;
      double   dLotMin   = Exp_Symbol_Info.LotsMin();
      double   dLotMax   = Exp_Symbol_Info.LotsMax();
      double   dLotStep  = Exp_Symbol_Info.LotsStep();
    
      dLot=dLotStep*NormalizeDouble(pLot/dLotStep, 0);
 
      if(dLot < dLotMin) dLot=dLotMin;
 
      if(dLot > dLotMax && dLotMax !=0) dLot=dLotMax;

 
  return(dLot);
 }

 

请将音量值打印 成4-8位数。

这里有一个明显的错误,就是没有四舍五入到第二位数。

dLot=dLotStep*NormalizeDouble(pLot/dLotStep, 0);
 
Renat:

请将音量值打印成4-8位数。

这里有一个明显的错误,就是没有四舍五入到第二位数。

是的,但为什么没有四舍五入?

比方说,手数步数是0.01

输入批次2.111

结果=0.01*NormalizeDouble(2.111/0.01)=0.01*NormalizeDouble(211.1)=0.01*211=2.11

或者有些经纪商的手数增量是0.25,你不能只是将结果四舍五入到第二个符号。

假设批量步长为0.25

进货批次2.3

结果=0.25*NormalizeDouble(2.3/0.25)=0.25*NormalizeDouble(9.2)=0.25*9=2.25


在测试器中没有问题。今天在演示中刚刚得到这个错误,有好几次。

CSymbolInfo 类的体积步长是否正常化?

 

请指教!

如何改变市场概览中货币对的背景颜色

或者完全去掉颜色!

提前感谢!

 
Konstantin83: 结果=0.01* NormalizeDouble(2.111/0.01)=0.01*NormalizeDouble(211.1)=0.01*211=2.11
0.01*NormalizeDouble(211.1)=0.01*211.***********=2.11*************,两个双数的乘积是一个非正常化的数字。
 
Konstantin83:

是的,但为什么不是圆形的呢?

因为最高规范化值的矩阵运算结果不是一个规范化的数字

这就是为什么它是一个错误的地方。

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5