检查在市场上发布的EA中的最小止损。 - 页 11 1...456789101112131415161718 新评论 Vitalii Ananev 2016.03.16 13:12 #101 Vladimir Gribachev:那么,在MetaQuotes-Demo服务器上(版主正在测试),最小止损水平正常返回。自己检查一下,0不会。 我不知道在什么服务器上测试版主,但topik启动器正在检查停止水平,他将产品退回到错误130 的改进。从头开始阅读这个主题。 Volodymyr Hrybachov 2016.03.16 13:19 #102 Vitalii Ananev: 我不知道测试版主是在哪个服务器上,但话题发起人有一个检查停止的水平,产品被退回给他改进,因为错误130。从头开始阅读这个主题。在他的案例中,130可能不仅发生在猫头鹰试图将止损放在离市场太近的地方。 在发送或修改slp时,最好直接检查。 Andrey F. Zelinsky 2016.03.16 13:20 #103 Vladimir Gribachev:问题是,为什么要在实盘上 设置1个点的止损?我刚刚想起来...曾经测试过这样一种带有最小止损的算法,检查结果基本相同,没有错误,也没有利润。60个市场产品的卖家--他写了80个自由任务--有一个网站有写EA 的广告--而这一切都不是第一年--是话题发起人。而突然间,话题发起人问该如何解决零停顿的问题,并说市场版主不知为何奇怪地检查市场上的EA。与他的评论形成鲜明对比的是--那些有开发经验的论坛用户,他们有将产品投入市场的经验--看了他的评论后感到很困惑。 Maxim Dmitrievsky 2016.03.16 13:22 #104 Andrey F. Zelinsky:60个市场产品的卖家--他在当地自由职业者中写了80个任务--他有一个网站宣传写EA--所有这些都远非第一年--是话题发起人。而突然间,话题发起人问该如何解决零停顿的问题,并说市场版主不知为何奇怪地检查市场上的EA。与他的评论形成鲜明对比的是--那些有开发经验的论坛用户,他们有将产品投入市场的经验--看了他的评论后感到很困惑。 也许他只是想沟通?) 编程机器人是一个非常孤独的行业 Igor Volodin 2016.03.16 13:32 #105 lilita bogachkova:这里发布的代码。double point=SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT); int spread=(ask-bid)/point;你不能这样除以一个点,SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT) 函数的值可能等于零。 这也适用于其他市场功能。例如,在2010年冠军赛的计算中使用AccountInfoInteger(ACCOUNT_LEVERAGE) 导致一些EA崩溃,出现零除法 错误,而这个函数在OnInit返回0。 Ihor Herasko 2016.03.16 13:56 #106 Vladimir Gribachev:问题是,为什么要在实盘上 设置1个点的止损?我刚刚想起来...有一次,我测试了这样一种带有最小止损的算法,检查结果基本相同,没有错误,也没有利润。看看事情的根源。这并不是说我为什么要设置1个点的止损。问题是,止损可能小于经纪人隐藏的、根据价差宽度计算的止损。为了澄清问题,我向你展示一个使用你的算法来检查止损的专家顾问。#property strict //--- input parameters input int i_slSize = 10; input int i_tpSize = 10; input int i_magicNumber = 32847623; int OnInit() { Print("Величина стоплевел: ", MarketInfo(_Symbol,MODE_STOPLEVEL)); return(INIT_SUCCEEDED); } int GetExpertOrderTicket() { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS)) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() != i_magicNumber) continue; if (OrderType() == OP_BUY) return OrderTicket(); } return -1; } void OnTick() { int ticket = GetExpertOrderTicket(); if (ticket < 0) { ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 30, 0.0, 0.0, NULL, i_magicNumber); return; } if (!OrderSelect(ticket, SELECT_BY_TICKET) || OrderCloseTime() != 0 || OrderStopLoss() > 0.0 || OrderTakeProfit() > 0.0) return; double SL=NormalizeDouble(OrderOpenPrice()-MathMax(i_slSize,(int)MarketInfo(_Symbol,MODE_STOPLEVEL))*_Point,_Digits); double TP=NormalizeDouble(OrderOpenPrice()+MathMax(i_tpSize,(int)MarketInfo(_Symbol,MODE_STOPLEVEL))*_Point,_Digits); bool result = OrderModify(ticket, 0.0, SL, TP, 0); }这种专家顾问的测试结果。0 14:52:30.354 Expert CheckStopLevel EURUSD,H1: removed 0 14:52:30.372 Expert CheckStopLevel EURUSD,H1: loaded successfully 0 14:52:30.390 Tester: template 'D:\ForexDC\Alpari\templates\tester.tpl' applied 0 14:52:30.395 TestGenerator: current spread 10 used 2 14:52:32 2015.01.12 00:00 CheckStopLevel inputs: i_slSize=10; i_tpSize=10; i_magicNumber=32847623; 0 14:52:32 2015.01.12 00:00 CheckStopLevel EURUSD,H1: Величина стоплевел: 0.0 2 14:52:32 2015.01.12 00:00 CheckStopLevel EURUSD,H1: open #1 buy 0.01 EURUSD at 1.18674 ok 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:35 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 3 14:52:36 2015.01.12 00:00 CheckStopLevel EURUSD,H1: OrderModify error 130 正如你所看到的,这个方法没有通过基本的测试。 Andrey F. Zelinsky 2016.03.16 14:07 #107 Ihor Herasko:找到它的根源。这不是说你为什么要设1点止损。这是关于...如果你能找到问题的根源--你必须区分a)"让开发商的买主 傻瓜化 "和b)寄希望于买主是个傻瓜。它们是不同的保护措施。没有一个理智的买家会把负面的取舍和停止。因此,检查 "EA对负的止损点会有什么反应 "是指望买方是个白痴。创建一个EA,其中用户定义的采取和停止被强制持续增加一个难以理解的值 "2个点差"--这是 "防骗"--只是对一个 "傻瓜开发者 "的保护。 特别是如果开发商为了通过市场节制而设置这种保护。 Maxim Dmitrievsky 2016.03.16 14:11 #108 Andrey F. Zelinsky:如果你从根源上看,你必须区分a)"让开发商购买者 傻瓜化 "和b)指望购买者是个傻瓜。这些是不同的保护措施。没有一个理智的买家会把负面的取舍和停止。因此,检查 "EA对负的止损点会有什么反应 "是指望买方是个白痴。创建一个EA,其中用户定义的采取和停止被强制持续增加一个难以理解的 "2个点差 "是 "傻瓜",只有不从 "傻瓜开发者 "那里购买产品才是傻瓜。 你认为这里有很多理智的人吗?:)特别是在买家中。 Volodymyr Hrybachov 2016.03.16 14:12 #109 Ihor Herasko:找到它的根源。这不是关于为什么你应该把止损放在1点。这是关于止损可能小于止损的事实,止损是由经纪人隐藏的,是根据点差宽度计算的。为了澄清问题,我向你展示一个使用你的算法来检查止损的专家顾问。这种专家顾问的测试结果。可以看出,该方法并没有通过基本的检查。如果真的那么糟糕,这里是#property strict //--- input parameters input int i_slSize = 10; input int i_tpSize = 10; input int i_magicNumber = 32847623; int OnInit() { Print("Величина стоплевел: ", MarketInfo(_Symbol,MODE_STOPLEVEL)); return(INIT_SUCCEEDED); } int GetExpertOrderTicket() { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS)) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() != i_magicNumber) continue; if (OrderType() == OP_BUY) return OrderTicket(); } return -1; } void OnTick() { int ticket = GetExpertOrderTicket(); if (ticket < 0) { ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 30, 0.0, 0.0, NULL, i_magicNumber); return; } if (!OrderSelect(ticket, SELECT_BY_TICKET) || OrderCloseTime() != 0 || OrderStopLoss() > 0.0 || OrderTakeProfit() > 0.0) return; double SL=NormalizeDouble(Bid-MathMax(i_slSize,(int)MarketInfo(_Symbol,MODE_STOPLEVEL))*_Point,_Digits); double TP=NormalizeDouble(Bid+MathMax(i_tpSize,(int)MarketInfo(_Symbol,MODE_STOPLEVEL))*_Point,_Digits); bool result = OrderModify(ticket, 0.0, SL, TP, 0); }原木2016.03.16 15:09:35.611 GBPUSD,H1: 94 tick events (1095 bars, 286082 bar states) processed in 0:00:06.037 (total time 0:00:10.109) 2016.03.16 15:09:35.611 2016.03.01 00:12 Tester: order #14 is closed 2016.03.16 15:09:35.588 2016.03.01 00:12 Tester: stop button pressed 2016.03.16 15:09:35.547 2016.03.01 00:12 abcd GBPUSD,H1: modify #14 buy 0.01 GBPUSD at 1.39165 sl: 1.39130 tp: 1.39154 ok 2016.03.16 15:09:35.483 2016.03.01 00:12 abcd GBPUSD,H1: open #14 buy 0.01 GBPUSD at 1.39165 ok 2016.03.16 15:09:35.483 2016.03.01 00:12 Tester: take profit #13 at 1.39144 (1.39144 / 1.39165) 2016.03.16 15:09:35.099 2016.03.01 00:12 abcd GBPUSD,H1: modify #13 buy 0.01 GBPUSD at 1.39156 sl: 1.39120 tp: 1.39144 ok 2016.03.16 15:09:35.035 2016.03.01 00:11 abcd GBPUSD,H1: open #13 buy 0.01 GBPUSD at 1.39156 ok 2016.03.16 15:09:35.035 2016.03.01 00:11 Tester: stop loss #12 at 1.39148 (1.39135 / 1.39156) 2016.03.16 15:09:34.971 2016.03.01 00:11 abcd GBPUSD,H1: modify #12 buy 0.01 GBPUSD at 1.39171 sl: 1.39148 tp: 1.39172 ok 2016.03.16 15:09:34.907 2016.03.01 00:11 abcd GBPUSD,H1: open #12 buy 0.01 GBPUSD at 1.39171 ok 2016.03.16 15:09:34.907 2016.03.01 00:11 Tester: take profit #11 at 1.39143 (1.39150 / 1.39171) 2016.03.16 15:09:34.267 2016.03.01 00:10 abcd GBPUSD,H1: modify #11 buy 0.01 GBPUSD at 1.39147 sl: 1.39119 tp: 1.39143 ok 2016.03.16 15:09:34.203 2016.03.01 00:10 abcd GBPUSD,H1: open #11 buy 0.01 GBPUSD at 1.39147 ok 2016.03.16 15:09:34.203 2016.03.01 00:10 Tester: stop loss #10 at 1.39132 (1.39126 / 1.39147) 2016.03.16 15:09:33.947 2016.03.01 00:10 abcd GBPUSD,H1: modify #10 buy 0.01 GBPUSD at 1.39174 sl: 1.39132 tp: 1.39156 ok 2016.03.16 15:09:33.883 2016.03.01 00:10 abcd GBPUSD,H1: open #10 buy 0.01 GBPUSD at 1.39174 ok 2016.03.16 15:09:33.883 2016.03.01 00:10 Tester: stop loss #9 at 1.39157 (1.39153 / 1.39174) 2016.03.16 15:09:33.435 2016.03.01 00:09 abcd GBPUSD,H1: modify #9 buy 0.01 GBPUSD at 1.39186 sl: 1.39157 tp: 1.39181 ok 2016.03.16 15:09:33.371 2016.03.01 00:09 abcd GBPUSD,H1: open #9 buy 0.01 GBPUSD at 1.39186 ok 2016.03.16 15:09:33.371 2016.03.01 00:09 Tester: take profit #8 at 1.39163 (1.39165 / 1.39186) 2016.03.16 15:09:32.603 2016.03.01 00:06 abcd GBPUSD,H1: modify #8 buy 0.01 GBPUSD at 1.39173 sl: 1.39139 tp: 1.39163 ok 2016.03.16 15:09:32.539 2016.03.01 00:06 abcd GBPUSD,H1: open #8 buy 0.01 GBPUSD at 1.39173 ok 2016.03.16 15:09:32.539 2016.03.01 00:06 Tester: take profit #7 at 1.39152 (1.39152 / 1.39173) 2016.03.16 15:09:32.346 2016.03.01 00:06 abcd GBPUSD,H1: modify #7 buy 0.01 GBPUSD at 1.39173 sl: 1.39128 tp: 1.39152 ok 2016.03.16 15:09:32.282 2016.03.01 00:06 abcd GBPUSD,H1: open #7 buy 0.01 GBPUSD at 1.39173 ok 2016.03.16 15:09:32.282 2016.03.01 00:06 Tester: take profit #6 at 1.39148 (1.39152 / 1.39173) 2016.03.16 15:09:32.025 2016.03.01 00:05 abcd GBPUSD,H1: modify #6 buy 0.01 GBPUSD at 1.39155 sl: 1.39124 tp: 1.39148 ok 2016.03.16 15:09:31.961 2016.03.01 00:05 abcd GBPUSD,H1: open #6 buy 0.01 GBPUSD at 1.39155 ok 2016.03.16 15:09:31.961 2016.03.01 00:05 Tester: stop loss #5 at 1.39140 (1.39134 / 1.39155) 2016.03.16 15:09:31.249 2016.03.01 00:04 abcd GBPUSD,H1: modify #5 buy 0.01 GBPUSD at 1.39170 sl: 1.39140 tp: 1.39164 ok 2016.03.16 15:09:31.185 2016.03.01 00:04 abcd GBPUSD,H1: open #5 buy 0.01 GBPUSD at 1.39170 ok 2016.03.16 15:09:31.185 2016.03.01 00:04 Tester: take profit #4 at 1.39147 (1.39149 / 1.39170) 2016.03.16 15:09:30.801 2016.03.01 00:02 abcd GBPUSD,H1: modify #4 buy 0.01 GBPUSD at 1.39159 sl: 1.39123 tp: 1.39147 ok 2016.03.16 15:09:30.737 2016.03.01 00:01 abcd GBPUSD,H1: open #4 buy 0.01 GBPUSD at 1.39159 ok 2016.03.16 15:09:30.737 2016.03.01 00:01 Tester: take profit #3 at 1.39136 (1.39138 / 1.39159) 2016.03.16 15:09:30.481 2016.03.01 00:01 abcd GBPUSD,H1: modify #3 buy 0.01 GBPUSD at 1.39143 sl: 1.39112 tp: 1.39136 ok 2016.03.16 15:09:30.417 2016.03.01 00:01 abcd GBPUSD,H1: open #3 buy 0.01 GBPUSD at 1.39143 ok 2016.03.16 15:09:30.417 2016.03.01 00:01 Tester: stop loss #2 at 1.39126 (1.39122 / 1.39143) 2016.03.16 15:09:30.225 2016.03.01 00:00 abcd GBPUSD,H1: modify #2 buy 0.01 GBPUSD at 1.39156 sl: 1.39126 tp: 1.39150 ok 2016.03.16 15:09:30.161 2016.03.01 00:00 abcd GBPUSD,H1: open #2 buy 0.01 GBPUSD at 1.39156 ok 2016.03.16 15:09:30.161 2016.03.01 00:00 Tester: take profit #1 at 1.39135 (1.39135 / 1.39156) 2016.03.16 15:09:29.647 2016.03.01 00:00 abcd GBPUSD,H1: modify #1 buy 0.01 GBPUSD at 1.39148 sl: 1.39111 tp: 1.39135 ok 2016.03.16 15:09:29.583 2016.03.01 00:00 abcd GBPUSD,H1: open #1 buy 0.01 GBPUSD at 1.39148 ok 2016.03.16 15:09:29.583 2016.03.01 00:00 abcd GBPUSD,H1: Величина стоплевел: 12.0 2016.03.16 15:09:29.574 2016.03.01 00:00 abcd inputs: i_slSize=10; i_tpSize=10; i_magicNumber=32847623; 2016.03.16 15:09:27.513 TestGenerator: current spread 21 used 而且没有问题。但如果真的那么糟糕,正如Andrey F. Zelinsky 正确地指出的那样如果你想让一个EA变得更糟,只是去市场上的节制,那是不够的。 如果我的EA没有检查过第130个错误,并在止损上加了+1。但这只是无稽之谈。 Andrey F. Zelinsky 2016.03.16 14:16 #110 Maxim Dmitrievsky: 你认为这里有很多理智的人吗?:)特别是在买家中。我认为,如果你做研究 -- 理智的买家比理智的开发商更多。买方可能是错的。可以让客户理解。他们是可以被说服的。但如果开发商在常识上有问题,就无法解决了。损害专家顾问的功能只是为了进入市场 -- 这是不充分的。 1...456789101112131415161718 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么,在MetaQuotes-Demo服务器上(版主正在测试),最小止损水平正常返回。自己检查一下,0不会。
我不知道测试版主是在哪个服务器上,但话题发起人有一个检查停止的水平,产品被退回给他改进,因为错误130。从头开始阅读这个主题。
在他的案例中,130可能不仅发生在猫头鹰试图将止损放在离市场太近的地方。
在发送或修改slp时,最好直接检查。
问题是,为什么要在实盘上 设置1个点的止损?
我刚刚想起来...曾经测试过这样一种带有最小止损的算法,检查结果基本相同,没有错误,也没有利润。
60个市场产品的卖家--他写了80个自由任务--有一个网站有写EA 的广告--而这一切都不是第一年--是话题发起人。
而突然间,话题发起人问该如何解决零停顿的问题,并说市场版主不知为何奇怪地检查市场上的EA。
与他的评论形成鲜明对比的是--那些有开发经验的论坛用户,他们有将产品投入市场的经验--看了他的评论后感到很困惑。
60个市场产品的卖家--他在当地自由职业者中写了80个任务--他有一个网站宣传写EA--所有这些都远非第一年--是话题发起人。
而突然间,话题发起人问该如何解决零停顿的问题,并说市场版主不知为何奇怪地检查市场上的EA。
与他的评论形成鲜明对比的是--那些有开发经验的论坛用户,他们有将产品投入市场的经验--看了他的评论后感到很困惑。
这里发布的代码。
你不能这样除以一个点,SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT) 函数的值可能等于零。
这也适用于其他市场功能。
例如,在2010年冠军赛的计算中使用AccountInfoInteger(ACCOUNT_LEVERAGE) 导致一些EA崩溃,出现零除法 错误,而这个函数在OnInit返回0。
问题是,为什么要在实盘上 设置1个点的止损?
我刚刚想起来...有一次,我测试了这样一种带有最小止损的算法,检查结果基本相同,没有错误,也没有利润。
看看事情的根源。这并不是说我为什么要设置1个点的止损。问题是,止损可能小于经纪人隐藏的、根据价差宽度计算的止损。
为了澄清问题,我向你展示一个使用你的算法来检查止损的专家顾问。
这种专家顾问的测试结果。
正如你所看到的,这个方法没有通过基本的测试。
找到它的根源。这不是说你为什么要设1点止损。这是关于...
如果你能找到问题的根源--你必须区分a)"让开发商的买主 傻瓜化 "和b)寄希望于买主是个傻瓜。它们是不同的保护措施。
没有一个理智的买家会把负面的取舍和停止。因此,检查 "EA对负的止损点会有什么反应 "是指望买方是个白痴。
创建一个EA,其中用户定义的采取和停止被强制持续增加一个难以理解的值 "2个点差"--这是 "防骗"--只是对一个 "傻瓜开发者 "的保护。
特别是如果开发商为了通过市场节制而设置这种保护。
如果你从根源上看,你必须区分a)"让开发商购买者 傻瓜化 "和b)指望购买者是个傻瓜。这些是不同的保护措施。
没有一个理智的买家会把负面的取舍和停止。因此,检查 "EA对负的止损点会有什么反应 "是指望买方是个白痴。
创建一个EA,其中用户定义的采取和停止被强制持续增加一个难以理解的 "2个点差 "是 "傻瓜",只有不从 "傻瓜开发者 "那里购买产品才是傻瓜。
找到它的根源。这不是关于为什么你应该把止损放在1点。这是关于止损可能小于止损的事实,止损是由经纪人隐藏的,是根据点差宽度计算的。
为了澄清问题,我向你展示一个使用你的算法来检查止损的专家顾问。
这种专家顾问的测试结果。
可以看出,该方法并没有通过基本的检查。
如果真的那么糟糕,这里是
原木
而且没有问题。
但如果真的那么糟糕,正如Andrey F. Zelinsky 正确地指出的那样
如果你想让一个EA变得更糟,只是去市场上的节制,那是不够的。
你认为这里有很多理智的人吗?:)特别是在买家中。
我认为,如果你做研究 -- 理智的买家比理智的开发商更多。
买方可能是错的。可以让客户理解。他们是可以被说服的。
但如果开发商在常识上有问题,就无法解决了。
损害专家顾问的功能只是为了进入市场 -- 这是不充分的。