为什么MT5可以交易期货?
如下图MT5 EA是通过调用mt5ctp.dll接口函数进行期货交易的。该DLL在MQL5\Libraries目录下。外汇EA只需要修改报单部分的程序即可使用在期货上面。
mt5ctp.dll封装了期货CTP核心API,在EA中通过调用该DLL的接口函数就可以使用相应的期货CTP API进行期货交易。该封装并没有做任何业务的改变,这样的好处是让开发者在编写EA策略时可以使用最底层的最原装的期货CTP API功能,开发者可以随心所欲的不受限制的使用期货CTP API实现不同的功能。
mt5ctp.dll的头文件mt5ctp.mqh在MQL5\Include目录下。
#import "mt5ctp.dll"
long getOrderRefCTP(void); //生成ea报单编号magic number魔术编号
//限价单 limit order
int sendOrderLimit(string symbol, ENUM_CTP_ORDER buySell, ENUM_CTP_POSITION openClose, double price, int volume, string orderRef, ENUM_CTP_ACCOUNT_TYPE hedge); //全部交易所都支持 all exchanges support
int sendOrderLimitFAK(string symbol, ENUM_CTP_ORDER buySell, ENUM_CTP_POSITION openClose, double price, int volume, string