int SocketTlsRead(int socket, uchar& buffer[], int buffer_maxlen);
int SocketTlsReadAvailable(int socket, uchar& buffer[], int buffer_maxlen);
int SocketRead(int socket, uchar& buffer[], int buffer_maxlen, uint timeout_ms);
bool SocketIsWritable(constint socket); // Return true if writing is possible, otherwise false.uintSocketIsReadable(constint socket); // Number of bytes that can be calculated. In case of an error, 0 is returned.bool SocketIsConnected(constint socket); // New function without description. May be, it returns true if connection is not closed.
是的,从OnInit开始的任何打印
谢谢你。有趣的是,如果我没有碰巧注意到它,怎么可能发现它呢......
ZS 我只想把它留给当地的代理商。在云端,你可以很容易地以这种方式对日志进行拼写。
谢谢你。有趣的是,如果我没有碰巧注意到它,怎么可能发现它呢......
ZS 我只想把它留给当地的代理商。在云端,你可以很容易地以这种方式对日志进行拼写。
当你运行遗传学时,你是否根据你的自定义标准进行优化?
根据提交的日志,OnTester在所有情况下都返回0
我通常根据我的标准进行优化,但在这里我也尝试了自定义的标准。其结果是一样的。
OnTester返回0,这就是为什么它在结果中返回0--这是可以理解的。问题是,为什么在一般运行(优化)时返回 "0",而在从 "零结果 "开始的单次运行中(参数相同)却返回正常结果、图表等?也就是说,有些东西在 "完全过冲 "中不工作,而遗传学却能正常工作。有什么其他想法/主意吗?
有什么其他想法/主意吗?
以这种方式拉动所有的优化通道的信息
关于交易、自动交易系统和策略测试的论坛
MT5。战略测试员。测试和优化结果的分歧。
fxsaber, 2017.08.22 11:06
在EA中插入这些行
和运行优化。然后运行一个不匹配的单次运行。
然后比较从优化和单次运行中保存的两份相应的运行报告。
对比两份报告的结果将很快揭示出原因。
我们的目标是尽可能地改进所做的事情,我要求开发者不要被可能的批评所冒犯。
1.我不明白为什么Socket读函数的 "接口 "有如此大的差异 中根本没有这样的参数(由独立函数SocketTimeouts设置)。
2.函数SocketIsReadable的 名字与它实际执行的任务无关。
事实上,SocketIsReadable类似于Ws2_32.dll中带有FIONREAD标志的ioctlsocket()函数。
3.如果服务器在数据传输后没有中断连接,用户如何在非加密连接上使用Socket*功能从服务器获得最小时间延迟的响应?
是的,就是这样做的。4.SocketIsReadable返回错误信息。
关掉互联网,执行上述代码。
因此,SocketIsReadable返回一个合理的值1。奇迹。
我设法描述了所有与Socket*有关的问题和难题的大约三分之一。
不幸的是,我需要大量的时间来检查、描述和重复检查一切......。(这样就不会有续集的事实了)
一般的印象是,要么一切都做得很匆忙,要么Socket*的功能被初级开发人员所掌握。
在任何情况下,目前的解决方案是非常粗糙的,涵盖了使用套接字的相当狭窄的方法。
我通常根据自己的标准进行优化,但在这里我也尝试了标准的标准。其结果是类似的。
OnTester返回0,这就是为什么结果中出现了0--这是可以理解的。问题是,为什么在一般运行(优化)时返回 "0",而在从 "零结果 "开始的单次运行中(参数相同)却返回正常结果、图表等?也就是说,有些东西在 "完全过冲 "中不工作,而遗传学却能正常工作。有什么其他想法/主意吗?
你能分享一个EA(ex5在私下)和优化条件吗?
我们想重现你提到的问题。
研究结束后,EA将被不可逆转地删除。
你能分享一下EA(ex5在私人信息中)和优化条件吗?
我们想重现你提到的问题。
研究结束后,EA将被不可逆转地删除。
你能分享一下EA(ex5在私人信息中)和优化条件吗?
我们想重现你提到的问题。
研究结束后,EA将被不可逆转地删除。
在私人信息中回复了。
在熟悉Socket*功能的框架内,出现了一些关于当前实现的问题。
我们的目标是尽可能地改进所做的事情,我要求开发者不要被可能的批评所冒犯。
1.我不明白为什么Socket读函数的 "接口 "有如此大的差异 中根本没有这样的参数(由独立函数SocketTimeouts设置)。
2.函数SocketIsReadable的 名字与它实际执行的任务无关。
事实上,SocketIsReadable类似于Ws2_32.dll中带有FIONREAD标志的ioctlsocket()函数。
3.如果服务器在数据传输后没有中断连接,用户如何在非加密连接上使用Socket*功能从服务器获得最小时间延迟的响应?
是的,就是这样做的。4.SocketIsReadable返回错误信息。
关掉互联网,执行上述代码。
因此,SocketIsReadable返回一个合理的值1。奇迹。
我设法描述了所有与Socket*有关的问题和难题的大约三分之一。
不幸的是,我需要大量的时间来检查、描述和重复检查一切......。(这样就不会有续集的事实了)
一般的印象是,要么一切都做得很匆忙,要么Socket*功能被初级开发人员所掌握。
在任何情况下,目前的解决方案是非常粗糙的,涵盖了使用套接字的相当狭窄的方法。
1.这是个接口。
TLS函数是辅助性的,以支持复杂的情况。设置SocketTimeouts没有问题--这些是最好用的。
2.它正确地履行其职能。
你一定没有意识到TCP连接中断检测的问题。要检测一个连接是否保证正确断开是相当困难的(以额外的调用为代价的资源密集)。所有的网络实施都存在这个问题。
我们对SocketIsReadible的实现足够聪明,并且有一个中断检测器。当它检测到一个干净的0字节时,它会做额外的工作来检查套接字是否完整。
因为它返回的是没有终止标志的字节数,所以它输出1个字节,这样后续/即将进行的SocketRead读取尝试通常会返回一个错误。
为什么这是对的?因为大部分的代码都是由程序员以这种方式写的。
操作的实际结果是在直接读取尝试中检查的。
3. 如果你不知道要读的数据的确切大小,它需要在实际读取之前做SocketIsReadible()。
SocketisReadible/SocketRead绑定使你能够不失去对程序执行流程的控制(最小化到几乎零损失的控制)。这就避免了飞入网络超时。
是的,多了几行代码,但你不会失去一毫秒的控制权(大致如此)。在没有网络数据的间隙,由你来决定做什么。
4. 在第二段中解释。
为了读和输出刺激而发出1,作为一个读错误。
你的结论是错误的。
这就是TCP/IP传输的本质,根本没有任何保证。当没有TCP信令部分时,你也可以在过滤器/防火墙上进入网络黑洞。原始超时和数据流控制允许你检测它们并自行终止连接。
我们已经给了网络功能一个原始/直接访问的接口,包括TLS的实现。如果你使用它们,你需要在安全/受控的SocketIsReadible/SocketRead处理程序中正确包装原始函数。
如果你想在不考虑细枝末节的情况下提出高级请求,有WebRequest 函数。所有的保护措施都内置在那里。