[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 404 1...397398399400401402403404405406407408409410411...432 新评论 Vadim Zhunko 2013.06.08 02:11 #4031 hoz: 1.那么,如果新的数据到来,这就是我们需要的,不是吗? 2.嗯,是的,我们需要从第0条开始的数据,当然了。MarketInfo()从零条上提取数据,仅此而已。那么为什么要把它与其他东西进行比较呢?3.即使历史上有漏洞,也不会影响目前的计算。在洞口存在的时候,它就会产生影响。也就是说,如果我们获得了当前的Ask,我们并不真正关心几个柱子前的价格(我的意思不是正式的,而是关于某个市场变量的当前时刻,因为函数RefreshRates()将对第0个柱子上的当前时刻进行处理!)。当然,我挖得很深,但我想了解如何做得更好。4.你,瓦迪姆,告诉我,我在上面写的函数是不正确的。double fGet_TradePrice(int fi_price, // Цена: 0 - Bid; 1 - Ask string fs_symbol) // валютная пара { double ld_price = 0.0; switch (fi_price) { case 0: { if (fs_symbol == Symbol()) { RefreshRates(); // Зачем этот тормоз без обработки возвращаемого значения? ld_price = Bid; } else ld_price = MarketInfo(fs_symbol, MODE_BID); // <-- Этого достаточно. } case 1: { if (fs_symbol == Symbol()) { RefreshRates(); // Зачем этот тормоз без обработки возвращаемого значения? ld_price = Ask; } else ld_price = MarketInfo(fs_symbol, MODE_ASK); // <-- Этого достаточно. } } if (ld_price != 0) return(ld_price); // Некорректно! Что функция будет возвращать, если цена равна нулю? } 在你看来,它有什么问题? 1.如果没有数据,但我们对它一无所知?它返回FALSE。应该如何评价?没有数据或出现错误,还是还有数据? 2.你必须调和以解决第一项的问题。 3.你不考虑这个过程的动态。打开电脑,终端。所有的数据似乎都已经进来了。所有的东西都汇聚到了零条上。信号被发现。交易已经完成。结果发现不是所有的数据都进来了。5分钟后,我们得到了数字为1,2,3,4,5的缺失条。信号消失了。该怎么做?4.我把它标成了红色。目前还没有处理切换中可能出现的选择错误标识符的问题。我在上面写了应该如何做。在不等待结果的情况下调用RefreshRates()是没有用的。它可能会在很长一段时间内失效。 Youri Lazurenko 2013.06.08 05:07 #4032 大家好。我有这样一个问题。我在几个账户上进行交易(两个在一个经纪公司,一个在另一个),所以我使用Best复印机,它非常方便。它被安装在一个账户(出口器)的任何图表上,并被复制到其他账户(进口器),该EA也被安装在同一图表上(如果你把它,在进口器中,放在几个图表上,它将打开尽可能多的订单)。有一次,当我想用它在一家经纪公司检查工作,并设置了一个模拟账户),在一个美妙的时刻,它被自发地设置在几个图表上,当然它打开了许多订单。后来我也没太注意,以为是这个经纪公司终端的故障。然后我在上面提到的账户上交易了很长时间,没有发生类似情况。但昨天就在新闻发布 期间,这种情况再次发生在一个账户上(为另一家经纪公司,不是安装了出口商的账户)。 在6个图表上,顾问被自动放置,最有趣的是,在一个符号上有16个订单被打开。为什么会发生这种情况,原因是什么?这是专家顾问本身的缺点还是其他原因?有什么办法可以解决这个问题吗?提前感谢。 Dmitry Fedoseev 2013.06.08 08:29 #4033 // Зачем этот тормоз без обработки возвращаемого значения? 谁会问这样的问题? Dmitry Fedoseev 2013.06.08 08:53 #4034 hoz:在你看来,它有什么问题呢? 这不是错的,它只是泥沙俱下。结束了。 if (ld_price != 0) return (ld_price); 如果ld_price = 0,该函数将自行返回0。因此,不需要检查。这个是一个故障。 if (fs_symbol == Symbol()) { RefreshRates(); ld_price = Bid; } else ld_price = MarketInfo(fs_symbol, MODE_BID);也没有必要。你可以在所有情况下使用MraketInfo()。最后,该函数变成了一个纯粹的MarketInfo()函数(如果你删除所有不必要的东西)。 Dmitry Fedoseev 2013.06.08 09:00 #4035 原则上,理论上,这些都是正确的地方。RefreshRates(); ld_price = Bid;RefreshRates(); ld_price = Ask;我们不关心RefreshRates()返回什么,重要的是Ask和Bid变量有终端已知的最新值。 noobys 2013.06.08 12:07 #4036 你好!同样的EA,测试者的结果不同,原因何在? 测试的周期、货币对和时间框架都是一样的,但今天获得的结果与之前的非常不同,EA已经停止开立多头。 到底是终端报价的问题还是周末的问题,我不知道。也许有见识的人可以让我开开眼界,看看这明显的原因? Dmitry Fedoseev 2013.06.08 12:16 #4037 skyjet:你好!同样的EA,测试者的结果不同,原因何在? 测试的周期、货币对和时间框架都是一样的,但今天获得的结果与之前的非常不同,EA已经停止开立多头。 到底是终端报价的问题还是周末的问题,我不知道。也许有见识的人可以让我开开眼界,看看这明显的原因? 即使是连续做了两次测试,也会有不同的结果,而且非常明显。经纪人改变点差,用不同的点差进行测试。一个点的变化就足够了。如果很久以前有过一次测试,也许设置已经松动了。 Viktar Dzemikhau 2013.06.08 19:58 #4038 Zhunko:1.如果没有数据,同时又有这些数据,但我们对其一无所知?它返回FALSE。这应该如何解释呢?是没有数据或有错误,还是有数据? 我不理解你。让我们按顺序进行...我们调用RefreshRates(),没有数据进来...。但有数据。我们这里的情况是一个混乱的局面。如果数据没有来,就不会有数据,或者数据没有被更新,因为市场变量没有变化......。只有两个选择。如果它在调用RefreshRates() 后返回TRU,那么数据已经被更新。如果它返回FELS,那么要么他们没有更新,因为有一个错误,要么他们没有更新,因为数据是新鲜的,不需要更新。因此,我的理解是,这可以看作是:RefreshRates() 检查数据,如果数据不是新的,它就不更新那些不是新的,即没有变化的数据,如果是新的,它就更新。所以你只能依靠RefreshRates() 返回的标志。你有什么其他选择吗? 竺可桢。2.你需要通过对账来解决第一项的问题。 你说。我从服务器(MarketInfo())上调和了零条的数据。等待他们的是同样的结果。MarketInfo()正在从零条拉出,因为它是...你说的上述内容是什么意思? 竺可桢。3.你不考虑这个过程的动态。开启了电脑,终端。所有的数据似乎都已经进来了。一切都汇聚到了零点吧。信号被发现。交易已经完成。结果发现不是所有的数据都进来了。五分钟后,我们得到了数字为1,2,3,4,5的缺失条。信号消失了。该怎么做? 我决定再次更新它。但如果我们调用RefreshRates(),它的数据更新速度很慢怎么办?也就是说,有些计算将用一些市场数据进行,有些用其他数据进行......然后呢? 竺可桢。4.红色标记。另外,也没有处理开关中选择错误标识符的可能错误。我在上面写了应该如何处理。在不等待结果的情况下调用RefreshRates()是没有用的。它可能会在很长一段时间内失效。 嗯,如果我们等待它,报价可能会改变...这里有一条双向的路吗? RefreshRates(); // 为什么这个刹车没有返回值处理?你提了好几次,但还是没有具体内容。我的意思是,就像我看到这个函数通常被使用一样,它只是在使用市场数据变量的代码之前,仅此而已。他们并没有真正考虑过这个问题。但我想了想,决定想办法把它做好。要确定这样那样的方法确实是正确的,在所有正常条件下都能发挥作用。那么,瓦迪姆,你的这种表达是什么意思。"为什么不处理返回值就这样刹车?"如何处理它们?我在上面写了我的逻辑,但没有得到答案。我对它的描述相当准确,没有任何变种。 Viktar Dzemikhau 2013.06.08 20:23 #4039 Integer: 这不是错的,它只是泥沙俱下。结束了。if (ld_price != 0) return (ld_price); 如果ld_price = 0,该函数将自行返回0。因此,不需要检查。 我为什么要这样做?你只需要添加else,这样函数就会返回一些其他的值,这意味着 "没有价格"。似乎符合逻辑。当我抛出这个函数时,我更多考虑的是之前的逻辑,然后我没有注意到它的结局。而且我不明白为什么0函数本身会返回0...整数。 这就是细目。if (fs_symbol == Symbol()) { RefreshRates(); ld_price = Bid; } else ld_price = MarketInfo(fs_symbol, MODE_BID);这也是没有必要的。你可以在所有情况下使用MraketInfo()。最后,该函数变成了一个纯粹的MarketInfo()函数(如果你删除所有不必要的东西)。 如果我们总是可以使用MarketInfo(fs_symbol, MODE_ASK),那么为什么还要问呢(如果我们具体讨论的是购买价格)?毕竟,如果你这样看,通过参考《阿斯》,你就不能确定它在这一时刻的准确性? Viktar Dzemikhau 2013.06.08 20:32 #4040 Integer: RefreshRates()函数返回什么并不重要,重要的是Ask和Bid变量具有终端已知的最新值。 实际上,就我的理解,我们需要别的东西。我们需要最后的Ask和Bid服务器,而不是本地终端的。对吗?这就是为什么我在这里开始讨论,一劳永逸地了解如何更有逻辑地、正确地组织它。因为在理论上这是正确的,但在实践中... 1...397398399400401402403404405406407408409410411...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1.那么,如果新的数据到来,这就是我们需要的,不是吗?
2.嗯,是的,我们需要从第0条开始的数据,当然了。MarketInfo()从零条上提取数据,仅此而已。那么为什么要把它与其他东西进行比较呢?
3.即使历史上有漏洞,也不会影响目前的计算。在洞口存在的时候,它就会产生影响。也就是说,如果我们获得了当前的Ask,我们并不真正关心几个柱子前的价格(我的意思不是正式的,而是关于某个市场变量的当前时刻,因为函数RefreshRates()将对第0个柱子上的当前时刻进行处理!)。
当然,我挖得很深,但我想了解如何做得更好。
4.你,瓦迪姆,告诉我,我在上面写的函数是不正确的。
在你看来,它有什么问题?
1.如果没有数据,但我们对它一无所知?它返回FALSE。应该如何评价?没有数据或出现错误,还是还有数据?
2.你必须调和以解决第一项的问题。
3.你不考虑这个过程的动态。打开电脑,终端。所有的数据似乎都已经进来了。所有的东西都汇聚到了零条上。信号被发现。交易已经完成。结果发现不是所有的数据都进来了。5分钟后,我们得到了数字为1,2,3,4,5的缺失条。信号消失了。该怎么做?
4.我把它标成了红色。目前还没有处理切换中可能出现的选择错误标识符的问题。我在上面写了应该如何做。
在不等待结果的情况下调用RefreshRates()是没有用的。它可能会在很长一段时间内失效。
谁会问这样的问题?
在你看来,它有什么问题呢?
这不是错的,它只是泥沙俱下。
结束了。
如果ld_price = 0,该函数将自行返回0。因此,不需要检查。
这个是一个故障。
也没有必要。你可以在所有情况下使用MraketInfo()。
最后,该函数变成了一个纯粹的MarketInfo()函数(如果你删除所有不必要的东西)。
原则上,理论上,这些都是正确的地方。
我们不关心RefreshRates()返回什么,重要的是Ask和Bid变量有终端已知的最新值。
你好!
同样的EA,测试者的结果不同,原因何在?
测试的周期、货币对和时间框架都是一样的,但今天获得的结果与之前的非常不同,EA已经停止开立多头。
到底是终端报价的问题还是周末的问题,我不知道。也许有见识的人可以让我开开眼界,看看这明显的原因?
你好!
同样的EA,测试者的结果不同,原因何在?
测试的周期、货币对和时间框架都是一样的,但今天获得的结果与之前的非常不同,EA已经停止开立多头。
到底是终端报价的问题还是周末的问题,我不知道。也许有见识的人可以让我开开眼界,看看这明显的原因?
即使是连续做了两次测试,也会有不同的结果,而且非常明显。经纪人改变点差,用不同的点差进行测试。一个点的变化就足够了。
如果很久以前有过一次测试,也许设置已经松动了。
1.如果没有数据,同时又有这些数据,但我们对其一无所知?它返回FALSE。这应该如何解释呢?是没有数据或有错误,还是有数据?
我不理解你。让我们按顺序进行...我们调用RefreshRates(),没有数据进来...。但有数据。我们这里的情况是一个混乱的局面。如果数据没有来,就不会有数据,或者数据没有被更新,因为市场变量没有变化......。只有两个选择。
如果它在调用RefreshRates() 后返回TRU,那么数据已经被更新。如果它返回FELS,那么要么他们没有更新,因为有一个错误,要么他们没有更新,因为数据是新鲜的,不需要更新。
因此,我的理解是,这可以看作是:RefreshRates() 检查数据,如果数据不是新的,它就不更新那些不是新的,即没有变化的数据,如果是新的,它就更新。所以你只能依靠RefreshRates() 返回的标志。你有什么其他选择吗?
2.你需要通过对账来解决第一项的问题。
你说。
我从服务器(MarketInfo())上调和了零条的数据。等待他们的是同样的结果。
MarketInfo()正在从零条拉出,因为它是...你说的上述内容是什么意思?
3.你不考虑这个过程的动态。开启了电脑,终端。所有的数据似乎都已经进来了。一切都汇聚到了零点吧。信号被发现。交易已经完成。结果发现不是所有的数据都进来了。五分钟后,我们得到了数字为1,2,3,4,5的缺失条。信号消失了。该怎么做?
我决定再次更新它。但如果我们调用RefreshRates(),它的数据更新速度很慢怎么办?也就是说,有些计算将用一些市场数据进行,有些用其他数据进行......然后呢?
4.红色标记。另外,也没有处理开关中选择错误标识符的可能错误。我在上面写了应该如何处理。
在不等待结果的情况下调用RefreshRates()是没有用的。它可能会在很长一段时间内失效。
嗯,如果我们等待它,报价可能会改变...这里有一条双向的路吗?
RefreshRates(); // 为什么这个刹车没有返回值处理?
你提了好几次,但还是没有具体内容。我的意思是,就像我看到这个函数通常被使用一样,它只是在使用市场数据变量的代码之前,仅此而已。他们并没有真正考虑过这个问题。但我想了想,决定想办法把它做好。要确定这样那样的方法确实是正确的,在所有正常条件下都能发挥作用。
那么,瓦迪姆,你的这种表达是什么意思。
"
为什么不处理返回值就这样刹车?"
如何处理它们?我在上面写了我的逻辑,但没有得到答案。我对它的描述相当准确,没有任何变种。
这不是错的,它只是泥沙俱下。
结束了。
如果ld_price = 0,该函数将自行返回0。因此,不需要检查。
这就是细目。
这也是没有必要的。你可以在所有情况下使用MraketInfo()。
最后,该函数变成了一个纯粹的MarketInfo()函数(如果你删除所有不必要的东西)。
如果我们总是可以使用MarketInfo(fs_symbol, MODE_ASK),那么为什么还要问呢(如果我们具体讨论的是购买价格)?毕竟,如果你这样看,通过参考《阿斯》,你就不能确定它在这一时刻的准确性?
RefreshRates()函数返回什么并不重要,重要的是Ask和Bid变量具有终端已知的最新值。
实际上,就我的理解,我们需要别的东西。我们需要最后的Ask和Bid服务器,而不是本地终端的。对吗?
这就是为什么我在这里开始讨论,一劳永逸地了解如何更有逻辑地、正确地组织它。因为在理论上这是正确的,但在实践中...