新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1097 1...109010911092109310941095109610971098109911001101110211031104...1953 新评论 Alexandr Sokolov 2020.03.20 20:08 #10961 Seric29: 一个指向函数的指针被作为参数传递。我看到没有人想出如何用类来做这件事。我也还是不明白为什么要返回一个指向类的指针。 这里有一些有趣的样本,但它们与我的问题无关。 我也在指南中看到过类似的东西,但我已经关闭了这些网站,因为我的手受伤了,我还有工作要做。 我为什么要用这么奇怪的方式来玩弄这么简单的任务呢?你可以简单地通过一个类对象获得所需的数据 我熟悉引用、指针和函数指针,但我在实践中很少使用它们。一般来说,我认为它们只是为了节省内存--带指标的专家顾问系统不是游戏,所以我们可以在全局范围 内用普通变量和类对象进行管理。 Seric29 2020.03.20 20:14 #10962 Alexandr Sokolov: 如此简单的任务,为何要如此大费周章?你可以简单地通过一个类对象获得所需的数据 我熟悉引用、指针和函数的指针,但我很少使用它们。在我看来,它们只是为了节省内存而必须的,带指标的专家顾问不是游戏,因此,我们可以在全局范围 内使用普通变量和类对象。 我不想在一个简单的任务上弄得花里胡哨,当然,我也会修改我的程序,在以前调用函数的地方,我写一个算术表达式来简化计算,或者切换到一个简化的重载函数,所以我想把程序翻译成类。但正如你上面写的,而且很少使用它们,现在的问题是类是有的,但创建指向这个类的函数的指针是不可能的,为什么需要这种编程,如果你做了一个就不能做另一个,这不是编程,而是鬼知道什么。 Alexandr Sokolov 2020.03.20 22:38 #10963 Seric29: 我不想在一个简单的任务上弄得花里胡哨,当然我也会重做我的程序,以前是调用一个函数,我写一个算术表达式来简化计算,或者切换到一个简化的重载函数,所以我想把程序翻译成类。但正如你上面写的那样,很少使用它们,现在的问题是类是存在的,但创建指向这个类的函数的指针是不可能的,为什么需要这种编程,如果你做了一个,你就不能做另一个,这不是编程,而是鬼知道什么。 一个类是某个对象的模板,为了使用这个模板中的功能--你必须先创建一个对象。 实质上,类名就像一个数据类型,像int、double、string等,但有扩展功能。你不能在没有指定其类型的情况下声明一个变量。 在此基础上,你可以简单地将函数从类中分离出来,它可以在类中使用,也可以从类中分离出来,而不需要创建一个对象。 Alexandr Sokolov 2020.03.21 10:19 #10964 除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作) Seric29 2020.03.21 11:05 #10965 Alexandr Sokolov: 类是某个对象的模板,为了使用这个模板中的功能,你必须先创建一个对象。 事实上,类名就像一个数据类型,像int、double、string等,但有扩展功能。你不能在没有指定其类型的情况下声明一个变量。 在此基础上,你可以简单地将函数从类中分离出来,它可以在类中使用,也可以从类中分离出来,而不需要创建一个对象。 除非。好吧,只是类是一个复杂的话题,参考书上有很多关于转移的例子,关于创建引用和指针,我认为这是可能的(至少在c++中是可能的,但mql4与c++无关),有必要了解它的工作原理。帮助显示了这些例子,它们非常复杂和超载,而不是上一堂课,显示一个简单的例子,他们用额外的计算和信息超载,我无法理解他们的意思,我关闭了所有这些链接,因为疲惫和疲倦。 好吧,那我就从班上抽出函数。 [删除] 2020.03.21 11:46 #10966 Alexandr Sokolov: 除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作) 从市场上? Igor Makanu 2020.03.21 11:48 #10967 Alexandr Sokolov: 除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中却不工作) 在终端和专家顾问日志中看到信息 你的截图只显示该指标没有源代码 Tretyakov Rostyslav 2020.03.21 11:56 #10968 Alexandr Sokolov: 除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作) 也许它需要额外的库 Alexandr Sokolov 2020.03.21 12:45 #10969 Сергей Таболин: 从市场上? 没有 伊戈尔-马卡努。 看到终端和专家顾问日志中的信息 你的截图只显示了这个指标没有来源 谢谢你 MakarFX。 也许它需要额外的库 完全没有,是我写的--我知道 Grigori.S.B 2020.03.22 09:02 #10970 请告诉我为什么编译器在下面的MQL4测试脚本代码中会产生警告。 #property strict struct st_sig { string sym; // Symbol int age; // Bars ago }; st_sig Signals[]; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { BubbleSort(Signals); } //+----------------------------------------------------------------------------+ void BubbleSort(st_sig &sig[]) { double t; int i, j, n=ArraySize(sig); for (i=n-1; i>0; i--) { for (j=0; j<i; j++) { if (sig[j].age>sig[j+1].age) { t=sig[j].age; sig[j].age=sig[j+1].age; sig[j+1].age=t; // Line#27 with warning } } } } 第27行有一个关于数据类型不匹配的警告。两个变量都有相同的int类型。下面是一个脚本编译的截图。 如果我把第27行改为 sig[j+1].age=(int)t; 警告没有显示出来。 有什么诀窍吗? 1...109010911092109310941095109610971098109911001101110211031104...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一个指向函数的指针被作为参数传递。我看到没有人想出如何用类来做这件事。我也还是不明白为什么要返回一个指向类的指针。
这里有一些有趣的样本,但它们与我的问题无关。
我也在指南中看到过类似的东西,但我已经关闭了这些网站,因为我的手受伤了,我还有工作要做。我为什么要用这么奇怪的方式来玩弄这么简单的任务呢?你可以简单地通过一个类对象获得所需的数据
我熟悉引用、指针和函数指针,但我在实践中很少使用它们。一般来说,我认为它们只是为了节省内存--带指标的专家顾问系统不是游戏,所以我们可以在全局范围 内用普通变量和类对象进行管理。
如此简单的任务,为何要如此大费周章?你可以简单地通过一个类对象获得所需的数据
我熟悉引用、指针和函数的指针,但我很少使用它们。在我看来,它们只是为了节省内存而必须的,带指标的专家顾问不是游戏,因此,我们可以在全局范围 内使用普通变量和类对象。
我不想在一个简单的任务上弄得花里胡哨,当然,我也会修改我的程序,在以前调用函数的地方,我写一个算术表达式来简化计算,或者切换到一个简化的重载函数,所以我想把程序翻译成类。但正如你上面写的,而且很少使用它们,现在的问题是类是有的,但创建指向这个类的函数的指针是不可能的,为什么需要这种编程,如果你做了一个就不能做另一个,这不是编程,而是鬼知道什么。
我不想在一个简单的任务上弄得花里胡哨,当然我也会重做我的程序,以前是调用一个函数,我写一个算术表达式来简化计算,或者切换到一个简化的重载函数,所以我想把程序翻译成类。但正如你上面写的那样,很少使用它们,现在的问题是类是存在的,但创建指向这个类的函数的指针是不可能的,为什么需要这种编程,如果你做了一个,你就不能做另一个,这不是编程,而是鬼知道什么。
一个类是某个对象的模板,为了使用这个模板中的功能--你必须先创建一个对象。
实质上,类名就像一个数据类型,像int、double、string等,但有扩展功能。你不能在没有指定其类型的情况下声明一个变量。
在此基础上,你可以简单地将函数从类中分离出来,它可以在类中使用,也可以从类中分离出来,而不需要创建一个对象。
除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作)
类是某个对象的模板,为了使用这个模板中的功能,你必须先创建一个对象。
事实上,类名就像一个数据类型,像int、double、string等,但有扩展功能。你不能在没有指定其类型的情况下声明一个变量。
在此基础上,你可以简单地将函数从类中分离出来,它可以在类中使用,也可以从类中分离出来,而不需要创建一个对象。
除非。好吧,只是类是一个复杂的话题,参考书上有很多关于转移的例子,关于创建引用和指针,我认为这是可能的(至少在c++中是可能的,但mql4与c++无关),有必要了解它的工作原理。帮助显示了这些例子,它们非常复杂和超载,而不是上一堂课,显示一个简单的例子,他们用额外的计算和信息超载,我无法理解他们的意思,我关闭了所有这些链接,因为疲惫和疲倦。 好吧,那我就从班上抽出函数。
除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作)
从市场上?
除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中却不工作)
在终端和专家顾问日志中看到信息
你的截图只显示该指标没有源代码
除了其文件从相应的文件夹中被删除外,还能有什么其他原因导致该指标不能工作? (该指标已被编译并在一个终端中工作,但在另一个终端中不工作)
从市场上?
没有
看到终端和专家顾问日志中的信息
你的截图只显示了这个指标没有来源
谢谢你
也许它需要额外的库
完全没有,是我写的--我知道
请告诉我为什么编译器在下面的MQL4测试脚本代码中会产生警告。
第27行有一个关于数据类型不匹配的警告。两个变量都有相同的int类型。下面是一个脚本编译的截图。
如果我把第27行改为
警告没有显示出来。
有什么诀窍吗?