错误、漏洞、问题 - 页 446 1...439440441442443444445446447448449450451452453...3184 新评论 [删除] 2011.07.06 08:34 #4451 voix_kas:错误代码。4756.你可以在截图 中看到它。1.我再次重复我的问题--应该有选择地交易的符号列表(即对所有要交易的符号多执行SymbolSelect命令,第二个参数为true)?我建议在初始化块中选择所有SymbolSelect需要的符号,并在此修改后检查这个错误。2. 对开发商 而言。a) 为什么终端符号列表要明确包括那些没有被SymbolSelect选中的符号(假设除了收集一些信息外,没有对它们进行任何操作)?b) 你不觉得像SymbolsTotal(false)和SymbolName(index,false)这样看似无害的东西会导致在可视化窗口中明确显示符号。根据我的理解,它应该是这样的 - 无符号在MarketWatch显示的符号中不选择任何符号。c) 据我所知,在测试器中,环境应该下载所有被查询的符号,并且只显示那些在SymbolSelect中被选中的符号,或者用户试图获得价格或任何其他相关信息的符号。例如,如果我想确定一个符号是否同步或它在服务器上的历史有多深,为什么要立即把它放在MarketWatch中,并加上选择符号? Victor Kirillin 2011.07.06 08:47 #4452 voix_kas:那我怎样才能在你指出的地方捕捉到错误代码 呢?我在上述代码的最后一行注册了错误。如果在这段代码之前加入以下术语,就不会出现这个错误。比如说像这样。double price=SymbolInfoDouble(Instrumet, SYMBOL_ASK); if(price==0.0) { Print("Ай-яй-яй. Ошибка ",GetLastError()); return(false); } TradeRequest.price = price; Renat Fatkhullin 2011.07.06 08:57 #4453 Interesting: 2. 向开发者 提出的问题是--为什么那些没有用SymbolSelect选择的符号(假设除了收集某些信息外没有对它们进行任何操作)会以明确的形式进入终端符号列表(你可以在上面的截图中看到)?MT5测试器使用非常精确的模拟交易条件,包括最精确地将利润转换为平衡货币。 这意味着,在处理交叉盘时,我们必须模拟基础货币 对来重新计算利润。也就是说,在一些仪器上工作时(十字架),有双倍的建模量,所以在任何一秒钟,计算都是绝对准确和可重复的。 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5 [删除] 2011.07.06 11:13 #4454 有趣的,当然。这个代码在所有后续行动之前。if (SymbolInfoInteger(Instrumet, SYMBOL_SELECT) || SymbolSelect(Instrumet, true)) { ... }如果不符合条件,则不对该工具进行进一步的操作。关于初始化期间的"SymbolSelect"...所以你认为第一个调用( SymbolSelect(Instrumet,true))并没有加载工具?只是,我首先要经过存在的符号(初始化)。然后在OnTick|OnTimer中,如果之前没有选择仪器,我就明确选择。UncleVic谢谢你。这就是我处理这个错误的方法。 如果可以,请解释一下是什么原因导致出现空价?而且它能在现实生活中发生吗(即在实时模式下,不仅仅是在测试期间)? [删除] 2011.07.06 11:59 #4455 voix_kas:有趣的,当然。这个代码在所有后续行动之前。如果不符合条件,则不对该工具进行进一步的操作。关于初始化期间的 "SymbolSelect"...所以你认为第一个调用( SymbolSelect(Instrumet,true))并没有加载工具?只是,我首先要经过存在的符号(初始化)。然后在OnTick|OnTimer中,如果该工具之前没有被选中,我就进行显式选择。这很奇怪,要么是我不明白什么,要么是某个地方有一些代码没有按照我期望的方式工作。据我所知,SymbolSelect 只需在初始化块中使用一次就够了(最好是检查结果)。在我的测试器中,我只是 从一个预先准备好的数组中形成 MarketWatch,像这样 //Forming list of symbols for(int f=0;f<ArraySize(ArrSymbolsEA);f++) { SymbolSelect(ArrSymbolsEA[f],true); } 通常情况下,在策略测试器中使所有符号都可用于交易就足够了。然而,在这种情况下,如果在日志中找不到一个符号,你会得到一个类似这样的错误2011.07.06 18:47:57 symbol NZDUSD does not exist 如果一切工作正常,测试器窗口应该是这样的 Victor Kirillin 2011.07.06 12:07 #4456 voix_kas:谢谢你。这正是我现在绕过这个错误的方法。 如果你能解释一下是什么原因导致了零价格的发生?而且这种情况会在现实生活中发生吗(阅读,在 "实时 "模式下,而不仅仅是在测试期间)?错误代码 是什么? Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений www.mql5.com Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5 [删除] 2011.07.06 12:09 #4457 致开发者我本来想用SD写的,但改变了主意。 请添加bool SymbolExists(name)/bool SymbolIsExists(name)函数目的 - 确定是否在服务器上找到指定的符号。在成功的情况下返回真。只有这样,该符号才不会显示在MarketWatch中(原理与SymbolIsSynchronized 相同)。所有这一切将使我们能够摆脱这些麻烦。2011.07.06 18:47:57 symbol NZDUSD does not exist [删除] 2011.07.06 13:03 #4458 uncleVic:错误代码 是什么?就策略测试器显示,同时产生了两个错误。只有最后一个可以被拦截。 我怎么知道呢?我给出了上面的代码。我应该把错误代码信息放在哪里? [删除] 2011.07.06 13:08 #4459 Interesting:这很奇怪,要么是我不明白什么,要么是某个地方的代码没有按照我的想法工作。...如果一切按预期工作,测试器窗口应该是这样的请从2011.01.03 00:00:00开始用你的多币种运行测试器。到2011.01.03 00:59:59 为止,只有3种货币对可用(在市场观察中显示,你可以在截图上看到)。从2011.01.0301:00:00开始--一切正常。P.S.我们谈论的是MQ模拟账户(准备参加锦标赛)。 [删除] 2011.07.06 17:18 #4460 voix_kas:请从2011.01.03 00:00:00开始用你的多币种运行测试器。在2011.01.03 00:59:59 之前,我只有3种货币对可用(在marketwatch中显示,你可以在截图中看到)。从2011.01.0301:00:00开始--一切正常。P.S.我们谈论的是MQ模拟账户(准备参加锦标赛)。 符号的历史是同步的吗? 1...439440441442443444445446447448449450451452453...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
错误代码。4756.你可以在截图 中看到它。
1.我再次重复我的问题--应该有选择地交易的符号列表(即对所有要交易的符号多执行SymbolSelect命令,第二个参数为true)?
我建议在初始化块中选择所有SymbolSelect需要的符号,并在此修改后检查这个错误。
2. 对开发商 而言。
a) 为什么终端符号列表要明确包括那些没有被SymbolSelect选中的符号(假设除了收集一些信息外,没有对它们进行任何操作)?
b) 你不觉得像SymbolsTotal(false)和SymbolName(index,false)这样看似无害的东西会导致在可视化窗口中明确显示符号。
根据我的理解,它应该是这样的 - 无符号在MarketWatch显示的符号中不选择任何符号。
c) 据我所知,在测试器中,环境应该下载所有被查询的符号,并且只显示那些在SymbolSelect中被选中的符号,或者用户试图获得价格或任何其他相关信息的符号。
例如,如果我想确定一个符号是否同步或它在服务器上的历史有多深,为什么要立即把它放在MarketWatch中,并加上选择符号?
那我怎样才能在你指出的地方捕捉到错误代码 呢?我在上述代码的最后一行注册了错误。
如果在这段代码之前加入以下术语,就不会出现这个错误。
比如说像这样。
2. 向开发者 提出的问题是--为什么那些没有用SymbolSelect选择的符号(假设除了收集某些信息外没有对它们进行任何操作)会以明确的形式进入终端符号列表(你可以在上面的截图中看到)?
MT5测试器使用非常精确的模拟交易条件,包括最精确地将利润转换为平衡货币。
这意味着,在处理交叉盘时,我们必须模拟基础货币 对来重新计算利润。也就是说,在一些仪器上工作时(十字架),有双倍的建模量,所以在任何一秒钟,计算都是绝对准确和可重复的。
有趣的
,当然。这个代码在所有后续行动之前。
如果不符合条件,则不对该工具进行进一步的操作。
关于初始化期间的"SymbolSelect"...所以你认为第一个调用( SymbolSelect(Instrumet,true))并没有加载工具?
只是,我首先要经过存在的符号(初始化)。然后在OnTick|OnTimer中,如果之前没有选择仪器,我就明确选择。
UncleVic
谢谢你。这就是我处理这个错误的方法。
如果可以,请解释一下是什么原因导致出现空价?而且它能在现实生活中发生吗(即在实时模式下,不仅仅是在测试期间)?
有趣的
,当然。这个代码在所有后续行动之前。
如果不符合条件,则不对该工具进行进一步的操作。
关于初始化期间的 "SymbolSelect"...所以你认为第一个调用( SymbolSelect(Instrumet,true))并没有加载工具?
只是,我首先要经过存在的符号(初始化)。然后在OnTick|OnTimer中,如果该工具之前没有被选中,我就进行显式选择。
这很奇怪,要么是我不明白什么,要么是某个地方有一些代码没有按照我期望的方式工作。
据我所知,SymbolSelect 只需在初始化块中使用一次就够了(最好是检查结果)。
在我的测试器中,我只是 从一个预先准备好的数组中形成 MarketWatch,像这样
通常情况下,在策略测试器中使所有符号都可用于交易就足够了。
然而,在这种情况下,如果在日志中找不到一个符号,你会得到一个类似这样的错误
如果一切工作正常,测试器窗口应该是这样的
谢谢你。这正是我现在绕过这个错误的方法。
如果你能解释一下是什么原因导致了零价格的发生?而且这种情况会在现实生活中发生吗(阅读,在 "实时 "模式下,而不仅仅是在测试期间)?
致开发者
我本来想用SD写的,但改变了主意。 请添加bool SymbolExists(name)/bool SymbolIsExists(name)函数
目的 - 确定是否在服务器上找到指定的符号。在成功的情况下返回真。
只有这样,该符号才不会显示在MarketWatch中(原理与SymbolIsSynchronized 相同)。
所有这一切将使我们能够摆脱这些麻烦。
错误代码 是什么?
就策略测试器显示,同时产生了两个错误。只有最后一个可以被拦截。
我怎么知道呢?我给出了上面的代码。我应该把错误代码信息放在哪里?
这很奇怪,要么是我不明白什么,要么是某个地方的代码没有按照我的想法工作。
...
如果一切按预期工作,测试器窗口应该是这样的
请从2011.01.03 00:00:00开始用你的多币种运行测试器。
到2011.01.03 00:59:59 为止,只有3种货币对可用(在市场观察中显示,你可以在截图上看到)。从2011.01.0301:00:00开始--一切正常。
P.S.
我们谈论的是MQ模拟账户(准备参加锦标赛)。
请从2011.01.03 00:00:00开始用你的多币种运行测试器。
在2011.01.03 00:59:59 之前,我只有3种货币对可用(在marketwatch中显示,你可以在截图中看到)。从2011.01.0301:00:00开始--一切正常。
P.S.
我们谈论的是MQ模拟账户(准备参加锦标赛)。