从专业人员到超级专业人员的任何问题 - 1。 - 页 20 1...131415161718192021222324252627...45 新评论 Alexey Subbotin 2011.04.16 18:53 #191 鉴于。 在EA的init()函数中,一个MQL PSP发生器被初始化:MathSrand(..)。当终端启动时,几个(为清楚起见,让我们说三个)专家顾问的副本从模板加载。加载速度很快,所以很有可能(而且几乎总是这样),TimeLocal() 和TimeCurrent()函数 在所有副本中返回相同的值。 问题。 有什么诀窍可以让PRNG在不同的EA副本中初始化不同的数字?换句话说,从哪里(以最小的编程努力)获得随机性的元素? --- 2011.04.16 19:16 #192 alsu:鉴于。在EA的init()函数中,一个MQL PSP发生器被初始化:MathSrand(..)。当终端启动时,几个(为清楚起见,让我们说三个)专家顾问的副本从模板加载。加载速度很快,所以很有可能(而且几乎总是这样),TimeLocal()和TimeCurrent()函数在所有副本中返回相同的值。问题。有什么诀窍可以让PRNG在不同的EA副本中初始化不同的数字?换句话说,从哪里(以最小的编程努力)获得随机性的元素?GetTickCount? Alexey Subbotin 2011.04.16 19:41 #193 sergeev: GetTickCount ? 可能有用,但不确定... 对一个程序来说,一毫秒可能是一个永恒的时间)。 --- 2011.04.16 19:43 #194 alsu: 可能有用,但不确定... 选项2--使用全局变量 来创建 "信号",依次初始化EA。 Alexey Subbotin 2011.04.16 20:22 #195 sergeev: 选项2--使用全局变量来创建 "信号",依次初始化专家。 这就更接近主题了,谢谢。 --- 2011.05.15 17:47 #196 关于在mql中从dll中获取行的问题。 函数mysql_fetch_row 来自libmysql.dll,返回类型MYSQL_ROW 该类型定义为: typedef char** MYSQL_ROW 我怎样才能得到这个返回的字符串数组? Vadim Zhunko 2011.05.15 18:23 #197 阵列的尺寸 是已知的吗? --- 2011.05.15 18:24 #198 Zhunko: 阵列的尺寸是已知的吗? 是的,行数是已知的。 但每行的长度不是。 在那个链接 的例子中还有一件事--得到一个*lengths的指针。 原来也是一个阵列...但如何到达它... 无符号长 *lengths;lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int)lengths[i], row[i] ?row[i] : "NULL"); } }下面是你在MQL中得到的东西,当你把mysql_fetch_row 的结果传递给字符串时 p0ƒu0ƒ;1;a 其中 p0ƒu0ƒ是字符串的地址(8字节)。 ;1;a是其可用的数据 但如果你把它设为int,那么地址就不是p0ƒ,而是42152040。 Vadim Zhunko 2011.05.15 19:12 #199 declspec (dllexport) char* WINAPI Func(const char* szBufString, const int nSizeBuf) { MYSQL_ROW aszString; memcpy_s(szBufString, nSizeBuf + 1, aszString[номер ячейки], strlen(aszString[номер ячейки])); return(szBufString); } 如果字符串的指针在程序运行时没有变化,你可以返回字符串的指针,而不把它复制到缓冲区。 declspec (dllexport) char* WINAPI Func() { MYSQL_ROW aszString; return(aszString[номер ячейки]); } --- 2011.05.15 19:15 #200 那么,在MQL中就没有办法做到这一点吗? 甚至MQL5也不行? Zhunko: 如果字符串的指针在程序运行时没有变化,你可以返回字符串的指针,而不把它复制到缓冲区。 简单 return aszString[номер ячейки] 1...131415161718192021222324252627...45 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
鉴于。
在EA的init()函数中,一个MQL PSP发生器被初始化:MathSrand(..)。当终端启动时,几个(为清楚起见,让我们说三个)专家顾问的副本从模板加载。加载速度很快,所以很有可能(而且几乎总是这样),TimeLocal() 和TimeCurrent()函数 在所有副本中返回相同的值。
问题。
有什么诀窍可以让PRNG在不同的EA副本中初始化不同的数字?换句话说,从哪里(以最小的编程努力)获得随机性的元素?
鉴于。
在EA的init()函数中,一个MQL PSP发生器被初始化:MathSrand(..)。当终端启动时,几个(为清楚起见,让我们说三个)专家顾问的副本从模板加载。加载速度很快,所以很有可能(而且几乎总是这样),TimeLocal()和TimeCurrent()函数在所有副本中返回相同的值。
问题。
有什么诀窍可以让PRNG在不同的EA副本中初始化不同的数字?换句话说,从哪里(以最小的编程努力)获得随机性的元素?
GetTickCount ?
可能有用,但不确定...
对一个程序来说,一毫秒可能是一个永恒的时间)。
可能有用,但不确定...
选项2--使用全局变量来创建 "信号",依次初始化专家。
关于在mql中从dll中获取行的问题。
函数mysql_fetch_row 来自libmysql.dll,返回类型MYSQL_ROW
该类型定义为: typedef char** MYSQL_ROW
我怎样才能得到这个返回的字符串数组?
阵列的尺寸是已知的吗?
但每行的长度不是。
在那个链接 的例子中还有一件事--得到一个*lengths的指针。
原来也是一个阵列...但如何到达它...
无符号长 *lengths;lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int)lengths[i], row[i] ?row[i] : "NULL"); } }下面是你在MQL中得到的东西,当你把mysql_fetch_row 的结果传递给字符串时
p0ƒu0ƒ;1;a
其中
p0ƒu0ƒ是字符串的地址(8字节)。
;1;a是其可用的数据
但如果你把它设为int,那么地址就不是p0ƒ,而是42152040。
如果字符串的指针在程序运行时没有变化,你可以返回字符串的指针,而不把它复制到缓冲区。
那么,在MQL中就没有办法做到这一点吗? 甚至MQL5也不行?
如果字符串的指针在程序运行时没有变化,你可以返回字符串的指针,而不把它复制到缓冲区。
简单