错误、漏洞、问题 - 页 106 1...99100101102103104105106107108109110111112113...3184 新评论 Sergey Gritsay 2010.08.22 19:22 #1051 Rosh:这可能是针对那些不在MarketWatch中的字符,正如它对SymbolName 所说的。 输出得到意外结果的符号名称,并与MarketWatch中的列表进行比较。 所有的符号都出现在MarketWatch中,特别是对于#AA类型的工具,它的返回值为零,我特别在脚本中加入了false。string symbol=SymbolName(i,false); 如果在MarketWatch窗口中没有符号,那么函数if(SymbolInfoTick(symbol,last_tick)) 返回错误4302,帮助中没有说明这个函数的成功操作,符号必须存在于MarketWatch窗口中。 [删除] 2010.08.22 19:42 #1052 sergey1294:......帮助中没有提到,为了成功使用该功能,该工具必须出现在MarketWatch窗口中。帮助真的需要有正常的例子和瓶颈的人员。PS另外,经常有这样的情况:在对语言进行修改后,基础上的一些EA停止工作(或产生编译错误)。 gumgum 2010.08.22 21:57 #1053 今天注意到...MT5(access.metatrader5.com:443)EURJPY,日线。 例如GBPJPY,日线:这里一切正常。 这里是欧元兑日元的截图,一个MT4 DC的日报。 差异是肉眼可见的....如何才能解决这个问题? [删除] 2010.08.23 00:09 #1054 Rosh:这可能是针对那些没有出现在MarketWatch中的符号,因为对于SymbolName 它说。 输出得到意外结果的符号名称,并与MarketWatch中的列表进行比较。对于不存在于MarketWatch中的符号,SymbolInfoTick()返回错误ERR_MARKET_SELECT_ERROR "符号未在MarketWatch中选择"(代码4302) 。在MarketWatch中,只有欧元兑美元和英镑兑美元被选中。一个基本的运行显示,SymbolInfoTick()对未选择的符号返回错误 ERR_MARKET_SELECT_ERROR。IS 0 1 (EURUSD,M15) 01:53:21 ************************************************ MF 0 1 (EURUSD,M15) 01:53:21 Инструмент - EURUSD RR 0 1 (EURUSD,M15) 01:53:21 Валюта депозита = USD RG 0 1 (EURUSD,M15) 01:53:21 Базовая валюта = EUR QM 0 1 (EURUSD,M15) 01:53:21 Валюта маржи = EUR CH 0 1 (EURUSD,M15) 01:53:21 Маржа для покупки = 1271.23 QG 0 1 (EURUSD,M15) 01:53:21 Маржа для продажи = 1271.05 CQ 0 1 (EURUSD,M15) 01:53:21 ************************************************ JQ 0 1 (EURUSD,M15) 01:53:21 Инструмент - GBPUSD HQ 0 1 (EURUSD,M15) 01:53:21 Валюта депозита = USD EH 0 1 (EURUSD,M15) 01:53:21 Базовая валюта = GBP RN 0 1 (EURUSD,M15) 01:53:21 Валюта маржи = GBP MI 0 1 (EURUSD,M15) 01:53:21 Маржа для покупки = 1553.53 DP 0 1 (EURUSD,M15) 01:53:21 Маржа для продажи = 1553.25 MG 0 1 (EURUSD,M15) 01:53:21 ************************************************ LR 0 1 (EURUSD,M15) 01:53:21 Инструмент - USDCHF NG 0 1 (EURUSD,M15) 01:53:21 Валюта депозита = USD NJ 0 1 (EURUSD,M15) 01:53:21 Базовая валюта = USD EQ 0 1 (EURUSD,M15) 01:53:21 Валюта маржи = USD RI 0 1 (EURUSD,M15) 01:53:21 SymbolInfoTick() failed, error = 4302 GL 0 1 (EURUSD,M15) 01:53:21 ************************************************ PE 0 1 (EURUSD,M15) 01:53:21 Инструмент - USDJPY DL 0 1 (EURUSD,M15) 01:53:21 Валюта депозита = USD DF 0 1 (EURUSD,M15) 01:53:21 Базовая валюта = USD OL 0 1 (EURUSD,M15) 01:53:21 Валюта маржи = USD HL 0 1 (EURUSD,M15) 01:53:21 SymbolInfoTick() failed, error = 4302 QH 0 1 (EURUSD,M15) 01:53:21 ************************************************ ...顺便说一下, sergey1294的日志中的最后一个数据块与其他数据块不同:首先,SymbolInfoTick()这次返回了相同的错误代码,其次,--你不觉得这个数据块中的工具、基础货币和保证金货币的名字有些奇怪吗?这是一个错误吗?你有没有注意到这种奇怪的现象?CE 0 OrderCalcMargin (EURUSD,M1) 20:44:27 ************************************************ IG 0 OrderCalcMargin (EURUSD,M1) 20:44:27 Инструмент - LS 0 OrderCalcMargin (EURUSD,M1) 20:44:27 Валюта депозита = USD DD 0 OrderCalcMargin (EURUSD,M1) 20:44:27 Базовая валюта = CL 0 OrderCalcMargin (EURUSD,M1) 20:44:27 Валюта маржи = RG 0 OrderCalcMargin (EURUSD,M1) 20:44:27 SymbolInfoTick() failed, error = 4302 Sergey Gritsay 2010.08.23 00:35 #1055 至于最后一个数据块,这只是循环中的一个小故障,在最后一个数据查询中,它访问了一个不存在的工具,所以除了存款货币 外,所有字段都是空的。 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5 [删除] 2010.08.23 00:57 #1056 sergey1294: 至于最后一个数据块,只是蛮力循环有点闪失,在最后一个数据查询中访问了一个不存在的符号,所以除了存款货币 外,所有字段都是空的。 这是怎么回事呢?我的意思是,该日志不是来自所给的代码版本?从代码上看,那里一切正常。或者SymbolsTotal()返回一个值,但在脚本运行过程中,在循环中间的某个地方,由于一个可怕的意外,经纪人,设置服务器部分,从可用的符号中删除了一个符号,SymbolsTotal() - 如果脚本要求它 - 将返回一个新的值,少一个,但是,由于循环结束条件是基于存储在Total变量中的旧值,那么在最后迭代时,相应的函数在访问现在不存在的符号时返回空行?:)到目前为止,只有这种情况出现了,才会发生这种情况。:) Sergey Gritsay 2010.08.23 04:13 #1057 我不知道它是如何发生的,但它还没有发生 Yedelkin 2010.08.23 07:51 #1058 simpleton: ... 然后,计算值被明确转换为ulong。确切地说,是对ulong,因为可以保证 要投出的值是非负的。 在被投到一个整数类型时,实数类型的小数部分被丢弃。这不是四舍五入,而恰恰是抛开小数部分,保证最大手数的价值不 增加,这是自由保证金允许的。这正是我们需要的。傻瓜,我也是这么做的,但是用了显式转换为int类型。我假设最大可能的手数将受到经纪人/交易商的限制,或者受到我自己资金规模的 限制。因此,使用int应该是足够的。你认为这种方法有什么隐患吗(用int "从下往上 "取整)? [删除] 2010.08.23 20:23 #1059 开发人员。我如何使参数出现在脚本中(我太懒了,不能为新的条件不断改变代码)...? gumgum 2010.08.23 20:26 #1060 Interesting:开发人员。我如何使参数出现在脚本中(我太懒了,不能为新的条件不断改变代码)...?#property script_show_inputs 1...99100101102103104105106107108109110111112113...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这可能是针对那些不在MarketWatch中的字符,正如它对SymbolName 所说的。
输出得到意外结果的符号名称,并与MarketWatch中的列表进行比较。......帮助中没有提到,为了成功使用该功能,该工具必须出现在MarketWatch窗口中。
帮助真的需要有正常的例子和瓶颈的人员。
PS
另外,经常有这样的情况:在对语言进行修改后,基础上的一些EA停止工作(或产生编译错误)。
今天注意到...MT5(access.metatrader5.com:443)
EURJPY,日线。
例如GBPJPY,日线:这里一切正常。
这里是欧元兑日元的截图,一个MT4 DC的日报。
差异是肉眼可见的....
如何才能解决这个问题?
这可能是针对那些没有出现在MarketWatch中的符号,因为对于SymbolName 它说。
输出得到意外结果的符号名称,并与MarketWatch中的列表进行比较。对于不存在于MarketWatch中的符号,SymbolInfoTick()返回错误ERR_MARKET_SELECT_ERROR "符号未在MarketWatch中选择"(代码4302) 。在MarketWatch中,只有欧元兑美元和英镑兑美元被选中。一个基本的运行显示,SymbolInfoTick()对未选择的符号返回错误 ERR_MARKET_SELECT_ERROR。
顺便说一下, sergey1294的日志中的最后一个数据块与其他数据块不同:首先,SymbolInfoTick()这次返回了相同的错误代码,其次,--你不觉得这个数据块中的工具、基础货币和保证金货币的名字有些奇怪吗?
这是一个错误吗?你有没有注意到这种奇怪的现象?
至于最后一个数据块,只是蛮力循环有点闪失,在最后一个数据查询中访问了一个不存在的符号,所以除了存款货币 外,所有字段都是空的。
这是怎么回事呢?我的意思是,该日志不是来自所给的代码版本?
从代码上看,那里一切正常。
或者SymbolsTotal()返回一个值,但在脚本运行过程中,在循环中间的某个地方,由于一个可怕的意外,经纪人,设置服务器部分,从可用的符号中删除了一个符号,SymbolsTotal() - 如果脚本要求它 - 将返回一个新的值,少一个,但是,由于循环结束条件是基于存储在Total变量中的旧值,那么在最后迭代时,相应的函数在访问现在不存在的符号时返回空行?:)
到目前为止,只有这种情况出现了,才会发生这种情况。:)
... 然后,计算值被明确转换为ulong。确切地说,是对ulong,因为可以保证 要投出的值是非负的。
在被投到一个整数类型时,实数类型的小数部分被丢弃。这不是四舍五入,而恰恰是抛开小数部分,保证最大手数的价值不 增加,这是自由保证金允许的。这正是我们需要的。
开发人员。
我如何使参数出现在脚本中(我太懒了,不能为新的条件不断改变代码)...?
开发人员。
我如何使参数出现在脚本中(我太懒了,不能为新的条件不断改变代码)...?
#property script_show_inputs