人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現(xiàn)在的位置:程序化交易>> 外匯現(xiàn)貨>> MT5>> MT5知識>>正文內(nèi)容

MT5編程實例課程(阿郎)---第二講(一鍵下單) [MT4]

  • 在第一講中,我們通過一個簡單的例子Lesson1,學習了如何通過MQL5編程在MT5圖表上添加按鈕、處理按鈕點擊事件以及彈出對話框等。在第二講中,我們將會在Lesson1例子的基礎上進行改進,開發(fā)一個可以在MT5圖表上進行一鍵下單的EA。怎樣,是否很感興趣呢?那我們就馬上開始吧!
    首先啟動MT5,從MT5中啟動ME5(MetaEditor5,不知道如何啟動的請參閱第一講相關內(nèi)容),然后新建一個EA,取名為Lesson2,其它選項保持默認。生成Lesson2的EA代碼文件后,如Lesson1一樣,在OnInit函數(shù)中輸入在圖表創(chuàng)建按鈕(Button)的代碼如下:


    大家可以發(fā)現(xiàn)代碼和Lesson1基本一樣,唯一的區(qū)別是按鈕的文本不同了,這里設置為"Buy",意即我們打算在按下這個按鈕時,會在MT5中下一張多單(Buy、Long)。輸入完畢后,與Lesson1同樣,我們添加一個OnChartEvent函數(shù),并輸入如下代碼:

    輸入完畢后,按下F5進行編譯,如無錯誤,即會切換到MT5圖表,我們按下圖表上的按鈕"Buy",怎樣?一鍵下單的功能實現(xiàn)了吧?
    OnInit函數(shù)里面的代碼這里就不作解釋了,如不清楚的請回頭參閱Lesson1中的講解,這里重點講解OnChartEvent中的代碼。
    MqlTradeRequest request;
    這兩句代碼分別定義了一個叫做request的MqlTradeRequest類型變量和一個叫做result的MqlTradeResult類型變量。這里給初學的朋友補充一下基礎知識:什么是變量呢?我們可以這樣想象一下:MT5交易軟件是個會做菜的機器,而MQL5開發(fā)就是設計菜譜,菜譜中列明了原材料及對原材料的加工方法,把菜譜輸入MT5中,MT5便會自動生成原材料及對原材料進行指定的加工,最后得出我們想要的東西。這個例子很簡潔明,相信讀者朋友很容易就能理解,對嗎?好了,對應到MQL5開發(fā)中,數(shù)據(jù)就是原材料,比如開盤價、收盤價、均線數(shù)值等等這些整數(shù)、浮點數(shù),就是數(shù)據(jù),就是MQL5開發(fā)的原材料,而對原材料的加工方法,就是如何對這些數(shù)據(jù)進行運算處理,最后輸出我們想要的結果。那么,我們在廚房做菜時,原材料應該放在哪里呢?總不可能隨便放到臺上、地下吧,一般我們都會把原材料放在盤子、碟子里面,OK!這個盤子、碟子,就是我們的變量了。所謂的變量,就是用來盛放數(shù)據(jù)的容器,只不過我們知道計算機是很嚴格定義所有東西的,1就是1,2就是2,所以,我們根據(jù)數(shù)據(jù)類型的不同,必須明確指定變量這個容器的規(guī)格,這個指定變量規(guī)格的過程就叫做定義變量。如上面的代碼,MqlTradeRequest就是規(guī)格,request就是根據(jù)MqlTradeRequest規(guī)格制作出來的容器。關于變量的概念及變量定義就暫時到這里了,如果還是不明白的話,我也沒辦法了,或者可以參與筆者稍后開辦的MT5 EA開發(fā)學習班吧!
    這句在Lesson1中已經(jīng)講解過了,就是判斷如果Button1按鈕被按下,則執(zhí)行后續(xù)的操作。后續(xù)的操作代碼是重點,讀者要留心看了。request.action = TRADE_ACTION_DEAL;request.symbol = Symbol();request.volume = 0.1;request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
    這段代碼的功能很單一,就是往request這個容器里塞東西,比如青菜、豬肉之類的,塞滿了往MT5這個微波爐一叮,就有吃的了…… 言歸正傳,我們來看看都往request里面塞了些什么好吃的。大家可以看到有request.x這種格式,這是什么意思呢?舉個形象點的例子,我們可以把request這個容器想象成里面有很多不同大小的格子,每個格子都有自己的名稱,只能裝下固定規(guī)格的東西,回到我們的代碼上來,request.action就表示request容器里一個叫做action的格子,那么"="符號就表示要把"="號右邊的東西塞到左邊的格子里面去,那么,request.action = TRADE_ACTION_DEAL這句就表示把TRADE_ACTION_DEAL這個東西塞到request容器里一個叫做action的格子里面。那么好了,新問題又來了,這個TRADE_ACTION_DEAL又是個什么東東呢?答曰:這是MT5中內(nèi)置的一個變量名稱,已經(jīng)固定好的了,相當于一個暗號,只要你一喊這個暗號,MT5就知道你想干嘛了;那么如果我們喊出了TRADE_ACTION_DEAL這個暗號,MT5就會干些什么?答曰:MT5就會給我們下市價單(是不是有點暈了,這也沒辦法,先往下看吧……)。request.symbol = Symbol();這句意思很清楚了,Symbol()是一個函數(shù),把Symbol()函數(shù)的返回值裝入request中的symbol格子里面(關于函數(shù)及返回值的概念這里我沒有精力插入解釋了,不了解的朋友可以找一些基礎的資料看看),Symbol()函數(shù)的作用就是把EA所在圖表的貨幣對名稱返回,比如"EURUSD"、"GBPUSD"等。request.volume = 0.1; 指定下單量為0.1手。
    request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);這里指定下單時所使用的價格類型,SymbolInfoDouble()函數(shù)是個很重要的函數(shù),在MT5編程中免不了要經(jīng)常用到的,其作用是獲取指定貨幣對的相關數(shù)值,這里就是獲取Symbol()函數(shù)返回的貨幣對的Ask價格。值得注意的是,MT4中的Ask、Bid變量在MT5中已不復存在,取而代之的是以上的使用方式。SYMBOL_ASK意指貨幣對的ASK價格。
    request.type = ORDER_TYPE_BUY;ORDER_TYPE_BUY指下單類型為buy單,即多單。
    request.sl = SymbolInfoDouble(Symbol(), SYMBOL_ASK)-300*_Point;
    request.tp = SymbolInfoDouble(Symbol(), SYMBOL_ASK)+600*_Point這兩句分別設定下單附帶的止損和止盈價格。
    好了,東西全部分門別類地塞入request里面的格子了,那么接下來干些什么呢?接下來就輪到主角OrderSend函數(shù)出場了。這里插些題外話:MT4轉入MT5的朋友要注意了,MT5中的OrderSend函數(shù)和MT4中的不大一樣,MT4中的是直接把下單類型、價格、滑點、止損、注釋等等都直接作為OrderSend的參數(shù),而MT5中則是先把這些東西塞入到一個MqlTradeRequest類型的變量中(就是上面的request),然后再把這個變量作為OrderSend函數(shù)的參數(shù)。 我們把request和result作為OrderSend的函數(shù),request里面包含了需要MT5干些什么的指令,而result則是負責接收MT5干活的返回結果,比如是否成功、下好的單編碼是多少等等。ObjectSetInteger(0, "Button1", OBJPROP_STATE, 0);ChartRedraw();這兩句就不用解釋了,Lesson1中已經(jīng)出現(xiàn)過了。
    Lesson2里面涉及到的基本概念比較多,初學的朋友可能就要想辦法搞清楚這些概念了。Lesson2的例子中,大家可自己實現(xiàn)下空單的按鈕代碼。好了,至此Lesson2的開發(fā)工作就全部結束了,敬請關注MT5編程實戰(zhàn)開發(fā)系列第三講!

【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內(nèi)容
主站蜘蛛池模板: 国产精品欧美一区二区三区不卡 | 中文国产成人精品久久一区 | 午夜影视大全 | 日韩欧美高清色码 | 你懂的视频在线播放 | α片免费看 | 国产精品亚洲精品观看不卡 | 亚洲欧美一区二区三区在线观看 | 免费99精品国产自在现线观看 | 色停停| 三级黄色短视频 | 伊人网在线视频 | 久久免费网| 欧美xxxxx000| 欧美久在线观看在线观看 | 欧美在线视频免费播放 | 成年免费看片在线观看 | 精品日韩视频 | 免费777my性欧美另类 | 一级毛片无毒不卡直接观看 | a黄网站| 日韩欧美网址 | 天天摸天天爽视频69视频 | 国产女同一区二区在线 | 亚洲国产精品日韩高清秒播 | 人人澡人人插 | 欧美成人a人片 | 草草网 | 一级α片视频 | 免费国产一级特黄久久 | 一级毛片免费一级直接观看 | 亚洲日本一区二区三区在线不卡 | 日韩在线天堂 | 中文在线最新版天堂 | 99免费视频 | 国产无遮挡床戏视频免费 | 成人精品视频在线观看播放 | 人人添人人麦人人爽夜欢视频 | 天天草天天爽 | 视频二区肥岳精品推荐 | 天天操天天噜 |