任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 9 12345678910111213141516...1178 新评论 i999i 2013.06.22 08:14 #81 gyfto: 你可以写if((b-a)*(c-a)*(d-a)>0),但不一定快。逻辑和是二进制乘法,它只是同一表达式的另一种符号,唯一的区别是变量类型的大小。a>b是一个布尔变量,4个字节,b-a,如果它们是双倍的,差值将是双倍的(8个字节),这个乘法至少是2倍的。无价的建议。 让我解释一下。你可以把你的表达式改写为if(((a>b)*(a>c)*(a>d)==1),因为括号里的表达式取值为0或1(而它们又在预编译器的define中被定义为false和true)。 谢谢--我想这将更快地发挥作用 Sergey Dymov 2013.06.22 08:27 #82 各位,请指教。在策略测试模式下,我无法改变优化属性中的数字。最低余额200最高利润10000等。问题是什么? Chiripaha 2013.06.22 09:27 #83 你能告诉我哪些值可以返回 init、start 和deinit,它们是什么意思?我试图在论坛中搜索,但没有找到。手册》中没有这方面的信息。很可能是机密信息。:)))(情感文字删除... )正如我所猜测的--"0"--一切都很顺利......但是,由于它们的类型是整数,显然可以有超过2个值......。 Vadim Zhunko 2013.06.22 09:40 #84 Chiripaha:你能告诉我哪些值可以返回 init、start 和deinit,它们是什么意思?我试图在论坛中搜索,但没有找到。手册》中没有这方面的信息。很可能是机密信息。:)))(情感文字删除... )正如我所猜测的--"0"--一切都很顺利......但是,由于它们的类型是interger,显然可以有超过2个值...... 这个问题最近已经讨论过了。参考资料。在MQL4中,有3个预定义名称的函数。 init() - 模块初始化时调用的函数。如果缺少它,在初始化过程中就不会调用任何函数。 start() - 主函数。它是在收到下一个tick后在Expert Advisors调用的。对于自定义指标,在指标连接到图表后的重新计算过程中,当客户终端被打开时(如果指标连接到图表上),以及在下一个tick出现后,都会调用该指标。在脚本中,它在附加到图表和初始化后立即执行。如果模块中没有start()函数,这个模块(专家顾问、脚本或自定义指标)就不能被启动。 deinit() - 模块去初始化时调用的函数。如果它不存在,在去初始化过程中就不会调用任何函数。 预定义函数可以有参数。然而,当这些函数被客户终端调用时,将不会从外部传递任何参数,而是使用默认值。 根据一般规则,start()、init()和deinit()函数可以从模块的任何地方调用,其他函数也是如此。 从init()函数中调用start()或交易是不可取的,因为在模块初始化的时候,图表数据、市场价格等可能还没有准备好。init()和deinit()函数应该尽快终止它们的工作,并且在任何情况下都不能在start()函数被调用之前,试图开始全面运行。 对于系统调用,返回值并不重要。 Chiripaha 2013.06.22 10:33 #85 好吧,那我就试着澄清一下这个问题。例如,我想在初始化阶段检查一些参数,并根据结果:是否传递到启动阶段。如果我对你的评论理解正确,Vadim,那么初始化结果将不重要(在这种情况下),函数Start将被启动? Рустам 2013.06.22 10:56 #86 那么你需要从一开始就调用init。你为什么要费尽心思?全局变量 还没有被取消... Vadim Zhunko 2013.06.22 11:04 #87 Chiripaha:好吧,那我就试着澄清一下这个问题。例如,我想在初始化阶段检查一些参数,并根据结果:是否传递到启动阶段。如果我对你的评论理解正确的话,Vadim,初始化的结果就不重要了(在这种情况下),Start函数将被启动?鲁斯塔姆回答说。常见问题: 那么你必须自己从头开始调用init。为什么会出现这样的复杂情况?还没有人取消全局变量... 你声明全局变量并根据需要初始化它们。同一模块中的所有函数都可以看到全局变量。 Chiripaha 2013.06.22 11:18 #88 Zhunko:鲁斯塔姆回答说。 你在全局范围内声明这些变量,并根据需要初始化它们。一个模块中的所有函数都可以看到全局变量。 是的,除非是限制访问 程序的检查,比如说。 Viktar Dzemikhau 2013.06.22 12:25 #89 FAQ:那么你需要从一开始就调用init。你为什么要费尽心思?全局变量还没有被取消... 用旗子来检查不是更容易吗?当然... Chiripaha 2013.06.22 14:28 #90 hoz: 用旗子来检查不是更容易吗?当然是全球... 不,这并不容易。因为如果有一个负标志(或一个全局变量),仍然需要运行检查。标志和全局变量都只在正面情况下起作用。而有些功能在开始时仍然需要(尽管,这里的情况不同)。无论你怎么看,反正都要开始:要么通过重做 "inite",这同样令人讨厌,要么通过重做所需的功能。 12345678910111213141516...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你可以写if((b-a)*(c-a)*(d-a)>0),但不一定快。逻辑和是二进制乘法,它只是同一表达式的另一种符号,唯一的区别是变量类型的大小。a>b是一个布尔变量,4个字节,b-a,如果它们是双倍的,差值将是双倍的(8个字节),这个乘法至少是2倍的。
无价的建议。
让我解释一下。你可以把你的表达式改写为if(((a>b)*(a>c)*(a>d)==1),因为括号里的表达式取值为0或1(而它们又在预编译器的define中被定义为false和true)。谢谢--我想这将更快地发挥作用
各位,请指教。
在策略测试模式下,我无法改变优化属性中的数字。
最低余额200
最高利润10000
等。
问题是什么?
你能告诉我哪些值可以返回 init、start 和deinit,它们是什么意思?
我试图在论坛中搜索,但没有找到。手册》中没有这方面的信息。很可能是机密信息。:)))(情感文字删除... )
正如我所猜测的--"0"--一切都很顺利......但是,由于它们的类型是整数,显然可以有超过2个值......。
你能告诉我哪些值可以返回 init、start 和deinit,它们是什么意思?
我试图在论坛中搜索,但没有找到。手册》中没有这方面的信息。很可能是机密信息。:)))(情感文字删除... )
正如我所猜测的--"0"--一切都很顺利......但是,由于它们的类型是interger,显然可以有超过2个值......
这个问题最近已经讨论过了。参考资料。
在MQL4中,有3个预定义名称的函数。
init() - 模块初始化时调用的函数。如果缺少它,在初始化过程中就不会调用任何函数。
start() - 主函数。它是在收到下一个tick后在Expert Advisors调用的。对于自定义指标,在指标连接到图表后的重新计算过程中,当客户终端被打开时(如果指标连接到图表上),以及在下一个tick出现后,都会调用该指标。在脚本中,它在附加到图表和初始化后立即执行。如果模块中没有start()函数,这个模块(专家顾问、脚本或自定义指标)就不能被启动。
deinit() - 模块去初始化时调用的函数。如果它不存在,在去初始化过程中就不会调用任何函数。
预定义函数可以有参数。然而,当这些函数被客户终端调用时,将不会从外部传递任何参数,而是使用默认值。
根据一般规则,start()、init()和deinit()函数可以从模块的任何地方调用,其他函数也是如此。
从init()函数中调用start()或交易是不可取的,因为在模块初始化的时候,图表数据、市场价格等可能还没有准备好。init()和deinit()函数应该尽快终止它们的工作,并且在任何情况下都不能在start()函数被调用之前,试图开始全面运行。
好吧,那我就试着澄清一下这个问题。
例如,我想在初始化阶段检查一些参数,并根据结果:是否传递到启动阶段。
如果我对你的评论理解正确,Vadim,那么初始化结果将不重要(在这种情况下),函数Start将被启动?
那么你需要从一开始就调用init。
你为什么要费尽心思?全局变量 还没有被取消...
好吧,那我就试着澄清一下这个问题。
例如,我想在初始化阶段检查一些参数,并根据结果:是否传递到启动阶段。
如果我对你的评论理解正确的话,Vadim,初始化的结果就不重要了(在这种情况下),Start函数将被启动?
鲁斯塔姆回答说。
那么你必须自己从头开始调用init。
为什么会出现这样的复杂情况?还没有人取消全局变量...
鲁斯塔姆回答说。
你在全局范围内声明这些变量,并根据需要初始化它们。一个模块中的所有函数都可以看到全局变量。是的,除非是限制访问 程序的检查,比如说。
那么你需要从一开始就调用init。
你为什么要费尽心思?全局变量还没有被取消...
用旗子来检查不是更容易吗?当然...
用旗子来检查不是更容易吗?当然是全球...
不,这并不容易。因为如果有一个负标志(或一个全局变量),仍然需要运行检查。标志和全局变量都只在正面情况下起作用。而有些功能在开始时仍然需要(尽管,这里的情况不同)。
无论你怎么看,反正都要开始:要么通过重做 "inite",这同样令人讨厌,要么通过重做所需的功能。