初学者的问题 MQL4 MT4 MetaTrader 4 - 页 102 1...9596979899100101102103104105106107108109...260 新评论 Mikhail Tkachev 2017.11.05 08:24 #1011 STARIJ:纵轴上的价格从下到上,横轴上的时间和条形图的编号在右边。零条是当前可用的最后一条杠。以下是历史上存在的酒吧,但对测试者来说是不可用的。后来,当这个小节算完后,测试者将进入下一个小节,这个小节对他来说将成为零。所以,我的理解是正确的,一旦下一栏的开盘价出现在测试器中,它就会变成null[0]。而如果该指标的制作方式是在当前[0]条之前的500条计算,这意味着测试者将在当前[0]条之前的~2年(500条D1条)计算该指标...这就提出了以下问题。现在,该指标是基于Start()事件处理的--古老的版本。正如你所感受到的,在测试过程中,在每次调用iCustom()时,指标都是按前500条计算的,1600次测试者的运行是计算了一个半小时。 我们可以在OnCalculate()事件处理上建立指标,这样可以在下一次OnCalculate()之前只计算未计算的条形图--但也可以在当前时间的真实数据流中进行--正如我从MQL4参考资料中了解的那样。 在测试器中,它将减少每次调用iCustom()时的计算条数? Nikolay Ivanov 2017.11.05 13:55 #1012 MikeZv: 所以我的理解是正确的,一旦开放的下一个条形价格出现在测试器中--它就会变成null[0]。如果该指标是在当前[0]条之前的500条开始计算的,这意味着测试者将在当前[0]条之前计算该指标约2年(500条D1)。这就提出了以下问题。现在,该指标是基于Start()事件处理的--古老的版本。正如你所感受到的,在测试过程中,在每次调用iCustom()时,指标都是按前500条计算的,1600次测试者的运行是计算了一个半小时。 我们可以在OnCalculate()事件处理上建立指标,这样可以在下一次OnCalculate()之前只计算未计算的条形图--但也可以在当前时间的真实数据流中进行--正如我从MQL4参考资料中了解的那样。 在测试器中,它将减少每次调用iCustom()时的计算条数?指标只是写歪了,所以很慢,我需要一个专业的重写,然后它就能读懂整个历史,而且非常快......就是这样...... Mikhail Tkachev 2017.11.05 16:24 #1013 Nikolay Ivanov:指标就是写得歪歪扭扭的,所以很慢,你需要一个专业的改写,然后就能读懂整个故事,而且非常快......就是这样......已经改写了...:) Mikhail Tkachev 2017.11.07 11:50 #1014 在旧指标[onCalculate()]的基础上写了新指标[ on Start()],提出了上述问题。 我运行了一个脚本,将它们相互比较了5年(期间D1)--一比一,所有的值都吻合。 我已经将同样的ICustom()复制到Expert Advisor中,并在测试Expert Advisor 时将其输出到一个文件中。 旧的指标值显示与脚本中一样,新的指标值都是不同的!!。 为什么专家顾问中的iCustom()在Start()上输出的指标值与脚本中的相同,,但对于OnCalculate()上的指标,专家顾问中的输出却与脚本中的输出不同? Artyom Kuraev 2017.11.07 11:52 #1015 大家好。 伙计们,你们能告诉我谁遇到过这种情况吗? 一些二元期权经纪商,例如Grand Capital,不是通过交易的利润来累积收入并从账户中扣除,而是作为账户余额的收入。 关于如何找出交易的结果,我有几个备选的工作方案,但最正确的方案仍然是阅读资产负债表的价值和收益/亏损的金额。因此,问题是--如何才能做到 "当下",但在整个交易历史中做到这一点?也就是说,我对一些(包含在MQL4中的)函数感兴趣,这些函数会查看所有的余额类型记录,并读取注释和值本身。这是我在几年的编程生涯中第一次面临这样的任务。 Artyom Kuraev 2017.11.07 12:03 #1016 MikeZv:我在旧指标[Start()]的基础上写了一个新指标[OnCalculate()],这个问题是上面提出的。 我运行脚本,将它们相互比较了5年(期间D1)--一对一,所有的值都重合。 我把同样的ICustom()复制到Expert Advisor中,并在测试Expert Advisor 时让它显示在一个文件中。 旧的指标值显示与脚本中一样,新的指标值都是不同的!!。 为什么专家顾问中的iCustom()在Start()上的指标会输出与脚本中相同的值? 对于OnCalculate()的指标,专家顾问中的输出与脚本中的输出不同?这可能需要很长的时间来猜测。 我会检查代码是否有错误的数据类型转换,变量名称的加倍(即在旧代码中使用的名称现在被保留了)--结果是变量没有得到它应该得到的值(首先,检查OnCalculate中使用的变量名称--开盘、高点、低点、收盘,等等。- 你可能会在旧代码中经常遇到它们)。 至于iCustom,它是最简单的变体,这里的错误很可能与错误传递的参数有关(同样,由于上面给出的原因)。 打印所有数值,或在调试模式下运行,检查哪里有差异。 Mikhail Tkachev 2017.11.07 12:09 #1017 Artyom Kuraev:这可能需要很长的时间来猜测。 我会检查代码是否有不正确的数据类型转换,重复的变量名称(即旧的代码使用现在被保留的名称)--结果是变量获取了它应该得到的错误的值(首先检查OnCalculate中使用的变量名称--开盘、高点、低点、收盘,等等。- 你可能会在旧代码中经常遇到它们)。 至于iCustom,它是最简单的变体,这里的错误很可能与错误传递的参数有关(同样,由于上述原因)。 打印所有数值,或在调试模式下运行,检查差异的去向。 脚本中两个指标的输出是相同的。专家与脚本中的iCustom()有合作关系的行。传递相同的参数。 Artyom Kuraev 2017.11.07 12:17 #1018 MikeZv: 专家从脚本中复制了带有iCustom()的行。传递相同的参数。它们被复制的事实可能导致错误。我只是提出了可能的原因和我将首先检查的内容。第二点,这可能是最明显的答案,就是指标本身的价格过高,当应用于历史时,会给出一个数值,而在策略测试器 模式下工作时,又会给出另一个数值。我曾经写过它, 你可以 从两张图片中 看到它 。我根本不坚持什么,我的回答将基于我的经验。如果你确定我建议的方案都不合适,那就等其他答案或者提供更多的背景信息吧 :) Taras Slobodyanik 2017.11.07 12:32 #1019 Artyom Kuraev:大家好。 伙计们,你们能告诉我谁遇到过这种情况吗? 一些二元期权经纪商,例如Grand Capital,不是通过交易的利润来收取收入并从账户中扣除,而是作为账户余额的收入。 关于如何找出交易的结果,我有几个备选的工作方案,但最正确的方案仍然是阅读资产负债表的价值和收益/亏损的金额。因此,问题是--如何才能做到 "当下",但在整个交易历史中做到这一点?也就是说,我对一些(包含在MQL4中的)函数感兴趣,这些函数会查看所有的余额类型记录,并读取注释和值本身。这是我在几年的编程生涯中第一次面临这样的任务。 #define OP_BALANCE 6 #define OP_CREDIT 7加号OrdersHistoryTotalStringFind(OrderComment(),txt,0) Artyom Kuraev 2017.11.07 12:34 #1020 Taras Slobodyanik: 加谢谢你! 这一切都成功了! 1...9596979899100101102103104105106107108109...260 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
纵轴上的价格从下到上,横轴上的时间和条形图的编号在右边。
零条是当前可用的最后一条杠。以下是历史上存在的酒吧,但对测试者来说是不可用的。后来,当这个小节算完后,测试者将进入下一个小节,这个小节对他来说将成为零。
所以,我的理解是正确的,一旦下一栏的开盘价出现在测试器中,它就会变成null[0]。而如果该指标的制作方式是在当前[0]条之前的500条计算,这意味着测试者将在当前[0]条之前的~2年(500条D1条)计算该指标...
这就提出了以下问题。
现在,该指标是基于Start()事件处理的--古老的版本。正如你所感受到的,在测试过程中,在每次调用iCustom()时,指标都是按前500条计算的,1600次测试者的运行是计算了一个半小时。
我们可以在OnCalculate()事件处理上建立指标,这样可以在下一次OnCalculate()之前只计算未计算的条形图--但也可以在当前时间的真实数据流中进行--正如我从MQL4参考资料中了解的那样。
在测试器中,它将减少每次调用iCustom()时的计算条数?
所以我的理解是正确的,一旦开放的下一个条形价格出现在测试器中--它就会变成null[0]。如果该指标是在当前[0]条之前的500条开始计算的,这意味着测试者将在当前[0]条之前计算该指标约2年(500条D1)。
这就提出了以下问题。
现在,该指标是基于Start()事件处理的--古老的版本。正如你所感受到的,在测试过程中,在每次调用iCustom()时,指标都是按前500条计算的,1600次测试者的运行是计算了一个半小时。
我们可以在OnCalculate()事件处理上建立指标,这样可以在下一次OnCalculate()之前只计算未计算的条形图--但也可以在当前时间的真实数据流中进行--正如我从MQL4参考资料中了解的那样。
在测试器中,它将减少每次调用iCustom()时的计算条数?
指标只是写歪了,所以很慢,我需要一个专业的重写,然后它就能读懂整个历史,而且非常快......就是这样......
指标就是写得歪歪扭扭的,所以很慢,你需要一个专业的改写,然后就能读懂整个故事,而且非常快......就是这样......
已经改写了...:)
在旧指标[onCalculate()]的基础上写了新指标[ on Start()],提出了上述问题。
我运行了一个脚本,将它们相互比较了5年(期间D1)--一比一,所有的值都吻合。
我已经将同样的ICustom()复制到Expert Advisor中,并在测试Expert Advisor 时将其输出到一个文件中。
旧的指标值显示与脚本中一样,新的指标值都是不同的!!。
为什么专家顾问中的iCustom()在Start()上输出的指标值与脚本中的相同,
,但对于OnCalculate()上的指标,专家顾问中的输出却与脚本中的输出不同?
大家好。
伙计们,你们能告诉我谁遇到过这种情况吗?
一些二元期权经纪商,例如Grand Capital,不是通过交易的利润来累积收入并从账户中扣除,而是作为账户余额的收入。
关于如何找出交易的结果,我有几个备选的工作方案,但最正确的方案仍然是阅读资产负债表的价值和收益/亏损的金额。
因此,问题是--如何才能做到 "当下",但在整个交易历史中做到这一点?也就是说,我对一些(包含在MQL4中的)函数感兴趣,这些函数会查看所有的余额类型记录,并读取注释和值本身。这是我在几年的编程生涯中第一次面临这样的任务。
我在旧指标[Start()]的基础上写了一个新指标[OnCalculate()],这个问题是上面提出的。
我运行脚本,将它们相互比较了5年(期间D1)--一对一,所有的值都重合。
我把同样的ICustom()复制到Expert Advisor中,并在测试Expert Advisor 时让它显示在一个文件中。
旧的指标值显示与脚本中一样,新的指标值都是不同的!!。
为什么专家顾问中的iCustom()在Start()上的指标会输出与脚本中相同的值?
对于OnCalculate()的指标,专家顾问中的输出与脚本中的输出不同?
这可能需要很长的时间来猜测。
我会检查代码是否有错误的数据类型转换,变量名称的加倍(即在旧代码中使用的名称现在被保留了)--结果是变量没有得到它应该得到的值(首先,检查OnCalculate中使用的变量名称--开盘、高点、低点、收盘,等等。- 你可能会在旧代码中经常遇到它们)。
打印所有数值,或在调试模式下运行,检查哪里有差异。至于iCustom,它是最简单的变体,这里的错误很可能与错误传递的参数有关(同样,由于上面给出的原因)。
这可能需要很长的时间来猜测。
我会检查代码是否有不正确的数据类型转换,重复的变量名称(即旧的代码使用现在被保留的名称)--结果是变量获取了它应该得到的错误的值(首先检查OnCalculate中使用的变量名称--开盘、高点、低点、收盘,等等。- 你可能会在旧代码中经常遇到它们)。
打印所有数值,或在调试模式下运行,检查差异的去向。至于iCustom,它是最简单的变体,这里的错误很可能与错误传递的参数有关(同样,由于上述原因)。
专家与脚本中的iCustom()有合作关系的行。传递相同的参数。
专家从脚本中复制了带有iCustom()的行。传递相同的参数。
它们被复制的事实可能导致错误。我只是提出了可能的原因和我将首先检查的内容。
第二点,这可能是最明显的答案,就是指标本身的价格过高,当应用于历史时,会给出一个数值,而在策略测试器 模式下工作时,又会给出另一个数值。我曾经写过它, 你可以 从两张图片中 看到它 。
我根本不坚持什么,我的回答将基于我的经验。如果你确定我建议的方案都不合适,那就等其他答案或者提供更多的背景信息吧 :)
大家好。
伙计们,你们能告诉我谁遇到过这种情况吗?
一些二元期权经纪商,例如Grand Capital,不是通过交易的利润来收取收入并从账户中扣除,而是作为账户余额的收入。
关于如何找出交易的结果,我有几个备选的工作方案,但最正确的方案仍然是阅读资产负债表的价值和收益/亏损的金额。
因此,问题是--如何才能做到 "当下",但在整个交易历史中做到这一点?也就是说,我对一些(包含在MQL4中的)函数感兴趣,这些函数会查看所有的余额类型记录,并读取注释和值本身。这是我在几年的编程生涯中第一次面临这样的任务。
加号
OrdersHistoryTotal
加
谢谢你!
这一切都成功了!