新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 527 1...520521522523524525526527528529530531532533534...1953 新评论 Konstantin Erin 2018.04.12 07:40 #5261 novichok2018: 谢谢你!我理解这些惯例,我会考虑到它们。但要理解建议的脚本,唉,我对mcl4的了解还不够。对不起 :( 。我所有的实验都是用脚本完成的。在你的终端中运行该脚本。改变一些线条,或者把它扔掉。看看会发生什么 Corvin85 2018.04.12 09:01 #5262 我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。MQL pro告诉我,我在哪里犯了错误。 int limit=40000; double ArrayGreen[]; ArrayResize(ArrayGreen,limit); for (int i=0;i>=limit;i++) { ArrayGreen[i] =iCustom(NULL,0,"Kolier_SuperTrend_Indi",ATR_Period,ATR_Multiplier,0,1); } int max=ArrayMaximum(ArrayGreen,Quant,0); double iMaximum = ArrayGreen[max]; Print("Max = ",ArrayGreen[max]," at index=",max); double ArrayRad[]; ArrayResize(ArrayRad,limit); for (int i=0;i>=limit;i++) { ArrayRad[i] = iCustom(NULL,0,"Kolier_SuperTrend_Indi",ATR_Period,ATR_Multiplier,1,1); } int min=ArrayMinimum(ArrayRad,Quant_Bars,0); double iMinimum = ArrayRad[min]; Print("Min= ",ArrayRad[min]," at index=",min); Ihor Herasko 2018.04.12 11:51 #5263 Corvin85:我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。如果你是一个MQL专家,请告诉我我在哪里犯了错误。 变量极限的值大于零。因此,没有一个循环会运行。因此,ArrayGreen和ArrayRad将继续未被填补。 如果我们将极限值设置为零或更少,程序将循环到第一个循环。 因此,我们需要修改循环条件。最有可能的是,它应该这样做。 for (int i = 0; i < limit; i++) Alekseu Fedotov 2018.04.12 14:57 #5264 Corvin85:我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。我有一个很好的MQL专业人员,请告诉我哪里犯了错误。 另外,在iCustom(...........);最后传递的参数i for (int i=0;i<limit;i++) { ArrayGreen[i] =iCustom(NULL,0,"Kolier_SuperTrend_Indi",ATR_Period,ATR_Multiplier,0,i); } 类似这样的事情。 Corvin85 2018.04.12 15:57 #5265 谢谢你!它正在工作 YanSay 2018.04.13 12:53 #5266 下午好! 为了测试的方便,我想去掉启用和禁用条件的按钮,这样我就不必每次都进入代码,也不必把条件改成文本,这样就不会生效了。 换句话说,现在我是这样做的。 if ((Close[1]<=High[2])&&(Close[1]>=Low[2])&&(Open[1]<=High[2])&&(Open[1]>=Low[2])) { 像这样把它关掉。 //if ((Close[1]<=High[2])&&(Close[1]>=Low[2])&&(Open[1]<=High[2])&&(Open[1]>=Low[2])) //{ 试着把启用和禁用拉到输入bool Y=True;(其中Y是条件)的设置中,把Y分配给条件,如果条件起作用或不起作用,通过else if分出分支。但有些事情没有成功。 你能建议在这种情况下如何进行吗? Vitaly Muzichenko 2018.04.13 12:56 #5267 YanSay:下午好! 为了测试的方便,我想去掉启用和禁用条件的按钮,这样我就不必每次都进入代码,也不必把条件改成文本,这样就不会生效了。 换句话说,现在我是这样做的。 像这样把它关掉。 试着把启用和禁用拉到输入bool Y=True;(其中Y是条件)的设置中,把Y分配给条件,如果条件起作用或不起作用,通过else if分出分支。但有些事情没有成功。 请告诉我们在这种情况下该怎么做?人们可以做以下工作 input bool FLAG =True; if (FLAG && (Close[1]<=High[2])&&(Close[1]>=Low[2])&&(Open[1]<=High[2])&&(Open[1]>=Low[2])) { YanSay 2018.04.13 13:27 #5268 Vitaly Muzichenko:你可以这样做。 原因是该算法忽略了False条件,并继续进行下一个条件。 input bool FLAG =False; 算法将不会进一步发展,而当代码为False时,它应该忽略这个条件,并进入下一个条件。 在我的情况下,唯一的选择是指定2个分支? input bool FLAG =True; if (FLAG=True) {(Close[1]<=High[2])&&(Close[1]>=Low[2])&&(Open[1]<=High[2])&&(Open[1]>=Low[2])) {//следующие условия } } if (FLAG=False) {//следующие условия } 还是有一个更简单的方法? Vitaly Muzichenko 2018.04.13 13:38 #5269 YanSay:在你的版本中,事实证明,如果值 算法将不会进一步发展,而如果这个条件是假的,它应该忽略这个条件,并进入下一个条件。 在我的情况下,唯一的选择是写两个分支? 还是有一个更简单的方法?//+------------------------------------------------------------------+ input bool FLAG =True; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(FLAG) { if(Close[1]<=High[2]) && (Close[1]>=Low[2]) && (Open[1]<=High[2]) && (Open[1]>=Low[2]) //... } else { //следующие условия } //+------------------------------------------------------------------+ Alexey Viktorov 2018.04.13 13:54 #5270 YanSay:在你的变体中,事实证明,如果值 算法将不会进一步发展,而如果这个条件是假的,它应该忽略这个条件,并进入下一个条件。 在我的情况下,唯一的选择是写两个分支? 还是有一个更简单的方法?只有这种方式 if(!FLAG || (Close[1]<=High[2] && Close[1]>=Low[2] && Open[1]<=High[2] && Open[1]>=Low[2])) 1...520521522523524525526527528529530531532533534...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我所有的实验都是用脚本完成的。在你的终端中运行该脚本。改变一些线条,或者把它扔掉。看看会发生什么
我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。MQL pro告诉我,我在哪里犯了错误。
我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。如果你是一个MQL专家,请告诉我我在哪里犯了错误。
变量极限的值大于零。因此,没有一个循环会运行。因此,ArrayGreen和ArrayRad将继续未被填补。
如果我们将极限值设置为零或更少,程序将循环到第一个循环。
因此,我们需要修改循环条件。最有可能的是,它应该这样做。
我想找到指标数据的最小最大值,我已经做了 "一切按照手册",但感觉指标数据没有被写入数组。我有一个很好的MQL专业人员,请告诉我哪里犯了错误。
另外,在iCustom(...........);最后传递的参数i
类似这样的事情。
下午好!
为了测试的方便,我想去掉启用和禁用条件的按钮,这样我就不必每次都进入代码,也不必把条件改成文本,这样就不会生效了。
换句话说,现在我是这样做的。
像这样把它关掉。
试着把启用和禁用拉到输入bool Y=True;(其中Y是条件)的设置中,把Y分配给条件,如果条件起作用或不起作用,通过else if分出分支。但有些事情没有成功。
你能建议在这种情况下如何进行吗?
下午好!
为了测试的方便,我想去掉启用和禁用条件的按钮,这样我就不必每次都进入代码,也不必把条件改成文本,这样就不会生效了。
换句话说,现在我是这样做的。
像这样把它关掉。
试着把启用和禁用拉到输入bool Y=True;(其中Y是条件)的设置中,把Y分配给条件,如果条件起作用或不起作用,通过else if分出分支。但有些事情没有成功。
请告诉我们在这种情况下该怎么做?
人们可以做以下工作
你可以这样做。
原因是该算法忽略了False条件,并继续进行下一个条件。
算法将不会进一步发展,而当代码为False时,它应该忽略这个条件,并进入下一个条件。
在我的情况下,唯一的选择是指定2个分支?
还是有一个更简单的方法?
在你的版本中,事实证明,如果值
算法将不会进一步发展,而如果这个条件是假的,它应该忽略这个条件,并进入下一个条件。
在我的情况下,唯一的选择是写两个分支?
还是有一个更简单的方法?
在你的变体中,事实证明,如果值
算法将不会进一步发展,而如果这个条件是假的,它应该忽略这个条件,并进入下一个条件。
在我的情况下,唯一的选择是写两个分支?
还是有一个更简单的方法?
只有这种方式