3.4.1 交易背景

3.4.1 交易背景

MetaTrader为众多的expert advisor提供单一交易执行线程。也就是说,无论终端机上有多少位expert advisor正在进行操作,同一时间仅一位expert advisor可进行交易。进行任何交易之前,须检查目前交易执行线程是否在使用中。

如交易执行线程被占用, IsTradeContextBusy( )功能会返回真( true),否则为假(false)。我们会在调用包括OrderSend( )、OrderClose( )、OrderDelete( )或OrderModi句( )等任何交易功能之前调用此功能。

使用IsTradeContextBusy( )检查交易执行程序源代码:


我们用while回路来评估IsTradeContextBusy( )。功能如返回真(阳的,即表示目前交易执行线程被占用,expert advisor就会休眠10毫秒。只IsTradeContextBusy( )返回真,while回路就会继续执行。一旦交易线程释出,交易即开始。