新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1169 1...116211631164116511661167116811691170117111721173117411751176...1953 新评论 kopeyka2 2020.06.06 11:22 #11681 Alexandr Sokolov:它没有进入计算阶段这里是初始化而这里是测试条件。谢谢你!!!!!))))),我是故意Tf=false的,......Forget。咦? 一切正常。 stepystr 2020.06.06 11:28 #11682 Alexey Viktorov: 首先,我们需要决定未来数组第二维中的数值数量。现在我们已经可以看到,元素的数量是不相等的。也许,我们应该取最大的1,然后用零或-1填充,例如,在剩下的额外的1的地方。而且,如果知道第一个维度,事先定义一下也无妨。然后在嵌套循环中取L1,将你需要的所有内容写入数组,然后外循环的第二次迭代将L2中的所有内容写入下一个索引,以此类推。 而且很正确的是,最好把它粘在一个结构里。 然后数组将能够在第一和第二维度上改变尺寸。也就是说,它将是一个一维数组中的一个一维数组。 谢谢你的矢量。 Alexey Viktorov 2020.06.07 09:43 #11683 stepystr: 谢谢你的矢量。 我突然得到一个命令,把参数写成一个字符串,用它来创建一个参数数组,也是比较有利的。我必须将理论转化为实践。好吧,我把我的任务扩展到你的任务。下面是一个使用结构的例子。只有在你的例子中,在数值列表的末尾,你需要删除分隔符";" /********************************************************************\ | 00.mq5 | | © 2020, Alexey Viktorov | | https://www.mql5.com/ru/users/alexeyvik/news | \********************************************************************/ #property copyright "© 2020, Alexey Viktorov" #property link "https://www.mql5.com/ru/users/alexeyvik/news" #property version "1.00" struct TEST { double s0[]; double s1[]; } test[2]; string L1 = "1.15110;1.14105;1.13240;1.12370;1.11640;1.11170;1.10655;1.09895;1.08850;1.07850;1.06475"; string L2 = "1.32130;1.31030;1.29860;1.29042;1.27985;1.25605;1.24725;1.23565;1.22505;1.20815;1.20115;1.18850;1.16690;1.14465"; /********************Script program start function*******************/ void OnStart() { String_to_Array(L1, test[0].s0); String_to_Array(L2, test[1].s1); ArrayPrint(test[0].s0); ArrayPrint(test[1].s1); }/******************************************************************/ /********************************************************************/ void String_to_Array(string str, double &array[]) { StringTrimRight(str); int index = INT_MAX; while(index > 0) { index = StringFind(str, ";"); int i = ArraySize(array); ArrayResize(array, i+1); array[i] = StringToDouble(StringSubstr(str, 0, index)); StringTrimLeft(str); str = StringSubstr(str, index+1); } };/*****************************************************************/ /*****************************End program****************************/ 附加的文件: 00.mq5 4 kb Igor Makanu 2020.06.07 10:01 #11684 Alexey Viktorov:我突然面临一个订单,在这个订单中,把参数写成一个字符串,用它来创建一个参数数组,也是比较有利的。我必须将理论转化为实践。好吧,我把我的任务扩展到你的任务。下面是一个使用结构的例子。只有在你的例子中,在数值列表的末尾,你需要删除分隔符";" struct TEST { double s0[]; double s1[]; } test[2]; string L1 = "1.15110;1.14105;1.13240;1.12370;1.11640;1.11170;1.10655;1.09895;1.08850;1.07850;1.06475"; string L2 = "1.32130;1.31030;1.29860;1.29042;1.27985;1.25605;1.24725;1.23565;1.22505;1.20815;1.20115;1.18850;1.16690;1.14465"; /********************Script program start function*******************/ void OnStart() { String_to_Array(L1, ';', test[0].s0); String_to_Array(L2, ';', test[1].s1); ArrayPrint(test[0].s0); ArrayPrint(test[1].s1); }/******************************************************************/ /********************************************************************/ void String_to_Array(const string str, const ushort separator, double &result[]) { string s_arr[]; if(StringSplit(str, separator, s_arr) <= 0) { ArrayResize(result, 0); Print(__FUNCTION__ + " Error converting !"); return; } ArrayResize(result, ArraySize(s_arr)); for(int i = ArraySize(result) - 1; i >= 0; i--) result[i] = StringToDouble(s_arr[i]); } Igor Makanu 2020.06.07 10:06 #11685 没有检查,你甚至可以像这样 void String_to_Array(const string str, const ushort separator, double &result[]) { string s_arr[]; StringSplit(str, separator, s_arr); for(int i = ArrayResize(result, ArraySize(s_arr)) - 1; i >= 0; i--) result[i] = StringToDouble(s_arr[i]); } Alexey Viktorov 2020.06.07 10:09 #11686 Igor Makanu: 也是一种选择。事实证明,我也没有读过所有的文档。 Igor Makanu 2020.06.07 10:22 #11687 Alexey Viktorov:也是一种选择。事实证明,我也没有阅读所有的文档。 StringSplit 是一个很酷的东西,非常方便解析划线的字符串。 Carcass77 2020.06.07 11:19 #11688 大家好。帮助我在代码中插入一个字符串 变量。谢谢你 ObjectCreate("ObjName11",OBJ_LABEL,0,0,0); ObjectSetText("ObjName11","|Direction: ="+ <String> +"|Spread: ="+IntegerToString(Spread,0)+"|Today: ="+DoubleToStr(ATRToday,2)+"%" ,Size,"Verdana",Red); ObjectSet("ObjName11",OBJPROP_CORNER,infoCorner); ObjectSet("ObjName11",OBJPROP_XDISTANCE,0); ObjectSet("ObjName11",OBJPROP_YDISTANCE,120); Igor Makanu 2020.06.07 11:46 #11689 Carcass77: 大家好。帮助我在代码中插入一个字符串类型的 变量。谢谢 你能回答你自己的问题吗? 还是你在什么地方剪掉了一段代码而不能使用它,你至少需要猜测一下发生了什么)))。 写在上面 string s; 并用s替换<String>。 但我不认为这是这种方法的出路。 Carcass77 2020.06.07 13:34 #11690 Igor Makanu:你能回答你自己的问题吗?还是你在什么地方剪掉了一段代码而不能使用它,你至少需要猜测一下发生了什么)))。写在上面并用s替换<String>。但我认为这不是这种方法的解决办法。 我的指标工作了,只是扩展了。字符串 s;已经被添加。 好的,我自己会去做。 1...116211631164116511661167116811691170117111721173117411751176...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它没有进入计算阶段
这里是初始化
而这里是测试条件。
谢谢你!!!!!))))),我是故意Tf=false的,......Forget。咦?
一切正常。首先,我们需要决定未来数组第二维中的数值数量。现在我们已经可以看到,元素的数量是不相等的。也许,我们应该取最大的1,然后用零或-1填充,例如,在剩下的额外的1的地方。而且,如果知道第一个维度,事先定义一下也无妨。然后在嵌套循环中取L1,将你需要的所有内容写入数组,然后外循环的第二次迭代将L2中的所有内容写入下一个索引,以此类推。
而且很正确的是,最好把它粘在一个结构里。
然后数组将能够在第一和第二维度上改变尺寸。也就是说,它将是一个一维数组中的一个一维数组。谢谢你的矢量。
我突然得到一个命令,把参数写成一个字符串,用它来创建一个参数数组,也是比较有利的。我必须将理论转化为实践。好吧,我把我的任务扩展到你的任务。下面是一个使用结构的例子。只有在你的例子中,在数值列表的末尾,你需要删除分隔符";"
我突然面临一个订单,在这个订单中,把参数写成一个字符串,用它来创建一个参数数组,也是比较有利的。我必须将理论转化为实践。好吧,我把我的任务扩展到你的任务。下面是一个使用结构的例子。只有在你的例子中,在数值列表的末尾,你需要删除分隔符";"
没有检查,你甚至可以像这样
也是一种选择。事实证明,我也没有读过所有的文档。
也是一种选择。事实证明,我也没有阅读所有的文档。
StringSplit 是一个很酷的东西,非常方便解析划线的字符串。
大家好。帮助我在代码中插入一个字符串类型的 变量。谢谢
你能回答你自己的问题吗?
还是你在什么地方剪掉了一段代码而不能使用它,你至少需要猜测一下发生了什么)))。
写在上面
string s;
并用s替换<String>。
但我不认为这是这种方法的出路。
你能回答你自己的问题吗?
还是你在什么地方剪掉了一段代码而不能使用它,你至少需要猜测一下发生了什么)))。
写在上面
并用s替换<String>。
但我认为这不是这种方法的解决办法。
我的指标工作了,只是扩展了。字符串 s;已经被添加。
好的,我自己会去做。