错误、漏洞、问题 - 页 2053

 

为什么编译器会跳过这一点?(MT4/MT5)。

double x=1;
double a=1/(x*0);

只有在运行时才 会出现除以0的情况。

 
Kirill Belousov:

为什么编译器会跳过这一点?(MT4/MT5)。

只有在运行时才 会出现除以0的情况。

可能是因为编译器并不计算这个值,它只是把程序代码翻译成机器代码。

 
信号排名情况如何?

我要么在最后一名,要么在中间。
 

MT5中的江恩网格 有什么问题?不能沿Y轴移动控制线的两端?

 
策略测试器中,当代码以注释的形式对实例变量进行自动替换时,那么在优化设置中超,但优化后真正的变量名称在表中。这很让人困惑--你必须一直查看代码。
 

亲爱的行政部门。

MT5策略测试器报告1653中的错误

经纪人ActiveTrades

我的专家顾问首先开仓,然后修改止损(SYMBOL_TRADE_EXECUTION_MARKET)。

这在日志中会正常显示。

但在保存报告时!报告中没有任何停顿。

SYMBOL_FILLING_MODE=3 SYMBOL_TRADE_EXEMODE=2 SYMBOL_EXPIRATION_MODE=7 SYMBOL_TRADE_MODE=4 SYMBOL_TRADE_STOPS_LEVEL=0 SYMBOL_TRADE_FREEZE_LEVEL=0 SYMBOL_ORDER_MODE=127 SYMBOL_START_TIME=0 SYMBOL_EXPIRATION_TIME=0 SYMBOL_SPREAD=5 SYMBOL_SESSION_DEALS=0
IE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   market buy 0.01 EURUSD (1.18278 / 1.18283 / 1.18278)
JP      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal #2  buy 0.01 EURUSD at 1.18283 done (based on order #2)
 OH      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal performed [#2  buy 0.01 EURUSD at 1.18283]
LN      0       09:43:35.667    Core 1  2017.08.01 02:10:00   order performed buy 0.01 at 1.18283 [#2  buy 0.01 EURUSD at 1.18283]
EQ      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify  2 POSITION_TYPE=0 stoploss=1.17678 takeprofit=0.0 request.sl=1.17678 request.tp=0.0 POSITION_SL=0.0 POSITION_TP=0.0 SYMBOL_BID=1.18278 SYMBOL_ASK=1.18283 stops_level=0
OR      0       09:43:35.667    Core 1  2017.08.01 02:10:00   position modified [#2  buy 0.01 EURUSD 1.18283 sl: 1.17678]
DE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed
CL      0       09:43:35.667    Core 1  2017.08.01 02:10:00   Result = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed


止损和止盈字段为空。


这只发生在SYMBOL_TRADE_EXECUTION_MARKET。

尽管当我通过止损关闭时,一切都设置得很正确...

 
Alexey Viktorov:

可能是因为编译器并不计算这个值,它只是把程序代码翻译成机器代码。

如果分母是一个常数,例如x/(5*0),那么在编译时就会检测到这个错误。

也就是说,编译器不只是翻译代码,它还进行计算。

在我看来,编译器应该检测到这样一种情况:分母是一个乘积,其中一个项是0(常数),那么编译器应该产生一个除以0的错误。

 
当文件大小超过INT_MAX 字节时,FileReadArray()不读取数据阵列。
 
Roffild:
当文件大小超过INT_MAX 字节时,FileReadArray()不读取数据阵列。

它不是一个FileReadArray,它是一个不能大于该大小 的数组。这不是一个错误,这是设计的结果。

 
Kirill Belousov:

如果分母是一个常数,例如x/(5*0),那么在编译时就会检测到这个错误。

也就是说,编译器不只是翻译代码,它还进行计算。

在我看来,编译器应该检测到这样一种情况:分母是一个乘积,其中一个项是0(常数),那么编译器应该产生一个除以0的错误。

你知道有什么语言和它的编译器可以捕捉这种错误吗?