初学者的问题 MQL5 MT5 MetaTrader 5 - 页 86 1...798081828384858687888990919293...1503 新评论 WindSW 2013.01.21 15:31 #851 fyords: 打印ObjectCreate的结果,也许那里有一个错误。谢谢你。我一定会检查,但要在解决了新问题之后。该EA工作了一段时间,现在已从图表中自动删除。我不能把它放回去,它说阵列已满。void CreateLevels() { double High[]; ArrayResize(High,0); ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); for(int j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { double H=High[j]; }int iHighest(string symbol,int tf,int type,int count,int start) { if(start<0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(count<=0) count=Bars(symbol,timeframe); if(type==10) // MODE_HIGH { double High[]; ArraySetAsSeries(High,true); CopyHigh(symbol,timeframe,start,count,High); return(ArrayMaximum(High,0,count)+start); } return(0); }蜡烛=1000。编译器没有在任何地方发誓,在调试器中也没有发生什么。请提出解决问题的方法 Renat Fatkhullin 2013.01.21 15:36 #852 如果你不使用信号,下一次构建将非常少地要求使用信号。 这一点已经得到了纠正。 WindSW 2013.01.21 15:45 #853 Renat: 如果你不使用信号,下一次构建将非常少地要求使用信号。 这一点已经得到了纠正。 我认为这个答案不适合我。 WindSW 2013.01.21 15:50 #854 现在,当试图在图表上设置EA时,出现了一个技术错误。应将错误的细节发送到哪里? Andrew Petras 2013.01.21 15:56 #855 WindSW: 为什么ArrayResize=0?而且看起来ArrayInitialize 应该加在它前面。Иdouble H循环中每次都要初始化吗?在函数之前声明它。更新并仔细检查圆括号,我缺少一个}在CreateLevels WindSW 2013.01.21 16:12 #856 Silent:为什么ArrayResize=0? 归零阵列High[] Andrew Petras 2013.01.21 16:30 #857 WindSW: 归零阵列High[] 不,你把它的大小设置为0。 WindSW 2013.01.21 16:38 #858 Silent: 不,你把它的大小设置为0。 信息是否保持在0大小?重置的正确方法是什么? Andrew Petras 2013.01.21 16:50 #859 WindSW: 信息是否保持在0大小?如何正确进行调零?你把大小设置为零,然后把数组复制到那里。试试这个。void CreateLevels() { double High[]; ArrayResize(High,Candle); // размер = Candle ArrayInitialize(High,NULL); // инициализация нулем ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); double H; // вынес int j; // вынес for(j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { H=High[j]; } } } // скобки сразу парами ставьте, искать не прийдётся 更新纠正了代码,也是int j Andrew Petras 2013.01.21 16:55 #860 WindSW: 而在尺寸为0的情况下,信息会保持不变吗?而且,如果你杀了它,你可能会调用ArrayResize两次,用0,然后用正确的数组大小。它甚至可能会更快...虽然我不知道它在内存分配方面会是怎样的。 1...798081828384858687888990919293...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
打印ObjectCreate的结果,也许那里有一个错误。
谢谢你。我一定会检查,但要在解决了新问题之后。该EA工作了一段时间,现在已从图表中自动删除。我不能把它放回去,它说阵列已满。
蜡烛=1000。编译器没有在任何地方发誓,在调试器中也没有发生什么。请提出解决问题的方法
这一点已经得到了纠正。
如果你不使用信号,下一次构建将非常少地要求使用信号。
这一点已经得到了纠正。
为什么ArrayResize=0?
而且看起来ArrayInitialize 应该加在它前面。
И
double H
循环中每次都要初始化吗?
在函数之前声明它。
更新并仔细检查圆括号,我缺少一个}在
为什么ArrayResize=0?
归零阵列High[]
不,你把它的大小设置为0。
信息是否保持在0大小?如何正确进行调零?
你把大小设置为零,然后把数组复制到那里。
试试这个。
void CreateLevels() { double High[]; ArrayResize(High,Candle); // размер = Candle ArrayInitialize(High,NULL); // инициализация нулем ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); double H; // вынес int j; // вынес for(j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { H=High[j]; } } } // скобки сразу парами ставьте, искать не прийдётся
更新纠正了代码,也是int j而在尺寸为0的情况下,信息会保持不变吗?
而且,如果你杀了它,你可能会调用ArrayResize两次,用0,然后用正确的数组大小。
它甚至可能会更快...虽然我不知道它在内存分配方面会是怎样的。