文章來源:123财經導航 | william
在今天的課程當中,将是MQL4 EA編程基礎知識學習的一個裏程碑,随着本章節的結束,下一期我們将開始EA編程的實操環節,以及圖表對象編寫、面向對象編程部分。
對于大多數EA編寫,最少不了的就是貨币數據,它可以是任何我們能看到的值,也可以是一些一些我們看不到的數據。在以前的基礎教學當中,隻講了語法以及各種函數、數據結構的用法,今天的課程我們将學習怎樣獲取貨币數據,來爲之後的EA編寫做準備。
1、獲取貨币的基本數據
我們可以借助4個主要行數,每一個函數都是帶有兩個參數,既貨币名稱和類型常量;其中最常用的函數MarketInfo(),可以獲取大部分我們日常編程所需的基礎數據;額外的3個則是在這個的基礎上做了詳細分類,包括數據數據類型、數據名稱等。
SymbolInfoDouble、SymbolInfoInteger、SymbolInfoString這三個函數的使用方法和MQL5一緻,但是部分數據在MQL4當中并不支持獲取。所以綜合下來,我們使用MarketInfo()函數基本能夠滿足日常需求。
由于SymbolInfoDouble、SymbolInfoInteger、SymbolInfoString三種方式的詳細信息很龐大,這裏就不列舉了,在編譯器中通過F1自行在幫助手冊中查看和學習。
2、獲取更詳細的K線數據
以下10個函數可以彌補前面介紹的4個函數的很多缺點,支持更加詳細的貨币數據獲取方式;其中每個函數都代表了不同的功能,以及使用不同的參數。具體結構和功能介紹如下所示:
3、預定義常量 - 【複習】
在之前的課程中我們學了預定義常量,下圖這幾個常量的功能和今天介紹的函數有着一些相同的功能。
注意:最大的區别在于,預定義常量隻支持當前貨币,也就是不支一個圖表上處理多個貨币的EA邏輯。這點必須得注意區分。
1、基礎貨币數據的應用
在下方代碼中,我封裝了一個專門用于發送空單的函數,對于要獲取的關鍵信息這裏使用MarketInfo()函數來獲取!包含點差和BID價格,由于封裝的作用在于适配所有貨币,那麽這些關鍵信息可以根據傳入的貨币來自動識别,這樣并可以同時滿足一圖多貨币交易或者單貨币交易的空單需求。
當然,這隻是一個簡單的示例,你要是想适配所有的訂單類型,以及在函數内做盈損賦值的話,可以按照自己的想法進一步完善這段代碼。
2、用詳細K線數據創造一個簡單的開倉信号
具體的邏輯如下:
獲取當前貨币對 H1 周期内倒數第 2、3、4、5 根 K 線的最高價,分别存儲在 high1、high2、high3、high4 變量中。
首先判斷當前倒數第 2 根 K 線的最高價 high1 是否小于倒數第 3 根 K 線的最高價 high2。
如果上述條件成立,則繼續判斷倒數第 3 根 K 線的最高價 high2 是否小于倒數第 4 根 K 線的最高價 high3。
如果上述條件也成立,則繼續判斷倒數第 4 根 K 線的最高價 high3 是否小于倒數第 5 根 K 線的最高價 high4。
如果上述三個條件都成立,則說明出現了 4 根連續陰線,根據這個形态可以進行相應的交易策略邏輯處理。
3、【進階用法】使用預定義常量來編寫兩個用于返回K線形态判斷的函數
這部分創建信号的内容我會放到後面章節再細說
本章知識點:
删除后无法恢复
删除后无法恢复