[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 628 1...621622623624625626627628629630631632633634635...1145 新评论 Alexey Zhuravlev 2010.06.19 09:20 #6271 IgorM: 没有参数的for语句?- 第二个问题是,EA有全局变量--而不是终端,它们在所有函数之前的代码的最开始被描述,包括你写的start()函数--在start()函数被调用时,你的 flagchange = false; 然后你试图将这个标志与之前的状态进行比较,但其状态将永远是false。 如果你刚刚开始尝试你的手 - 从Kodobase采取任何现成的专家顾问,并将进入市场的条件改为你自己的 - 这将是更快。 Vinin 循环的目的是什么? 你的意思是,start()函数在每个tick都被执行?那么这个循环就真的没有必要了。 Igor Makanu 2010.06.19 09:26 #6272 MarkTrade: 那么,start()函数是在每个刻度线上执行的吗?那么循环就真的没有必要了。 https://book.mql4.com/ru/programm/special Artyom Trishkin 2010.06.19 09:26 #6273 有趣的是女孩们的舞蹈...站在一起齐声歌唱... 测试了又测试,根据结果增加/改变了功能/条件/数据,在盈利能力和缩减方面得到了或多或少的好结果......。不进行优化。重新加载了整个故事,它开始急剧下降,不--梅子,甚至不--大梅子...... 如果在我重新加载报价历史(我在测试前有一个预先加载的欧元兑美元历史,我重新加载是为了以防万一--我在2010年由于某些原因在建模质量上出现了错误......)......。在重新加载历史记录之前,专家顾问成功地,好吧,几乎成功地经受住了不同的来回测试,成功地在三年的历史上进行了交易,但在重新加载报价后,开始出现每月两三次的缩水,并且在测试开始后的两三个月内没有工作 ...我没有改变任何条件,只有历史。 事实证明,在服务器上历史被改写了?就像苏联自古以来一样? 那么,这一切有什么意义呢? Oleg 2010.06.19 09:41 #6274 artmedia70:女孩们的舞蹈很有趣...一起站起来唱...尝试和测试,添加/创建函数/条件/数据,在盈利能力和缩减方面得到了或多或少的好结果......。没有优化。重新加载了所有的历史,它开始下降,不--下降,甚至不--大下降......。如果在重新加载报价历史(在测试之前,我已经预装了所有的欧元兑美元历史,为了安全起见,我重新加载了它,但由于某些原因,我在2010年以来的建模质量上出现了错误)...在重新加载历史记录之前,专家顾问成功地,好吧,几乎成功地经受住了不同的来回测试,成功地在三年的历史上进行了交易,但在重新加载报价后,开始出现每月两三次的缩水,并且在测试开始后的两三个月内没有工作 ...我没有改变任何条件,只有历史...事实证明,在服务器上历史被重写了?就像苏联自古以来一样?然后这一切的重点是什么? 如果你的MT仍然没有与服务器断开连接,那么是时候了(不要再不必要地连接它)--每次你启动测试器或优化,MT都会从服务器获得一个传播(等)。因此,当点差为1点时,一切都将是超级棒的,但如果在另一个时间,它增加到4-5点 - 专家顾问可能会开始赔钱。自然,最好是在最坏的条件下进行优化,因为它们在实际交易中更有可能发生。 Alexey Zhuravlev 2010.06.19 10:10 #6275 这里有一点重做。 глобальные переменные (в самом начале, под #property link ) bool flagchange = false; bool PrevFlag = false; bool flag = false; int start() { //---вход в позицию //int spread=MarketInfo("EURUSD",MODE_SPREAD); int Slippage = 3; int i = 0; double lt = getLots() ; // минимальный лот RefreshRates(); int total = OrdersTotal(); int ticket = -1; flag = GetEma(); if (PrevFlag != flag) // проверим, сигнал ема изменился? {flagchange = true; // изменился! PrevFlag = flag;} else flagchange = false; if (flagchange == True) { int Total=OrdersTotal(); // есть открытые позиции? if(Total>0) { for(i=Total-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) // Только Buy и Sell { if(OrderType()==OP_BUY) bool Result=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,CLR_NONE); else Result=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,CLR_NONE); if(Result!=true) { Print("LastError = ",GetLastError()); } } } else if (flag ==true) OrderSend(Symbol(),OP_BUY,lt,Ask,Slippage,Bid - sl * Point,0,"Buy",888,0,Blue); else OrderSend(Symbol(),OP_SELL,lt,Bid,Slippage,Ask + sl * Point,0,"Seel",888,0,Red); } } } return(0); } ////////////////////////////////////////////////////// bool GetEma() { //----Получим значение EMA1 int ma1= iMA(Symbol(),PERIOD_H1,ema1,0,1,6,0); //----Получим значение EMA2 int ma2= iMA("",PERIOD_H1,ema2,0,1,6,0); if (ma1>ma2) return (True); else return (False);} ///////////////////////////////////////////////////// // посчитаем разтер лота double getLots() { double minlot = MarketInfo(Symbol(), MODE_MINLOT); int round = MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5; double lot = minlot; //---- select lot size lot = NormalizeDouble(AccountFreeMargin() * Risk / 1000.0, round); if (AccountFreeMargin() < lot * MarketInfo(Symbol(), MODE_MARGINREQUIRED)) { lot = NormalizeDouble(AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED), round); } if(lot < minlot) lot = minlot; double maxlot = MarketInfo(Symbol(), MODE_MAXLOT); if(lot > maxlot) lot = maxlot; //---- return lot size return(lot); } 仍然没有交易 :( Artyom Trishkin 2010.06.19 10:23 #6276 chief2000: 如果你的MT仍然没有与服务器断开连接,现在是时候这样做了(不再不必要地连接它)--每次你运行测试器或优化时,MT都会从服务器接收一个传播(等等)。因此,当点差为1点时,一切都将是超级棒的,但如果在另一个时间,它增加到4-5点 - 专家顾问可能会开始赔钱。自然,最好是在最坏的条件下进行优化,因为它们在实际交易中更有可能发生。 这一切都很清楚,而且早已明白......但今天是星期六...今天的价差能改变吗?不...现在可能是最低的时候,也就是条件最好的时候......不...即使有任何价差,该EA的交易情况也很好...在历史重置之前。 techno 2010.06.19 10:29 #6277 artmedia70: 这一切都很清楚,而且早已明白......但今天是星期六...今天的价差能改变吗?不...现在可能是最小的,也就是说,最好的条件...不...即使有任何价差,该EA的交易情况也很好...在历史重置之前。 那么,如果你看一下图表上的交易 进展,有什么变化呢? Artyom Trishkin 2010.06.19 10:40 #6278 Techno: 那么,如果你看一下图表上的交易进度,有什么变化呢? 股票缩水已经增加了许多倍...事实证明,开仓 有更多的条件。他实际上打开了更多的位置... Igor Makanu 2010.06.19 10:45 #6279 MarkTrade:这里有一点重做。仍然没有交易 :(在条件/逻辑 ,某处肯定有错误,因为MetaEditor没有调试器,所以我这样做。 在代码的末尾加上 Comment( "flag=", flag, " PrevFlag=", PrevFlag, ......); return(0); } 在测试器的可视化模式下,以低速查看哪些变化,哪些没有变化。 techno 2010.06.19 10:53 #6280 artmedia70: 股票缩水比以往增加了许多倍...事实证明,开仓的条件已经增加。他实际上打开了更多的位置... 我不是说测试图,而是报价图,大致上,开盘、收盘的变化是什么? 1...621622623624625626627628629630631632633634635...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
没有参数的for语句?- 第二个问题是,EA有全局变量--而不是终端,它们在所有函数之前的代码的最开始被描述,包括你写的start()函数--在start()函数被调用时,你的 flagchange = false; 然后你试图将这个标志与之前的状态进行比较,但其状态将永远是false。
如果你刚刚开始尝试你的手 - 从Kodobase采取任何现成的专家顾问,并将进入市场的条件改为你自己的 - 这将是更快。
循环的目的是什么?
你的意思是,start()函数在每个tick都被执行?那么这个循环就真的没有必要了。
MarkTrade:
那么,start()函数是在每个刻度线上执行的吗?那么循环就真的没有必要了。https://book.mql4.com/ru/programm/special
有趣的是女孩们的舞蹈...站在一起齐声歌唱...
测试了又测试,根据结果增加/改变了功能/条件/数据,在盈利能力和缩减方面得到了或多或少的好结果......。不进行优化。重新加载了整个故事,它开始急剧下降,不--梅子,甚至不--大梅子......
如果在我重新加载报价历史(我在测试前有一个预先加载的欧元兑美元历史,我重新加载是为了以防万一--我在2010年由于某些原因在建模质量上出现了错误......)......。在重新加载历史记录之前,专家顾问成功地,好吧,几乎成功地经受住了不同的来回测试,成功地在三年的历史上进行了交易,但在重新加载报价后,开始出现每月两三次的缩水,并且在测试开始后的两三个月内没有工作 ...我没有改变任何条件,只有历史。
事实证明,在服务器上历史被改写了?就像苏联自古以来一样?
那么,这一切有什么意义呢?
女孩们的舞蹈很有趣...一起站起来唱...
尝试和测试,添加/创建函数/条件/数据,在盈利能力和缩减方面得到了或多或少的好结果......。没有优化。重新加载了所有的历史,它开始下降,不--下降,甚至不--大下降......。
如果在重新加载报价历史(在测试之前,我已经预装了所有的欧元兑美元历史,为了安全起见,我重新加载了它,但由于某些原因,我在2010年以来的建模质量上出现了错误)...在重新加载历史记录之前,专家顾问成功地,好吧,几乎成功地经受住了不同的来回测试,成功地在三年的历史上进行了交易,但在重新加载报价后,开始出现每月两三次的缩水,并且在测试开始后的两三个月内没有工作 ...我没有改变任何条件,只有历史...
事实证明,在服务器上历史被重写了?就像苏联自古以来一样?
然后这一切的重点是什么?
如果你的MT仍然没有与服务器断开连接,那么是时候了(不要再不必要地连接它)--每次你启动测试器或优化,MT都会从服务器获得一个传播(等)。因此,当点差为1点时,一切都将是超级棒的,但如果在另一个时间,它增加到4-5点 - 专家顾问可能会开始赔钱。自然,最好是在最坏的条件下进行优化,因为它们在实际交易中更有可能发生。
这里有一点重做。
仍然没有交易 :(
如果你的MT仍然没有与服务器断开连接,现在是时候这样做了(不再不必要地连接它)--每次你运行测试器或优化时,MT都会从服务器接收一个传播(等等)。因此,当点差为1点时,一切都将是超级棒的,但如果在另一个时间,它增加到4-5点 - 专家顾问可能会开始赔钱。自然,最好是在最坏的条件下进行优化,因为它们在实际交易中更有可能发生。
这一切都很清楚,而且早已明白......但今天是星期六...今天的价差能改变吗?不...现在可能是最小的,也就是说,最好的条件...不...即使有任何价差,该EA的交易情况也很好...在历史重置之前。
那么,如果你看一下图表上的交易进度,有什么变化呢?
这里有一点重做。
仍然没有交易 :(
在条件/逻辑
,某处肯定有错误,因为MetaEditor没有调试器,所以我这样做。
在代码的末尾加上
Comment( "flag=", flag, " PrevFlag=", PrevFlag, ......);
return(0);
}
在测试器的可视化模式下,以低速查看哪些变化,哪些没有变化。
股票缩水比以往增加了许多倍...事实证明,开仓的条件已经增加。他实际上打开了更多的位置...