3.4.1 交易背景
MetaTrader为众多的expert advisor提供单一交易执行线程。也就是说,无论终端机上有多少位expert advisor定在进行操作,同一时间仅一位expert advisor可进行交易。进行任何交易之前,须检查目前交易执行线程是否在使用中。
如交易执行线程被占用,IsTradeContextBusy()功能会返回真(true),否则为假(false)。我们会在调用包括OrderSend()、OrderClose()、OrderDelete()或OrderModify()等任何交易功能之前调用此功能。
IsTradeContextBusy()检查交易执行程序源代码:


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