最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MT5 EA交易期貨-市_價(jià)單開倉平倉

2022-11-12 18:18 作者:wewin28  | 我要投稿

該例子演示了EA如何報(bào)期貨市_價(jià)單開倉,開倉后10秒鐘報(bào)市_價(jià)單平倉。

在外匯交易里沒有市_價(jià)單,而期貨交易有市_價(jià)單。

EA是通過調(diào)用mt5ctp.dll進(jìn)行期貨交易,所以EA需要先引用mt5ctp.dll的頭文件mt5ctp.mqh,該頭文件在\MQL5\Include目錄下。

EA獲取當(dāng)前圖表的合約。對(duì)于非主連合約如rb2209可以通過Symbol()屬性獲得當(dāng)前圖表的合約,但對(duì)于主連合約如rb9999,則需要通過SYMBOL_ISIN屬性獲得主連合約現(xiàn)在對(duì)應(yīng)的合約(rb2301),當(dāng)主連合約rb9999隨著時(shí)間發(fā)生換月后,通過SYMBOL_ISIN屬性得到的合約就會(huì)自動(dòng)變?yōu)閞b2305。使用后者的寫法可以讓EA在主連合約和非主連合約的圖表上都能獲得當(dāng)前圖表的合約。

通過SYMBOL_EXCHANGE屬性獲得該合約對(duì)應(yīng)的交易所, 如獲得rb2301所屬的交易所SHFE即上期所。

通過SYMBOL_DIGITS屬性獲得該合約報(bào)價(jià)的小數(shù)后位數(shù),如螺紋鋼是0,股指是1。

splitCommma是代表逗號(hào)。

定義報(bào)單時(shí)間全局變量entryTime,用來判斷是否已經(jīng)報(bào)單。

定義倉位全局變量,如果pos等于0就是空倉,如果大于0就是持倉。

eaOrderRef是EA報(bào)單編號(hào),作用類似外匯EA的魔術(shù)號(hào)碼。

如果還沒報(bào)單還是空倉,就報(bào)單手?jǐn)?shù)1手。

調(diào)用mt5ctp.dll的接口函數(shù)getOrderRefCTP生成EA報(bào)單編號(hào)并保存在eaOrderRef變量,CTP對(duì)報(bào)單編號(hào)格式有規(guī)定,不能像外匯EA的魔術(shù)號(hào)碼可隨意自行指定, 否則報(bào)單會(huì)失敗,所以EA需先調(diào)用該接口函數(shù)生成EA報(bào)單編號(hào)再報(bào)單。

上期所、能源中心和中金所不支持市_價(jià)單,所以如果是這些交易所的合約用漲停價(jià)報(bào)限_價(jià)單實(shí)現(xiàn)市_價(jià)單功能。

通過SYMBOL_SESSION_PRICE_LIMIT_MAX屬性獲得合約的漲停價(jià)。

大商所和鄭商所支持市_價(jià)單,如果是這些交易所的合約調(diào)用mt5ctp.dll的接口函數(shù)sendOrderMarket報(bào)市_價(jià)單。

調(diào)用mt5ctp.dll的接口函數(shù)sendOrderLimit用漲停價(jià)報(bào)限_價(jià)單,其中第一個(gè)參數(shù)是合約,第二個(gè)參數(shù)是mt5ctp.mqh頭文件中定義的枚舉ENUM_CTP_BUY_ORDER(代表多單),第三個(gè)參數(shù)是mt5ctp.mqh頭文件中定義的枚舉ENUM_CTP_OPEN_POSITION(代表開倉),第四個(gè)參數(shù)是報(bào)單的價(jià)格(漲停價(jià)),第五個(gè)參數(shù)是報(bào)單的手?jǐn)?shù),第六個(gè)參數(shù)是EA報(bào)單編號(hào),第七個(gè)參數(shù)是mt5ctp.mqh頭文件中定義的枚舉ENUM_CTP_ACCOUNT_SPECULATION(代表開戶的期貨賬號(hào)是投機(jī))。

sendOrderLimit函數(shù)調(diào)用后會(huì)同步返回本地電腦發(fā)送報(bào)單請(qǐng)求的結(jié)果,0是本地電腦向交易所成功發(fā)送報(bào)單,-1是網(wǎng)絡(luò)連接失敗,-2是未處理請(qǐng)求超過許可數(shù),-3是每秒發(fā)送請(qǐng)求數(shù)超過許可數(shù)。但即使sendOrderLimit函數(shù)返回0(只是完成了下圖中的1和2),也不代表已經(jīng)成功在交易所掛單,還需要等待交易所異步返回對(duì)EA報(bào)單的撮合結(jié)果即報(bào)單回調(diào)和成交回調(diào)(下圖中的3)。這與外匯交易有不同,更多請(qǐng)看交易所異步回調(diào)

MT5通過mt5ctp.dll得到交易所的各種回調(diào)(如報(bào)單回調(diào),成交回調(diào),撤單回調(diào),錯(cuò)誤回調(diào),倉位回調(diào),資金回調(diào)),之后會(huì)把這些回調(diào)作為圖表事件發(fā)送給全部圖表,EA 通過MQL圖表事件響應(yīng)函數(shù)OnChartEvent得到這些回調(diào)(即下圖中的4)。


成交10秒之后報(bào)市_價(jià)單平倉,調(diào)用mt5ctp.dll的接口函數(shù)getOrderRefCTP生成EA報(bào)單編號(hào)并保存在eaOrderRef變量,CTP對(duì)報(bào)單編號(hào)格式有規(guī)定,不能像外匯EA的魔術(shù)號(hào)碼可隨意自行指定, 否則報(bào)單會(huì)失敗,所以EA需先調(diào)用getOrderRefCTP函數(shù)生成EA報(bào)單編號(hào)再報(bào)單。

上期所、能源中心和中金所沒有市_價(jià)單,所以這些交易所的合約用當(dāng)前跌停價(jià)報(bào)限_價(jià)單實(shí)現(xiàn)市_價(jià)單功能。

通過SYMBOL_SESSION_PRICE_LIMIT_MIN屬性獲得當(dāng)前跌停價(jià)。

用當(dāng)前跌停價(jià)報(bào)空單(平多倉)。

大商所和鄭商所支持市_價(jià)單,如果是這些交易所的合約報(bào)市_價(jià)單平倉。

EA報(bào)單后通過mt5ctp.dll得到交易所對(duì)該報(bào)單撮合的結(jié)果即報(bào)單回調(diào),然后mt5ctp.dll會(huì)把該報(bào)單回調(diào)作為圖表事件發(fā)送給全部圖表,EA 通過MQL圖表事件響應(yīng)函數(shù)OnChartEvent得到該報(bào)單的結(jié)果。

期貨發(fā)出的MQL圖表事件的ID都是3000,EA需要在OnChartEvent函數(shù)中只處理ID是3000的事件。

EA通過OnChartEvent函數(shù)的sparam參數(shù)獲得圖表事件中的交易所報(bào)單回調(diào)。

報(bào)單回調(diào)是一個(gè)字符串,格式如下:

OnRtnOrder, 交易所, 合約, EA報(bào)單編號(hào), CTP報(bào)單編號(hào), 多空, 開平, 報(bào)單狀態(tài)枚舉, 報(bào)單狀態(tài)信息, 報(bào)單價(jià)格, 報(bào)單手?jǐn)?shù), 成交手?jǐn)?shù), 報(bào)單時(shí)間, 撤單時(shí)間,FrontID,SessionID,e

EA通過OnChartEvent函數(shù)的sparam參數(shù)獲得圖表事件中的交易所報(bào)單回調(diào)。把sparam對(duì)應(yīng)的字符串按逗號(hào)拆分后保存到字符數(shù)組chartEvents[]。

因?yàn)樵贠nChartEvent函數(shù)中ID是3000的事件包括了各種的交易所回調(diào)(如報(bào)單回調(diào),成交回調(diào),撤單回調(diào),錯(cuò)誤回調(diào),倉位回調(diào),資金回調(diào)), 所以EA需要先根據(jù)chartEvents[0]="OnRtnOrder"找出其中的報(bào)單回調(diào)。

獲得報(bào)單回調(diào)中的EA報(bào)單編號(hào)。

chartEvents數(shù)組的第4個(gè)元素是EA報(bào)單編號(hào)。如果有多個(gè)EA同時(shí)在不同的圖表上運(yùn)行并報(bào)單,本圖表的OnChartEvent也會(huì)接收到其他圖表上的EA產(chǎn)生的報(bào)單回調(diào),之前已經(jīng)生成并記錄了EA報(bào)單編號(hào)在eaOrderRef變量中,所以只有報(bào)單回調(diào)中的EA報(bào)單編號(hào)等于eaOrderRef變量才是本EA的本次報(bào)單回調(diào)(作用類似于外匯EA中的魔術(shù)號(hào)碼)。

獲得報(bào)單回調(diào)中的CTP報(bào)單編號(hào)、報(bào)單做多或做空、報(bào)單開倉或平倉、報(bào)單的價(jià)格、報(bào)單的手?jǐn)?shù),報(bào)單的成交手?jǐn)?shù),報(bào)單時(shí)間,報(bào)單的撤單時(shí)間和交易所對(duì)這次報(bào)單的撮合結(jié)果。

EA報(bào)單后交易所除了發(fā)送報(bào)單回調(diào)以外,如果成交了緊接著還會(huì)發(fā)送成交回調(diào),然后mt5ctp.dll會(huì)把該報(bào)單回調(diào)作為圖表事件發(fā)送給全部圖表,EA 通過MQL圖表事件響應(yīng)函數(shù)OnChartEvent得到該報(bào)單的成交回調(diào)。

成交回調(diào)是一個(gè)字符串,格式如下:

OnRtnTrade, 交易所, 合約, EA報(bào)單編號(hào), CTP報(bào)單編號(hào), 成交編號(hào), 多空, 開平, 成交價(jià)格, 成交手?jǐn)?shù), 成交時(shí)間,e

chartEvents數(shù)組的第4個(gè)元素是EA報(bào)單編號(hào)。如果有多個(gè)EA同時(shí)在不同的圖表上運(yùn)行并報(bào)單,本圖表的OnChartEvent也會(huì)接收到其他圖表上的EA報(bào)單后產(chǎn)生的成交回調(diào),eaOrderRef變量已經(jīng)記錄了本次的報(bào)單編號(hào),所以成交回調(diào)中的EA報(bào)單編號(hào)等于該變量才是本EA的本次報(bào)單的成交回調(diào)(作用類似于外匯EA中的魔術(shù)號(hào)碼)。

遍歷chartEvents數(shù)組,取出成交回調(diào)中的交易所、合約、CTP報(bào)單編號(hào)、CTP成交編號(hào)、報(bào)單做多或是做空,報(bào)單開倉或者平倉,報(bào)單成交價(jià)格,報(bào)單成交手?jǐn)?shù),報(bào)單成交時(shí)間,?并計(jì)算EA倉位。



MT5 EA交易期貨-市_價(jià)單開倉平倉的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
尚义县| 平定县| 女性| 韶关市| 阿巴嘎旗| 贡山| 巴林左旗| 商城县| 宿州市| 运城市| 临猗县| 定边县| 东港市| 宁武县| 沾益县| 柞水县| 泾阳县| 治多县| 教育| 留坝县| 海城市| 玛纳斯县| 安平县| 易门县| 深圳市| 调兵山市| 班玛县| 大英县| 昭觉县| 玉林市| 嵩明县| 马龙县| 奉贤区| 宜城市| 彭水| 青河县| 亚东县| 乳山市| 治县。| 甘孜县| 昆明市|