然后mt5ctp.dll会把该报单回调作为图表事件发送给全部图表富拓mt5中文官网更众请看MT5Future:MT5 EA业务期货2-期货与外汇业务机造。
时价单报单时不指订价格,让业务所自行成交,即是做众无论众贵都买,做空无论众低廉都卖,不管代价上下只求成交。
例如说日内业务者正在市集收盘前会报时价单平掉当天仓位, 又或者当仓位亏空后报时价单平仓止损。
时价单不是每个期货业务所都援手,闭于不援手的业务所咱们能够用涨停跌停代价报限价单达成时价单效益。更众请看MT5Future:MT5 EA业务期货15-限价单涨停跌停价达成时价单
EA获取如今图外的合约。闭于非主团结约如rb2209能够通过Symbol()属性得回如今图外的合约,但闭于主团结约如rb9999,则须要通过SYMBOL_ISIN属性得回主团结约今朝对应的合约(rb2301),当主团结约rb9999跟着时期产生换月后,通过SYMBOL_ISIN属性取得的合约就会自愿变为rb2305。操纵后者的写法能够让EA正在主团结约和非主团结约的图外上都能得回如今图外的合约。
通过SYMBOL_EXCHANGE属性得回该合约对应的业务所, 如得回rb2301所属的业务所SHFE即上期所。
通过SYMBOL_DIGITS属性得回该合约报价的小数后位数,如螺纹钢是0,股指是1。
挪用mt5ctp.dll的接口函数getOrderRefCTP天生EA报单编号并保保存eaOrderRef变量,CTP对报单编号形式有规矩,不行像外汇EA的魔术号码可恣意自行指定, 不然报单会曲折,是以EA需先挪用getOrderRefCTP函数天生EA报单编号再报单。
上期所、能源核心和中金所不援手时价单,是以假若是这些业务所的合约用当天涨停价报限价单达成时价单功用。
大商所和郑商所援手时价单,假若是这些业务所的合约挪用mt5ctp.dll的接口函数sendOrderMarket时价单。
挪用mt5ctp.dll的接口函数sendOrderLimit用当天涨停价报限价单,个中第一个参数是合约,第二个参数是mt5ctp.mqh头文献中界说的列举ENUM_CTP_BUY_ORDER(代外众单),第三个参数是mt5ctp.mqh头文献中界说的列举ENUM_CTP_OPEN_POSITION(代外开仓),第四个参数是报单的代价(涨停价),第五个参数是报单的手数,第六个参数是EA报单编号,第七个参数是mt5ctp.mqh头文献中界说的列举ENUM_CTP_ACCOUNT_SPECULATION(代外开户的期货账号是图利)。
sendOrderLimit函数挪用后会同步返回当地电脑发送报单仰求的结果,0是当地电脑向业务所凯旋发送报单,-1是汇集邻接曲折,-2是未治理仰求进步许可数,-3是每秒发送仰求数进步许可数。但纵使sendOrderLimit函数返回0(只是告终了下图中的1和2),也不代外曾经凯旋正在业务所挂单,还须要守候业务所异步返回对EA报单的联络结果即报单回谐和成交回调(下图中的3)。更众请看MT5 EA业务期货8-业务所异步回调。
MT5通过mt5ctp.dll取得业务所的各类回调(如报单回调,成交回调,撤单回调,舛错回调,仓位回调,资金回调),之后会把这些回调行动图外事务发送给通盘图外,EA 通过MQL图外事务反映函数OnChartEvent取得这些回调(即下图中的4)。
成交10秒之后报时价单平仓,挪用mt5ctp.dll的接口函数getOrderRefCTP天生EA报单编号并保保存eaOrderRef变量,CTP对报单编号形式有规矩,不行像外汇EA的魔术号码可恣意自行指定, 不然报单会曲折,是以EA需先挪用getOrderRefCTP函数天生EA报单编号再报单。
上期所、能源核心和中金所没有时价单,是以这些业务所的合约用如今跌停价报限价单达成时价单功用。
EA报单后通过mt5ctp.dll取得业务所对该报单联络的结果即报单回调,然后mt5ctp.dll会把该报单回调行动图外事务发送给通盘图外,EA 通过MQL图外事务反映函数OnChartEvent取得该报单的结果。
EA通过OnChartEvent函数的sparam参数得回图外事务中的业务所报单回调。
EA通过OnChartEvent函数的sparam参数得回图外事务中的业务所报单回调。把sparam对应的字符串按逗号拆分后保全到字符数组chartEvents[]。
由于正在OnChartEvent函数中ID是3000的事务囊括了各类的业务所回调(如报单回调,成交回调,撤单回调,舛错回调,仓位回调,资金回调), 是以EA须要先遵循chartEvents[0]=OnRtnOrder寻得个中的报单回调。
chartEvents数组的第4个元素是EA报单编号。假若有众个EA同时正在差别的图外上运转并报单,本图外的OnChartEvent也会采纳到其他图外上的EA出现的报单回调,之前曾经天生并记实了EA报单编号正在eaOrderRef变量中,是以只要报单回调中的EA报单编号等于eaOrderRef变量才是本EA的本次报单回调(功用犹如于外汇EA中的魔术号码)。
得回报单回调中的CTP报单编号、报单做众或做空、报单开仓或平仓、报单的代价、报单的手数,报单的成交手数,报单时期,报单的撤单时期和业务所对此次报单的联络结果。
EA报单后业务所除了发送报单回调以外,假若成交了紧接着还会发送成交回调,然后mt5ctp.dll会把该报单回调行动图外事务发送给通盘图外,EA 通过MQL图外事务反映函数OnChartEvent取得该报单的成交回调。
chartEvents数组的第4个元素是EA报单编号。假若有众个EA同时正在差别的图外上运转并报单,本图外的OnChartEvent也会采纳到其他图外上的EA报单后出现的成交回调,eaOrderRef变量曾经记实了本次的报单编号,是以成交回调中的EA报单编号等于该变量才是本EA的本次报单的成交回调(功用犹如于外汇EA中的魔术号码)。
遍历chartEvents数组,取出成交回调中的业务所、合约、CTP报单编号、CTP成交编号、报单做众或是做空,报单开仓或者平仓,报单成交接价,报单成交手数,报单成交时期,并揣测EA仓位。