错误、漏洞、问题 - 页 725

 
Snaf: 我自己发现了第一个脚本中的错误,但我没有足够的大脑来处理第二个 脚本。

图片630

这个例子是使用MQL5编译器的新版本编写的。我们为没有考虑到这一点而感到抱歉。但它很快就会出来。 请等待一下,一切都会被编译。
 
MetaDriver: 是的,我也是在字符串处理方面搞砸了。 我的函数曾经从其他函数返回的块中组合出一个长字符串(OpenCL程序生成)。在调试器中,它就像时钟一样--构建崩溃并显示 "Acces Violation"...。;)

我正准备写信给服务台,但不知从哪里来的灵感,它竟然起作用了。:) 我无法再重现它(尽管我试图诚实地去做),那么我为什么要把它送到服务台?

是的,CLProgramCreate()有一个明显的问题。我特别追踪了脚本中第一个执行故障的位置,它就在这个函数中。该函数不返回一个值。

以字符串形式出现的CL-程序似乎被正确地复制了。但CL程序本身并没有被创建。

 
在对交叉盘进行测试时,对其他汇率也有准确的模拟,以便正确转换利润和保证金要求。

试着运行可视化,你会立即明白基于市场观察中的背景字符数量的计算量。
 
请告诉我如何合并我的笔记本电脑和PC,在测试策略时,电脑通过路由器工作,一个通过电缆,另一个通过Wi-Fi,试图在台式电脑上创建文件mt5,我扔到笔记本电脑上,添加到远程部分,但代理商的名称与笔记本电脑上相同
 

从帖子https://www.mql5.com/ru/forum/1111/page736#comment_185306

将问题定位到点。

- 关于CFastFile::ReadInteger类中的函数

事实证明,在630/64中,无论是结构赋值,还是从数组读入数组,都被搞砸了,尽管最糟糕的变化似乎是将有符号(short/int/char)转换为无符号(ushort/uint/uchar)。

某处有额外的比特或偏移。结果是,程序员读到的数字与预期的完全不同。这将使你更容易整理,并在功能上反复检查。

但它在4台电脑上以同样的代码稳定地工作(代码很大,我不能拉长情节)。

 
lazarev-d-m:
请告诉我如何合并我的笔记本电脑和PC,在测试策略时,电脑通过路由器工作,一个通过电缆,另一个通过Wi-Fi,试图在台式电脑上创建一个文件mt5,把它扔到笔记本电脑上,添加到远程部分,但代理商的名称与笔记本电脑上的相同。
这是不是不工作?客户端/ 策略测试员/ 代理商
 
Yedelkin:
它不像这样工作?客户端/ 策略测试员 /代理商
我一定是做错了什么,现在我再次创建了mt5文件,现在笔记本看到了PC处理器,但在测试中没有任何进展,这可能是什么问题,如果我不在PC上使用笔记本处理器,是否有必要将其添加到PC测试器?
 

开发人员,你用这个错误赢得了我!正如他们所说,"我在哭"。

来自CFastFile( ::ReadInteger)的函数

        uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY) { int r=ArrayCopy(dst, m_data, dst_start, m_pos, cnt); if (r>0) m_pos+=r; return(r); }
        ushort ReadShort() { __2 b={0}; __short d={0}; ReadArray(b.v, 0, 2); d=b; return(d.v); }
        uint ReadInteger(int sz=INT_VALUE)
        {
                if (sz==SHORT_VALUE) { ushort s=ReadShort(); return(s); }
                return(ReadInt());
        }


读取SHORT_VALUE时,它的返回值是无意义的。


我开始挖掘,思考从数组中读取数据的不同选项。

结果发现,如果不把ushort s=ReadShort()放在函数ReadShort本身的主体上,所有的数字都能正常读取。

但后来我发现一个变体,真的让我哭了

        uint ReadInteger(int sz=INT_VALUE)
        {
                if (sz==SHORT_VALUE) { ushort s=ReadShort(); if (s==426) Print(s); return(s); }
                return(ReadInt());
        }

也就是说,Print函数 神奇地将一个错误的数字s转化为一个正确的数字,并返回正确的值。


亲爱的开发者们,请你们清醒地认识到这一点吧!

你将如何补偿因你自己对产品的态度而在市场 上造成的损失?

毕竟,MT5只是一个巨大的消费资源,它由第三方程序员提供服务

而你却用你的疏忽行为质疑他们的能力和他们项目的质量!

 
sergeev:

开发人员,你用这个错误赢得了我!正如他们所说,"我在哭"。

来自CFastFile( ::ReadInteger)的函数

等等,但这是你的CFastFile 类的代码,不是吗?平台开发者与此有什么关系?

//+------------------------------------------------------------------+
//|                                                         FastFile |
//|                                            Copyright © 2006-2012 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006-2012"
#property version "1.00"
#property library
 
Renat:

等等,但这是你的CFastFile 类的代码,不是吗?平台开发者与此有什么关系?



是的,雷纳特,这是我的代码。

它在以前的版本中是有效的。但它在目前的630/64中停止工作。

而且它在630/32中继续成功工作。


我发现的这个错误相当奇怪,坦率地说,令人恐惧。