externbool UseHourTrade = True,
UseHourTrade2 = True;
externint FromHourTrade = 0,
FromHourTrade2 = 0,
ToHourTrade = 23,
FromHourTrade2 = 23;
int start(){
if (UseHourTrade){
if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {
Comment("Time for trade has not come else!");
return(0);
}
if (UseHourTrade2){
if (!(Hour()>=FromHourTrade && Hour()<=FromHourTrade2)) {
Comment("Time for trade has not come else!");
return(0);
}
}
各位程序员。能否请你帮助我。
从输入变量来看。
外部 bool UseHourTrade = True;
extern int FromHourTrade = 0;
extern int ToHourTrade = 23;
int start(){
if (UseHourTrade){
if (! (Hour()>=FromHourTrade && Hour()<=ToHourTrade)){
Comment("交易时间还没到!");
return(0);
}
}
我想用其他变量UseHourTrade2, FromHourTrade2, ToHourTrade2来添加第二个交易时间段。
请帮助我。请告诉我应该在启动功能中加入什么。我已经尝试了很多东西,但都没有效果。
我想提前感谢你。我无能为力。
我想,类似这样的事情。
SZY代码插入 按钮 "SRC "使用起来很别扭,不容易阅读。
这个难题是这样的。
代码最末端的指标创建了一个对象,作为另一个指标的标志。
创建对象后,我需要让指标 "休眠 "5秒,然后删除对象并休眠60秒,之后它将进入最后一次重试,并从头开始新的刻度。
试图这样做
它一直挂着,直到它似乎耗尽了时间。
有什么诀窍可以做到这一点吗?
其逻辑是这样的--两个指标都知道对象的名称和一个额外的对象
第一个创建对象,如果它存在则不做任何事情--在开始的时候,我们写下退出条件(return;)。
第二个读取对象,执行其业务,并设置一个额外的对象
第一个,没有看到主要的对象,什么都不做,立即找到第二个(额外的对象),读取对象的创建时间(创建时由第二个组件在那里输入描述),倒数所需的暂停时间(60秒)并删除所有对象 - 你可以继续工作 ....
它在指标中不起作用。我不明白这样做的原因。显然,一个不断工作的指标一定是催眠的 :)
原因是指标在界面流程中工作,你不能让它休眠,因为如果你能 "让它慢下来",在那一刻你就不能按终端的任何按钮,例如 "新订单",或关闭一个订单,等等。
这个话题还有一个微妙之处,就是关于测试者。在真实的终端中,有几个线程,其中一个接口线程是为Expert Advisors单独创建的(这就是为什么它可以放慢速度而不产生后果),而在测试器中,它对所有的线程都是一样的,而且都是一个:)
这就是为什么Sleep()函数在测试模式 下以如此特殊的方式工作。如果你让测试器的流程进入睡眠状态,那么一切都将停止工作,当然包括专家顾问、指标和tick生成。因此,如果我正确地理解了你的想法,它只能在一个演示上进行测试。 如果你想放慢界面流程,你可以使用以下函数。
倒数所需的暂停时间(60秒)。
仔细阅读,我已经解释了一切,而且根本不需要使用图形对象,你可以用globals....。
原因是该指标在接口流中工作,它不能被置入睡眠状态...
就这样吧...现在变亮了,谢谢你。
男人,什么石头。不能把它放在一个指标里,不能把它放在睡觉的时候......我将尝试用全局变量 来做。
仔细阅读,我已经解释了一切,而且没有必要使用图形对象,你可以用globals....。
...我会试着用全局变量使它工作。
我认为Rustam的暗示是正确的,因为线程冻结是你最不应该做的事情,这是一种极端的措施,不仅是在MQL中,在所有的编程语言中都是如此。