专家社区 - 页 2 123456789...11 新评论 Forex Trader 2005.04.15 08:51 #11 对于停止,最好是引入一个 "冷却"(我不知道如何正确称呼它)。 如果你追踪一个精度为一个点的止损,经纪人会嚎叫着切断专家顾问系统 :) 我认为这样更好。 if (MathAbs(CurrentStopLoss - NewStopLoss) > (Ask - Bid)*Koef) { // 修改止损 ................ } 也就是说,如果新的止损点与旧的止损点相差一定数量(1-2),我们就修改订单。 你的问题在这里自动解决了。 Forex Trader 2005.04.15 12:08 #12 麦克,谢谢你的建议。会做的。 只是这里的问题不同--它试图设置_到_相同的_值_...也就是说,这样的检查不会挽救错误,而只是减少其概率 =) Forex Trader 2005.04.15 13:23 #13 只是这里的问题不同--它试图设置_到_相同的_值_...也就是说,这样的检查不会挽救错误,而只是降低其概率 =) 这很可能是EA文本中的一个小故障。 我也有过类似的情况,我不记得是怎么解决的。 但上面的例子确保了脚本中的任何错误 就不会有人试图将其设置为相同的值。 Forex Trader 2005.04.15 13:50 #14 Только тут проблема в другом - оно пытается установить _на_то_же_значение_... т.е. такая проверка не спасёт от ошибки, а просто уменьшит её вероятность =) 这很可能是专家文本中的一个小故障。我也有一个类似的,怎么解决的,我不记得了。但上面的例子确保了脚本中的任何错误 ,不会试图设置为相同的值。 Mak,那里有1行文字=)_TrailingStop( orderticket, 50 )。 我写这个函数正是为了避免这样的错误,而且检查的结果也是一样的,不同的是每一个点 都要计算出来。如果数值相同(在这种情况下,从价格到止损点的距离等于50),跟踪止损应该不起作用。此外,在大多数情况下,它不起作用=)))),有时会因某些原因而滑过....。 Forex Trader 2005.04.15 14:29 #15 也许NormalizeDouble 的工作方式有时不同? 它是四舍五入还是丢弃? 一般来说,最好永远不要比较浮动类型是否相等。 唯一的例外是: double A,B; .......... A = .......; ............. B = A; ........... if (B == A) ........ 而关于一条线...在_TrailingStop中,有很多行, ,如果至少有2行,就已经有了出错的理由 :) Forex Trader 2005.04.15 14:46 #16 它是做什么的,丢弃还是舍弃?我也很好奇;) 我已经在这里部分纠正了:而不是( orderstoploss == 0.0 ........ ) 作出的if ( orderstoploss <= 0 ......... )而其他的似乎都很好。....亏损订单 < ( 买入价 - 追踪止损 * 点 ) 雷纳特,我一般都把希望寄托在你身上=)这里可能有一个简单的角度--而我只是没有注意到...... Forex Trader 2005.04.15 15:38 #17 我看看周末能不能帮上忙。 Forex Trader 2005.04.15 16:37 #18 我这个周末会试着看一看,看看是否能帮上忙。我一定要把它弄好... Forex Trader 2005.04.15 18:34 #19 这可能是一个简单的东西,就像一个角度--而我只是没有注意到...... komposter,你错了 :)正如那个弯勺子的女孩所说,"事情并不像他们看起来那样"。 例如,下面这个循环打印了5个数字。 for (double d = 0.1; d <= 0.5; d += 0.1) Print(d); 在边界增加1.0的情况下,下一个周期将印刷多少? for (double d = 1.1; d <= 1.5; d += 0.1) Print(d); 你也会期望打印5个数字,但它只打印了4个(四)。这不是很好吗? 如果我们在循环之后再添加一行。 Print("d=" + d + "(d <= 1.5)=" + (d <= 1.5))。 我们得到。 d=1.50000000(d<=1.5)=0 几乎和你的一样,有一个停顿,但更基本 :)。这个问题和第一个计算机芯片一样古老。 计算机使用二进制算术,人类使用十进制算术。在四舍五入时,会出现假象。 Mak建议的 "四舍五入",如果你有四舍五入的根本问题,而不是一个微不足道的错误,就会有帮助。 许多人认为,金融计算必须使用特殊的十进制算术库,但即使这些算术库也可能包含错误,有时候 这有时会产生严重的后果。顺便问一下,Renat,你用的是哪种算术的实现? Forex Trader 2005.04.17 12:30 #20 komposter 看了一下(还没有做任何挖掘),发现了你计算的点 参考。 试着 "丢弃 "它,把点。可能这就是问题所在(MarketInfo中的点可能并不总是按照你想要的方式出现的?) 123456789...11 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你追踪一个精度为一个点的止损,经纪人会嚎叫着切断专家顾问系统 :)
我认为这样更好。
也就是说,如果新的止损点与旧的止损点相差一定数量(1-2),我们就修改订单。
你的问题在这里自动解决了。
只是这里的问题不同--它试图设置_到_相同的_值_...也就是说,这样的检查不会挽救错误,而只是减少其概率 =)
这很可能是EA文本中的一个小故障。
我也有过类似的情况,我不记得是怎么解决的。
但上面的例子确保了脚本中的任何错误
就不会有人试图将其设置为相同的值。
这很可能是专家文本中的一个小故障。我也有一个类似的,怎么解决的,我不记得了。但上面的例子确保了脚本中的任何错误 ,不会试图设置为相同的值。
Mak,那里有1行文字=
我写这个函数正是为了避免这样的错误,而且检查的结果也是一样的,不同的是每一个点 都要计算出来。如果数值相同(在这种情况下,从价格到止损点的距离等于50),跟踪止损应该不起作用。此外,在大多数情况下,它不起作用=)))),有时会因某些原因而滑过....。
它是四舍五入还是丢弃?
一般来说,最好永远不要比较浮动类型是否相等。
唯一的例外是:
而关于一条线...在_TrailingStop中,有很多行, ,如果至少有2行,就已经有了出错的理由 :)
我已经在这里部分纠正了:而不是
作出的
而其他的似乎都很好。
雷纳特,我一般都把希望寄托在你身上=)这里可能有一个简单的角度--而我只是没有注意到......
komposter,你错了 :)正如那个弯勺子的女孩所说,"事情并不像他们看起来那样"。
例如,下面这个循环打印了5个数字。
在边界增加1.0的情况下,下一个周期将印刷多少?
你也会期望打印5个数字,但它只打印了4个(四)。这不是很好吗?
如果我们在循环之后再添加一行。
我们得到。
几乎和你的一样,有一个停顿,但更基本 :)。这个问题和第一个计算机芯片一样古老。
计算机使用二进制算术,人类使用十进制算术。在四舍五入时,会出现假象。
Mak建议的 "四舍五入",如果你有四舍五入的根本问题,而不是一个微不足道的错误,就会有帮助。
许多人认为,金融计算必须使用特殊的十进制算术库,但即使这些算术库也可能包含错误,有时候
这有时会产生严重的后果。顺便问一下,Renat,你用的是哪种算术的实现?
看了一下(还没有做任何挖掘),发现了你计算的点 参考。
试着 "丢弃 "它,把点。可能这就是问题所在(MarketInfo中的点可能并不总是按照你想要的方式出现的?)