外_匯_邦 WaiHuiBang.com
MT4指標編程非常看中市場的取值,因為指標編程問題,歸根到底和市場是分不開的。www.emoneybtc.com
一、預定義數組(MT4已經定義好的,可以直接使用)
開盤價、最高價、最低價、收盤價、成交量等歷史數據,每根K線蠟燭都各有一個,所以必須用數組來解決問題,MT4有幾個預定義數組:
開盤價Open[]、最高價High[]、最低價Low[]、收盤價close[]、成交量Volume[]、所屬時間Time[]
類型為雙精度double型(即精確小數)
這裡有一個位置的問題,右邊第一根K線蠟燭(即最新的蠟燭)的編號為0,第二根蠟燭編號1,第三根蠟燭編號2,也就是說從右向左倒著數過去。
Open[0]、High[0]、Low[0]、Close[0],表示最新的開盤價、最高價、最低價、收盤價
Open[1]、High[1]、Low[1]、close[1],表示第2根K線蠟燭的開盤價、最高價、最低價、收盤價
Open[2]、High[2]、Low[2]、close[2],表示第3根K線蠟燭的開盤價、最高價、最低價、收盤價
Open[3]、High[3]、Low[3]、close[3],表示第4根K線蠟燭的開盤價、最高價、最低價、收盤價
Open[i]、High[i]、Low[i]、close[i],表示第i+1根K線蠟燭的開盤價、最高價、最低價、收盤價
以此類推。。。。。。
注意:這些是數組,用的是方括號。
二、預定義變量
買入價、賣出價是實時價格,MT4用預定義變量Ask和Bid表示,數值類型為double雙精度
還有一些預定義變量,如:
Bars表示圖表中的蠟燭數,類型為int整數型
Digits表示當前貨幣對的小數位,類型為int整數型,無日元幣對為4,有日元幣對為2,黃金石油等一般也為2
Point表示當前貨幣對的點值,類型為雙精度double型,無日元幣對為0.0001,有日元幣對為0.01。與Digits正好相反。
三、指標函數
1、價格、成交量、時間
它們都有三個參數:貨幣對名、K線周期、位置序號
開盤價:iOpen(symbol,timeframe,shift)雙精度double型
收盤價:iClose(symbol,timeframe,shift)雙精度double型
最高價:iHigh(symbol,timeframe,shift)雙精度double型
最低價:iLow(symbol,timeframe,shift)雙精度double型
成交量:iVolume(symbol,timeframe,shift)雙精度double型
所屬時間:iTime(symbol,timeframe,shift)日期時間datetime型
K線周期為:1分鐘圖(PERIOD_M1)、5分鐘圖(PERIOD_M5)、15分鐘圖(PERIOD_M15)、30分鐘圖(PERIOD_M30)、
1小時圖(PERIOD_H1)、4小時圖(PERIOD_H4)、日線圖(PERIOD_D1)、周線圖(PERIOD_W1)、周線圖(PERIOD_W1)、月線圖(PERIOD_W1)
例:
iOpen("USDJPY",PERIOD_H1,0)表示美元兌日元1小時圖最新K線蠟燭的開盤價
iClose("EURUSD",PERIOD_H4,2)表示歐元兌美元4小時圖第3根K線蠟燭的收盤價
iClose("GBPUSD",PERIOD_H1,i)表示英磅兌美元1小時圖第i+1根K線蠟燭的收盤價
iHigh(NULL,0,0)既不指定商品,也不指定K線周期,用在誰就是誰,用在哪就是哪
2、移動平均值。雙精度double型
iMA(symbol,timeframe,period,ma_shift,ma_method,applied_price,shift)
參數共7個,分別為:商品名稱、K線周期、均線周期、均線偏移、平均模式、價格種類、位置
均線周期:10天平均線的均線周期為10,20天均線的均線周期為20
均線偏移:均線位置整體左右移動的位置偏移量
平均模式:簡單移動平均(MODE_SMA)、指數移動平均(MODE_EMA)、平滑移動平均線(MODE_SMMA)、線性加權移動平均線(MODE_LWMA)
價格種類:收盤價(PRICE_CLOSE)、開盤價(PRICE_OPEN)、最高價(PRICE_HIGH)、最低價(PRICE_LOW)、中值(PRICE_MEDIAN)、5(PRICE_TYPICAL)、6(PRICE_WEIGHTED)
例1:iMA("EURUSD",PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0)
表示:歐元1小時圖上,以收盤價計算的,20小時簡單移動平均線,最新K線所對應位置的值
例2:iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2)
表示:在當前商品、當前K線周期圖表上,以收盤價計算的,20(天)指數移動平均線第3根K線所對應位置的值
其他如MACD指標、威廉指標、RSI、SAR、布林線等指標取值都與移動平均線指標相類似
3、在數組中求元素的移動平均值。雙精度double型
iMAOnArray(數組名,總數,平均周期,均線偏移,平均模式,位置)
這也與iMA函數差不多,不過數據源變為數組
從數組中不但可以求得移動平均值,還可以求得RSI等指標值
4、求自定義指標的值
我們經常自己編一些自定義指標,可用iCustom函數來取得自定義函數的值
iCustom(商品名,K線周期,自定義指標名稱,自定義指標參數1,參數2,參數3,,,自定義指標線編號,位置)
如果自定義指標只有一根指標線,則自定義指標線的編號為0。
如果自定義指標有多根指標線,則第一條自定義指標線的編號為0,第二條為1,第三條為2。。。
例如:iCustom(NULL,0,"mymacd",12,26,9,2,0)(12,26,9)為自定義指標mymacd的三個參數
表示:求當前圖表中,自定義指標mymacd(12,26,9)的第3條指標線在最新位置的值
外_匯_邦 WaiHuiBang.com