程序库: TradeTransactions - 页 5 12345678 新评论 fxsaber 2019.03.15 07:36 #41 fxsaber:程序库源码包含Convert.mqh,它可以快速将 一种类型的数组转换成另一种类型的数组。// 快速数组转换。 #include <fxsaber\TradeTransactions\Convert.mqh> //https://www.mql5.com/zh/code/22166 void OnStart() { MqlTick Ticks[]; MqlRates Rates[]; CopyRates(_Symbol, PERIOD_CURRENT, 0, 10, Rates); // 得到了报价。 CONVERT::ArrayToArray(Rates, Ticks); // Casting MqlRates[] -> MqlTick[]。 MqlRates Rates2[]; CONVERT::ArrayToArray(Ticks, Rates2); // 转换 MqlTick[] -> MqlRates[]。 ArrayPrint(Rates2); // 确保一切正确无误。 } Alain Verleyen 2019.03.26 23:03 #42 fxsaber :您可以通过资源交换任何东西。您声称下载了 Container2,但却没有使用它。从逻辑上讲,应该是这样的: // 获取原始数据 string Str2[]; Container2[0].Get(Str2); // 得到数组 ArrayPrint(Str2); PRINT(Container2[1].Get<double>()) // 我们得到了一个数字 PRINT(Container2[2].Get<MqlTick>().bid) // 我们得到了结构 当然,在你的例子中,结果是一样的。更重要的是,使用上述代码作为脚本,并从以下地址下载库我得到了 : 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2] 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = double 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() =MqlTick 2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stack overflow in '...\MQL5\Scripts\forum\R-277866Original.ex5'.? Libraries: TradeTransactions About no ticks generated 求助:发布EA时,提示错误 no trading operations fxsaber 2019.03.27 06:40 #43 Alain Verleyen: 你声称加载了 Container2,但却没有使用它。从逻辑上讲,应该是这样的: 是的,示例中有一个错字。 当然,在你的示例中,结果是一样的。 经过您的编辑,结果也是一样的。 更重要的是,使用上述代码作为脚本,并从我得到了 : 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2] 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = double 2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() =MqlTick 2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stack overflow in '...\MQL5\Scripts\forum\R-277866Original.ex5'.?没有源代码我什么也说不了。 Alain Verleyen 2019.03.27 12:40 #44 fxsaber :...没有源代码,我什么也说不出来。源代码正是你的代码。构建 2009。 附加的文件: R-277866Original.mq5 3 kb fxsaber 2019.03.27 18:00 #45 Alain Verleyen:您的代码才是源代码。构建 2009。 执行无误。 Oleksii Chepurnyi 2019.07.09 11:07 #46 下午好 我只是宣布 RESOURCEDATA<uchar> Res; 就出现了这样的错误 'Data' - struct undefined Convert.mqh 75 49 in template 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' specified with [SOURCE=uchar,TARGET=uint] Convert.mqh 60 14 'Data' - struct undefined Convert.mqh 43 38 in template 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' specified with [SOURCE=uchar,TARGET=uint] Convert.mqh 29 14 以前没有,我想是在更新了终端(build 2085)之后出现的。还是我哪里出错了?) fxsaber 2019.07.09 12:42 #47 Oleksii Chepurnyi:之前并不存在,我认为是在终端更新(构建 2085)后出现的。 本地化了这个编译器错误 template <typename T> struct A { T a; }; void f1() { struct B { int Data; }; A<B> Tmp; } void f2() { struct B { int Data; }; A<B> Tmp; Tmp.a.Data = 0; // '数据' - 结构未定义 } Oleksii Chepurnyi 2019.07.09 12:42 #48 我认为在更新终端 后, 。 是的,2037 中没有这样的错误。 fxsaber 2019.07.09 13:01 #49 Oleksii Chepurnyi:是的,2037 年没有这样的错误。 绕过这个错误,把Include\fxsaber\TradeTransactions\Convert.mqh 替换为附件中的那个。 附加的文件: Convert.mqh 4 kb Oleksii Chepurnyi 2019.07.09 13:59 #50 fxsaber:绕过该错误,将Include\fxsaber\TradeTransactions\Convert.mqh 替换为附件中的版本。 有效 )谢谢! 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
程序库源码包含Convert.mqh,它可以快速将 一种类型的数组转换成另一种类型的数组。
您可以通过资源交换任何东西。
您声称下载了 Container2,但却没有使用它。从逻辑上讲,应该是这样的:
// 获取原始数据 string Str2[]; Container2[0].Get(Str2); // 得到数组 ArrayPrint(Str2); PRINT(Container2[1].Get<double>()) // 我们得到了一个数字 PRINT(Container2[2].Get<MqlTick>().bid) // 我们得到了结构当然,在你的例子中,结果是一样的。更重要的是,使用上述代码作为脚本,并从以下地址下载库
我得到了 :
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2]
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = double
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() =MqlTick
2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stack overflow in '...\MQL5\Scripts\forum\R-277866Original.ex5'.
你声称加载了 Container2,但却没有使用它。从逻辑上讲,应该是这样的:
是的,示例中有一个错字。
当然,在你的示例中,结果是一样的。
经过您的编辑,结果也是一样的。
更重要的是,使用上述代码作为脚本,并从
我得到了 :
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2]
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = double
2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() =MqlTick
2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stack overflow in '...\MQL5\Scripts\forum\R-277866Original.ex5'.
没有源代码我什么也说不了。
...
没有源代码,我什么也说不出来。
源代码正是你的代码。构建 2009。
您的代码才是源代码。构建 2009。
执行无误。
下午好
我只是宣布
RESOURCEDATA<uchar> Res;就出现了这样的错误
以前没有,我想是在更新了终端(build 2085)之后出现的。还是我哪里出错了?)
之前并不存在,我认为是在终端更新(构建 2085)后出现的。
本地化了这个编译器错误
。
是的,2037 中没有这样的错误。
是的,2037 年没有这样的错误。
绕过这个错误,把Include\fxsaber\TradeTransactions\Convert.mqh 替换为附件中的那个。
绕过该错误,将Include\fxsaber\TradeTransactions\Convert.mqh 替换为附件中的版本。
有效 )谢谢!