新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1251 1...124412451246124712481249125012511252125312541255125612571258...1953 新评论 Fast235 2020.09.10 09:25 #12501 谁能建议一个方案,如何从这样的数组中获得 int array[15]= {0,0,5,5,5,1,9,9,9,0,2,2,1,0,0}; 得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。 需要得到的类型 value1=9。 value2=5。 或数组value[]={9,5}。 我一直在思索,而做了两天,无法弄清这个计划。 Igor Makanu 2020.09.10 09:51 #12502 Fast235:谁能建议一个方案,如何从这样的一个数组中获得得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。需要得到的类型value1=9。value2=5。或数组value[]={9,5}。第二天,我搞不清楚while do方案。 勾勒出了它的轮廓,但它正面解决了这个问题,它在总体上是可行的,但不喜欢我的解决方案。 //+------------------------------------------------------------------+ void OnStart() { int array[15] = {0, 0, 5, 5, 5, 1, 9, 9, 9, 0, 2, 2, 1, 0, 0}; int arrrepeat[]; getRepeatNumbers(array, arrrepeat); ArrayPrint(arrrepeat); } //+------------------------------------------------------------------+ void getRepeatNumbers(const int &inArr[], int &result[]) { ArrayFree(result); for(int i = 0; i < ArraySize(inArr) - 1; i++) { if(getRepeatCount(inArr, i) > 1) { int sz = ArraySize(result); ArrayResize(result, sz + 1); result[sz] = inArr[i]; } } } //+------------------------------------------------------------------+ int getRepeatCount(const int &arr[], const int pos) { int result = 0; for(int i = pos + 1; i < ArraySize(arr) - 1 && arr[i] == arr[pos]; i++) { result++; } return(result); } //+------------------------------------------------------------------+ 2020.09.10 11:51:26.323 tst (EURUSD,M5) 5 9 Fast235 2020.09.10 10:01 #12503 Igor Makanu:勾勒出来的,但正面决定,一般来说是可行的,但不喜欢我的解决方案。 2020.09.10 11:51:26.323 tst (EURUSD,M5) 5 9 谢谢,行动太多 我想在循环中找到一个解决方案,我将尝试使用continue;和break;操作符 它必须在每一个新的条形图上从指标缓冲区中取出 prev_calculat-100 大约 Igor Makanu 2020.09.10 10:15 #12504 Fast235:谢谢,行动太多我想在循环中找到一个解决方案。 我将尝试使用continue;和break;操作符它必须在每个新条目的prev_calculat-100左右从指标缓冲区中提取。 它并不繁琐,我不喜欢它,因为我没有寻找其他的变体--我总是这样做。 将第二个函数的循环.... 到第一个函数的主体中。身体上的努力会减少 无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;) Fast235 2020.09.10 10:41 #12505 Igor Makanu:不繁琐,不喜欢,因为我没有寻找其他的选择--我总是这样做的将第二个函数的循环引入第一个函数的主体....。身体上的努力会减少无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;) 我试着弄一下,如果我弄好了,我就写。 Vladimir Simakov 2020.09.10 10:56 #12506 Fast235:我给它一个机会,让你知道它是否有效。 一下子就解决了))))。 Fast235 2020.09.10 14:10 #12507 Igor Makanu:不繁琐,不喜欢,因为我没有寻找其他的选择--我总是这样做的将第二个函数的循环引入第一个函数的主体....。身体上的努力会减少无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;) 错误,如果队列中有四个 "9",而不是三个,结果将是 5 9 9 2 Igor Makanu 2020.09.10 14:31 #12508 Fast235:错误,如果队列中有四个 "9 "而不是三个,结果是5 9 9 2 我告诉你,我不喜欢我的解决方案(())。 太懒了,不想再写了。 谷歌 "阵列查找重复"--我想你会找到一些东西的 Maxim Kuznetsov 2020.09.10 14:33 #12509 Fast235:谁能建议一个方案,如何从这样的一个数组中获得得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。需要得到的类型value1=9。value2=5。或数组value[]={9,5}。我不知道第二天的计划是什么? int qty[10]; // счётчики по цифрам int total; // всего элементов в исходном массиве arr[] int code=arr[0]; // текущая цифра int count=1; // кол-во повторов for(int i=1;i<total;i++) { if (arr[i]!=code) { if (count>qty[code]) qty[code]=count; code=arr[i]; count=1;} else count++; } if (count>qty[code]) qty[code]=count; /// в массиве qty - требуемое 增加对元素arr[]的允许性的检查(它们是数字),以提高品味。 Any questions from newcomers MQL4 Learning While one currency has ANDREY 2020.09.10 15:19 #12510 大家好! 我正在MT-4测试器中使用mql4测试该算法。我需要Print()函数来输出小数点后5位的买入价。但它只能打印出4(四)个小数位。我使用NormalizeDouble(Bid,Digits) 函数来增加第五位数字。 如果我的错误存在,请告诉我如何纠正。 以下是我的代码。 空白的OnTick() { Print("=======Bid ======= ",NormalizeDouble(Bid,Digits))。 } 同时,如果我打印()一个订单的开盘价和收盘价(通过SL和TP),Print()打印的价格是5(5)位,即使没有NormalizeDouble() 的 帮助,也没有任何其他函数的帮助。 谢谢大家的帮助。 1...124412451246124712481249125012511252125312541255125612571258...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谁能建议一个方案,如何从这样的数组中获得
得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。
需要得到的类型
value1=9。
value2=5。
或数组value[]={9,5}。
我一直在思索,而做了两天,无法弄清这个计划。
谁能建议一个方案,如何从这样的一个数组中获得
得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。
需要得到的类型
value1=9。
value2=5。
或数组value[]={9,5}。
第二天,我搞不清楚while do方案。
勾勒出了它的轮廓,但它正面解决了这个问题,它在总体上是可行的,但不喜欢我的解决方案。
2020.09.10 11:51:26.323 tst (EURUSD,M5) 5 9
勾勒出来的,但正面决定,一般来说是可行的,但不喜欢我的解决方案。
2020.09.10 11:51:26.323 tst (EURUSD,M5) 5 9
谢谢,行动太多
我想在循环中找到一个解决方案,我将尝试使用continue;和break;操作符
它必须在每一个新的条形图上从指标缓冲区中取出 prev_calculat-100 大约
谢谢,行动太多
我想在循环中找到一个解决方案。 我将尝试使用continue;和break;操作符
它必须在每个新条目的prev_calculat-100左右从指标缓冲区中提取。
它并不繁琐,我不喜欢它,因为我没有寻找其他的变体--我总是这样做。
将第二个函数的循环.... 到第一个函数的主体中。身体上的努力会减少
无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;)
不繁琐,不喜欢,因为我没有寻找其他的选择--我总是这样做的
将第二个函数的循环引入第一个函数的主体....。身体上的努力会减少
无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;)
我试着弄一下,如果我弄好了,我就写。
我给它一个机会,让你知道它是否有效。
不繁琐,不喜欢,因为我没有寻找其他的选择--我总是这样做的
将第二个函数的循环引入第一个函数的主体....。身体上的努力会减少
无论有无断裂 - 这个问题将在2个循环中得到解决,反正....。但这并不准确!- 决定;)
错误,如果队列中有四个 "9",而不是三个,结果将是
5 9 9 2
错误,如果队列中有四个 "9 "而不是三个,结果是
5 9 9 2
我告诉你,我不喜欢我的解决方案(())。
太懒了,不想再写了。
谷歌 "阵列查找重复"--我想你会找到一些东西的
谁能建议一个方案,如何从这样的一个数组中获得
得到数组中3个或3个以上的数字,即 "5 "和 "9 "的值。
需要得到的类型
value1=9。
value2=5。
或数组value[]={9,5}。
我不知道第二天的计划是什么?
int qty[10]; // счётчики по цифрам
int total; // всего элементов в исходном массиве arr[]
int code=arr[0]; // текущая цифра
int count=1; // кол-во повторов
for(int i=1;i<total;i++) {
if (arr[i]!=code) { if (count>qty[code]) qty[code]=count; code=arr[i]; count=1;}
else count++;
}
if (count>qty[code]) qty[code]=count;
/// в массиве qty - требуемое
增加对元素arr[]的允许性的检查(它们是数字),以提高品味。
大家好!
我正在MT-4测试器中使用mql4测试该算法。我需要Print()函数来输出小数点后5位的买入价。但它只能打印出4(四)个小数位。我使用NormalizeDouble(Bid,Digits) 函数来增加第五位数字。
如果我的错误存在,请告诉我如何纠正。
以下是我的代码。
}
同时,如果我打印()一个订单的开盘价和收盘价(通过SL和TP),Print()打印的价格是5(5)位,即使没有NormalizeDouble() 的 帮助,也没有任何其他函数的帮助。
谢谢大家的帮助。