初学者的问题 MQL5 MT5 MetaTrader 5 - 页 667

 
Leo59:
不幸的是,它没有工作。 init(); if(IsTradeAllowed())Print("交易被允许"); if(!IsTradeAllowed())Print("Trade is NOT allowed")。





上面写着:"交易授权 "

,一定有其他办法。如何?

像这样试试吧。

starttime=(int)TimeCurrent()+sec; // например +5 секунд. Эту строку в OnInit

if(TimeCurrent()>starttime) {
...
}

我认为原理很清楚,只要没有打勾,TimeCurrent 就不会改变。

 
Vitaly Muzichenko:

这样试试吧。

starttime=(int)TimeCurrent()+sec; // например +5 секунд

if(TimeCurrent()>starttime) {
...
}

我认为原理很清楚,只要没有打勾,TimeCurrent 就不会改变。

是的,对外汇来说,这很好,因为虱子经常来。如果它不是用来做外汇的呢?
 
Leo59:
是的,对外汇来说,这很好,因为虱子经常来。如果不是为了外汇,怎么办?
重点是,在初始化过程中,变量 "starttime"将比服务器时间 长几秒钟。因此,当市场开盘时出现了ticks,那么TimeCurrent就会一直大于starttime,ticks也就无所谓了--条件已经满足,并将一直满足到下一次重新初始化,例如,通过切换时间段或重新加载终端
 
Vitaly Muzichenko:
问题是,在初始化过程中,"starttime"变量时间将比服务器时间长几秒钟。
我需要在第一个刻度线到来之前,现在就处理这些信息,以便在新的(第一个)刻度线到来时,一切都准备好了。
 
Leo59:
不是的。如果你不介意的话,现在就去看看 吧)。但是,这不是问题的关键。我需要现在就处理这些信息,在第一个刻度线到来之前,这样当新的(第一个)刻度线到来时,一切都准备好了。
我已经使用这个方法好几年了,但在没有蜱虫之前,我不需要处理任何东西。你需要另一个解决方案,我给你的链接应该是
 
Vitaly Muzichenko:
我已经用了好几年了,但只要没有虱子,我就不需要处理任何东西。你需要另一个解决方案,从你给的链接来看,应该是
你说得对,"starttime=(int)TimeCurrent()+sec;//比如+5秒",当然比 TimeCurrent()。我反应过度了,我的大脑似乎完全融化了 ))
我给的链接那里说只有TimeLocal(),但我想避免它。
 
Leo59:
你是对的,"starttime=(int)TimeCurrent()+sec;//比如说,+5秒",当然比 TimeCurrent()。我反应过度了,我的大脑似乎完全融化了 )) 这个链接只通向TimeLocal(),我想避免它。

根据不同的任务,你可以尝试使用TimeCurrent()+OnTimer()的组合,或TimeCurrent()+TimeGMT()+TimeGMTOffset()。

你可以用定时器做所有的条件,用TimeCurrent()做交易,有很多解决方案,但选择权在你个人的任务上。

 
Vitaly Muzichenko:

根据不同的任务,你可以尝试使用TimeCurrent()+OnTimer()的组合,或TimeCurrent()+TimeGMT()+TimeGMTOffset()。

你可以通过定时器执行所有的条件,并通过TimeCurrent()进行交易,有很多解决方案,但选择权在于你的个人任务。

而在我的问题中,如何应用OnTimer()?
 
Leo59:
而在我的问题中,如何应用OnTimer()?
保持抑制标志,直到一切都计算完毕,例如...
 
Artyom Trishkin:
保持不工作的标志,直到一切都计算完毕,例如...
Artyom,问题是关于如何以编程方式定义休息日而不求助于TimeLocal()。))