欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MT4編程入門(mén)

MT4編程入門(mén)1:MT4自定義指標的基本操作

MT4自定義指標的保存目錄、指標編緝器與指標調用

一、MT4自定義指標保存在C:\Program Files\MetaTrader 4\experts\indicators這個(gè)目錄中,

該目錄中主要有二種類(lèi)型的文件,

一種是mq4文件,這是MT4自定義指標的源碼文件,是一種高級語(yǔ)言文件,可以人工編寫(xiě)修改,機器不能直接執行,但能在MT4啟動(dòng)時(shí)自動(dòng)編譯為ex4可執行文件。

另一種就是ex4文件,這是MT4自定義指標的可執行文件,由mq4文件編譯得到。

mq4文件必須編譯為ex4文件才能被MT4執行。

但ex4文件是機器碼文件,人工不可修改

另外還有一個(gè)文件是mqlcache.dat,它用來(lái)保存目錄中的文件信息,如果MT4無(wú)法自動(dòng)編譯,只要刪除此文件即可解決問(wèn)題

mq4文件編譯為ex4可執行文件有兩種方法:

1、MT4啟動(dòng)時(shí),會(huì )自動(dòng)把此目錄中的mq4文件編譯為ex4文件。

2、用MQ語(yǔ)言編輯器打開(kāi)mq4文件,點(diǎn)一下“編寫(xiě)”按鈕,即可生成ex4文件

二、下載保存mq4文件、ex4文件

在論壇上我們經(jīng)??吹接衜q4文件、ex4文件可供下載,我們只要把它們保存到C:\Program Files\MetaTrader 4\experts\indicators這個(gè)目錄,也就是下面這個(gè)目錄中,就可以了。如果下載的是ex4文件,那可以直接調用;如果是mq4文件,則需要重啟動(dòng)MT4,讓系統自動(dòng)編譯生成ex4可執行文件。如果下載的是rar、zip等類(lèi)型的壓縮文件,還必須下載后解壓到此目錄才能使用。

三、將源碼保存為源碼文件

在論壇上,我們也經(jīng)常能看到指標源碼貼在網(wǎng)頁(yè)上,但沒(méi)有mq4、ex4等文件可以下載,只能復制源碼。此時(shí)需要我們自己動(dòng)手將源碼保存為源碼文件,那也沒(méi)關(guān)系,非常地簡(jiǎn)單,多點(diǎn)幾下鼠標就搞定。

1、打開(kāi)MQ語(yǔ)言編輯器

2、在MQ語(yǔ)言編輯器中新建一個(gè)文件,文件名一定要輸,別的隨便操作都沒(méi)關(guān)系。

3、刪除新文件里面的所有內容,成為一個(gè)空文件,

4、接著(zhù)我們就可以將網(wǎng)頁(yè)上源碼復制粘貼進(jìn)來(lái)

試著(zhù)點(diǎn)一下“編寫(xiě)”,如果左下角出現“0錯誤,0警告”,那說(shuō)明源碼沒(méi)問(wèn)題,編譯通過(guò)了,成功生成了ex4可執行文件

5、還有很重要的一點(diǎn),就是要把源碼文件保存到正確的目錄中

保存后,再點(diǎn)一下編寫(xiě)。

到此,源碼保存完成。

當然,我們也還有另的辦法:

可以打開(kāi)一個(gè)原已存在的mq4文件,然后另存為你需要的文件名,再刪除文件中的所有內容成為空文件,把網(wǎng)頁(yè)上的源貼到文件中保存即可

也可以在記事本中新建一個(gè)文件,把網(wǎng)頁(yè)上的源碼貼進(jìn)記事本,然后取個(gè)文件名保存到上面提到的目錄,不過(guò)文件后綴必須輸入mq4,保存類(lèi)型選擇“所以文件”

四、mt4程序調用自定義指標

這非常簡(jiǎn)單

MT4編程入門(mén)2:指標源碼中的常用符號說(shuō)明

一、注釋符:?jiǎn)涡凶⑨尅?/”、多行注釋“/*   */”

程序不執行注釋,注釋內容僅供閱讀或保留不用的語(yǔ)句

在MQ語(yǔ)言編輯器中,注釋內容以灰色顯示

二、分號“;”

表示一個(gè)語(yǔ)句結束

三、逗號“,”

表示一個(gè)語(yǔ)句內部間隔,不結束語(yǔ)句。

四、等于號“=”

賦值語(yǔ)句,把等號后面的值賦給等號前的變量中

五、加號“+”

整數或小數,則表示值相加;字符串,則表示前后連接。

六、加加“++”

表示把符號前的變量值加1,例如:“i++;”  這實(shí)際上就是:“i=i+1;”的簡(jiǎn)寫(xiě),表示i的值加1

七、加等于“+=”

表示把符號后的值加到符號前的變量中。例如“i+=2;”,實(shí)際上就是“i=i+2;”的簡(jiǎn)寫(xiě),表示i的值加2

八、雙等號“==”

等于號。用于邏輯判斷,雙等號前后值相等,則返回邏輯值“真true”;雙等號前后值不相等,則返回邏輯值“假false”

九、嘆號等號“!=”

不等于號。用于邏輯判斷,不等號前后值不相等,則返回邏輯值“真true”;不等號前后值相等,則返回邏輯值“假false”

十、“&&”

邏輯符“并且”

十一、“||”

邏輯符“或者”

十二、大括號“{}”

表示函數體。

{}內部為函數體語(yǔ)句。

MT4編程入門(mén)3:自定義變量

一、自定義變量在使用前,必須先創(chuàng )建(定義),設定變量的類(lèi)型和名稱(chēng)。

創(chuàng )建時(shí)可同時(shí)賦值,也可以不賦值。名稱(chēng)可以使用中文字符。

例:

int  mark;           創(chuàng )建一個(gè)整型變量,變量名為“mark”。

bool 是否報警=true;  創(chuàng )建一個(gè)邏輯型變量,變量名為“是否報警”,同時(shí),賦初值“true”

二、類(lèi)型和類(lèi)型定義詞

自定義變量的基本類(lèi)型有:

1、整形(int):就是整數,包括負整數

2、雙精度小數(double):可以簡(jiǎn)單地理解為帶小數位的數

3、字符串型(string)。

4、邏輯型(bool):其值分別為“true、false”,即“真、假”,也可以寫(xiě)成“1、0”(1真,0假)。

類(lèi)型定義詞僅在創(chuàng )建變量時(shí)使用,后面使用變量時(shí),就不能再加類(lèi)型定義詞了

三、附加變量

附加變量就是在程序投入使用后,變量值允許用戶(hù)自由更改的變量,一般用作程序參數。

一般指標,例如MACD(12,26,9)參數輸入就是通過(guò)附加變量實(shí)現,(12,26,9)分別為三個(gè)附加變量的默認值。

定義附加變量只需在變量定義語(yǔ)句前加“extern”

例:

extern int 周期=9;  創(chuàng )建一個(gè)整型附加變量,變量名為“周期”,默認值為9,允許用戶(hù)在程序外部修改參數值

MT4編程入門(mén)4:自定義函數

自定義函數與數學(xué)函數在本質(zhì)上是一致的

例如:數學(xué)函數ft(x,y)=3x+2y (x,y為正整數) 寫(xiě)成程序語(yǔ)句就是:

int ft(int x,int y)

    {

     int temp;

     temp=3*x+2*y;

     return(temp);

    }

一、和自定義變量一樣,自定義函數在使用前,也必須先設立,以定義其類(lèi)型、名稱(chēng)、參數和運算語(yǔ)句。

函數類(lèi)型、名稱(chēng)、參數位于函數頭部(參數間以逗號分隔),

大括號中的是運算語(yǔ)句,也就是函數體部分。

return語(yǔ)句為函數結束語(yǔ)句,return后面括號中的值為函數返回值,即函數運算結果。

上例中,int為函數類(lèi)型,表示該函數的返回值(運算結果)是整數;

(x,y)為參數,由于自定義變量使用之前都必須先創(chuàng )建,所以要加上類(lèi)型定義詞int

ft為函數名,有了函數名,我們就可以在別處用ft(2,1)的形式來(lái)調用此函數;

函數體部分有三句:

第一句,定義一個(gè)整形變量temp

第二句,計算temp的值

第三句,函數結束,返回調用點(diǎn),以temp的值作為本函數返回值。

此函數也可以簡(jiǎn)寫(xiě)為:int ft(int x,int y)  {return(3*x+2*y);}

二、函數類(lèi)型與類(lèi)型符

函數類(lèi)型就是函數返回值(運算結果)的類(lèi)型,與自定義變量類(lèi)型差不多

有整型(int)、雙精度型(double)、字符串型(string)、邏輯型(bool)等,

還有一種函數是以函數運行為目的,運行結束后不需要返回值也沒(méi)有返回值的,則函數類(lèi)型可以寫(xiě)成void(無(wú)值型)

三、函數中如果定義了自定義變量,那么此變量?jì)H在本函數內部存在,函數運行結束時(shí),自定義變量也就自動(dòng)注銷(xiāo)。

上例中,有x、y、temp三個(gè)自定義變量,在函數運行時(shí)創(chuàng )建,在函數運行結束時(shí)自動(dòng)消失,僅在函數內部有效,與函數外部無(wú)關(guān)。

四、函數的調用

函數調用非常簡(jiǎn)單,只要函數名正確、參數個(gè)數一致、類(lèi)型相同就能正確調用

如我們前面創(chuàng )建了ft(x,y)函數,則別處我們可以用ft(4,5)等樣式來(lái)調用ft(x,y)函數求值。

調用時(shí),傳遞參數值給ft(x,y)函數(按順序把4傳給x,把5傳給y),返回結果23后繼續執行主程序。

MT4編程入門(mén)5:自定義數組

一、數組是一系列同類(lèi)型變量的集合,可以同時(shí)存儲多個(gè)數值。

例:int aa[4]={4,3,2,1};

這是一個(gè)數據名為aa、包含了4個(gè)元素的整數型數組(即數組長(cháng)度為4),可以同時(shí)存儲4個(gè)數值。

二、自定義數組也必須“先建立,后使用”

創(chuàng )建(定義)時(shí),必須設定類(lèi)型和名稱(chēng)。

創(chuàng )建(定義)時(shí),數組的元素個(gè)數也可以設定,也可以不設定

數組中第一個(gè)元素的編號為0,第二個(gè)為1,以此類(lèi)推。編號使用方括號括起來(lái)

在這上例中aa[0]的值為4、aa[1]的值為3、aa[2]的值為2、aa[3]的值為1

創(chuàng )建(定義)數組的同時(shí),可以賦初值,也可以不賦初值。

例:

int bb[];   創(chuàng )建數組bb,不設定數組元素個(gè)數

int cc[8];  創(chuàng )建數組cc,設定數組元素為8個(gè),不賦初值

int dd[3]={9,8,7};  創(chuàng )建數組dd,設定數組元素為4個(gè),并賦初值

賦值后,dd[0]的值為9、dd[1]的值為8、dd[2]的值為7

int ee[9]={0,1,2,3};   創(chuàng )建數組ee,設定數組元素為9個(gè),但只給前4個(gè)元素賦初值

三、數組使用時(shí)的賦值

數組的賦值必須指定明確的賦值對象,除了新建數組時(shí)可以批量賦值外,數組元素必須一個(gè)一個(gè)賦值

例如:dd[2]=1;

這是對數組dd的第3個(gè)元素dd[2]([0]是第1個(gè),[2]表示第3個(gè))重新賦值為1

在這里,沒(méi)有整數型變量定義符int,

這樣,數組dd原有三個(gè)值{9,8,7}就變?yōu)閧9,8,1}

四、數組的引用

數組只是一系列變量的集合,所以每次只能使用數組中的一個(gè)元素。

數組的引用必須指定明確的引用對象,一次只能引用一個(gè)。如果需要使用整列數組,則必須逐個(gè)使用。

例如:數組aa[4]的值為{4,3,2,1}

我們用aa來(lái)引用數組aa中的值

當i=0時(shí),aa[i]的值為4

當i=1時(shí),aa[i]的值為3

當i=2時(shí),aa[i]的值為2

當i=3時(shí),aa[i]的值為1

這樣,我們在處理數列的時(shí)候,使用數組就能帶來(lái)極大的方便

MT4編程入門(mén)6:市場(chǎng)數據取值

一、預定義數組(MT4已經(jīng)定義好的,可以直接使用)

開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)、成交量等歷史數據,每根K線(xiàn)蠟燭都各有一個(gè),所以必須用數組來(lái)解決問(wèn)題,MT4有幾個(gè)預定義數組:

開(kāi)盤(pán)價(jià)Open[]、最高價(jià)High[]、最低價(jià)Low[]、收盤(pán)價(jià)close[]、成交量Volume[]、所屬時(shí)間Time[]

類(lèi)型為雙精度double型(即精確小數)

這里有一個(gè)位置的問(wèn)題,右邊第一根K線(xiàn)蠟燭(即最新的蠟燭)的編號為0,第二根蠟燭編號1,第三根蠟燭編號2,也就是說(shuō)從右向左倒著(zhù)數過(guò)去。

Open[0]、High[0]、Low[0]、Close[0],表示最新的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)

Open[1]、High[1]、Low[1]、close[1],表示第2根K線(xiàn)蠟燭的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)

Open[2]、High[2]、Low[2]、close[2],表示第3根K線(xiàn)蠟燭的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)

Open[3]、High[3]、Low[3]、close[3],表示第4根K線(xiàn)蠟燭的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)

Open、High、Low、close,表示第i+1根K線(xiàn)蠟燭的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)

以此類(lèi)推。。。。。。

注意:這些是數組,用的是方括號。

二、預定義變量

買(mǎi)入價(jià)、賣(mài)出價(jià)是實(shí)時(shí)價(jià)格,MT4用預定義變量Ask和Bid表示,數值類(lèi)型為double雙精度

還有一些預定義變量,如:

Bars 表示圖表中的蠟燭數,類(lèi)型為int整數型

Digits 表示當前貨幣對的小數位,類(lèi)型為int整數型,無(wú)日元幣對為4,有日元幣對為2,黃金石油等一般也為2

Point 表示當前貨幣對的點(diǎn)值,類(lèi)型為雙精度double型,無(wú)日元幣對為0.0001,有日元幣對為0.01。與Digits正好相反。

三、指標函數

1、價(jià)格、成交量、時(shí)間

它們都有三個(gè)參數:貨幣對名、K線(xiàn)周期、位置序號

開(kāi)盤(pán)價(jià):iOpen(symbol,timeframe,shift)    雙精度double型

收盤(pán)價(jià):iClose(symbol,timeframe,shift)    雙精度double型

最高價(jià):iHigh(symbol,timeframe,shift)    雙精度double型

最低價(jià):iLow(symbol,timeframe,shift)    雙精度double型

成交量:iVolume(symbol,timeframe,shift)  雙精度double型

所屬時(shí)間:iTime(symbol,timeframe,shift)  日期時(shí)間datetime型

K線(xiàn)周期為:1分鐘圖(PERIOD_M1)、5分鐘圖(PERIOD_M5)、15分鐘圖(PERIOD_M15)、30分鐘圖(PERIOD_M30)、

1小時(shí)圖(PERIOD_H1)、4小時(shí)圖(PERIOD_H4)、日線(xiàn)圖(PERIOD_D1)、周線(xiàn)圖(PERIOD_W1)、周線(xiàn)圖(PERIOD_W1)、月線(xiàn)圖(PERIOD_W1)

例:

iOpen("USDJPY",PERIOD_H1,0)   表示美元兌日元1小時(shí)圖最新K線(xiàn)蠟燭的開(kāi)盤(pán)價(jià)

iClose("EURUSD",PERIOD_H4,2)  表示歐元兌美元4小時(shí)圖第3根K線(xiàn)蠟燭的收盤(pán)價(jià)

iClose("GBPUSD",PERIOD_H1,i)  表示英磅兌美元1小時(shí)圖第i+1根K線(xiàn)蠟燭的收盤(pán)價(jià)

iHigh(NULL,0,0)               既不指定商品,也不指定K線(xiàn)周期,用在誰(shuí)就是誰(shuí),用在哪就是哪

2、移動(dòng)平均值。雙精度double型

iMA(symbol, timeframe, period, ma_shift, ma_method, applied_price, shift)

參數共7個(gè),分別為:商品名稱(chēng)、K線(xiàn)周期、均線(xiàn)周期、均線(xiàn)偏移、平均模式、價(jià)格種類(lèi)、位置

均線(xiàn)周期:10天平均線(xiàn)的均線(xiàn)周期為10,20天均線(xiàn)的均線(xiàn)周期為20

均線(xiàn)偏移:均線(xiàn)位置整體左右移動(dòng)的位置偏移量

平均模式:簡(jiǎn)單移動(dòng)平均(MODE_SMA)、指數移動(dòng)平均(MODE_EMA)、平滑移動(dòng)平均線(xiàn)(MODE_SMMA)、線(xiàn)性加權移動(dòng)平均線(xiàn)(MODE_LWMA)

價(jià)格種類(lèi):收盤(pán)價(jià)(PRICE_CLOSE)、開(kāi)盤(pán)價(jià)(PRICE_OPEN)、最高價(jià)(PRICE_HIGH)、最低價(jià)(PRICE_LOW)、中值(PRICE_MEDIAN)、5(PRICE_TYPICAL)、6(PRICE_WEIGHTED)

例1:iMA("EURUSD",PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0)

表示:歐元1小時(shí)圖上,以收盤(pán)價(jià)計算的,20小時(shí)簡(jiǎn)單移動(dòng)平均線(xiàn),最新K線(xiàn)所對應位置的值

例2:iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2)

表示:在當前商品、當前K線(xiàn)周期圖表上,以收盤(pán)價(jià)計算的,20(天)指數移動(dòng)平均線(xiàn) 第3根K線(xiàn)所對應位置的值

其他如MACD指標、威廉指標、RSI、SAR、布林線(xiàn)等指標取值都與移動(dòng)平均線(xiàn)指標相類(lèi)似

3、在數組中求元素的移動(dòng)平均值。雙精度double型

iMAOnArray(數組名, 總數, 平均周期, 均線(xiàn)偏移, 平均模式, 位置)

這也與iMA函數差不多,不過(guò)數據源變?yōu)閿到M

從數組中不但可以求得移動(dòng)平均值,還可以求得RSI等指標值

4、求自定義指標的值

我們經(jīng)常自己編一些自定義指標,可用iCustom函數來(lái)取得自定義函數的值

iCustom(商品名,K線(xiàn)周期,自定義指標名稱(chēng),自定義指標參數1,參數2,參數3,,,自定義指標線(xiàn)編號,位置)

如果自定義指標只有一根指標線(xiàn),則自定義指標線(xiàn)的編號為0。

如果自定義指標有多根指標線(xiàn),則第一條自定義指標線(xiàn)的編號為0,第二條為1,第三條為2。。。

例如:iCustom(NULL,0,"mymacd",12,26,9,2,0)   (12,26,9)為自定義指標mymacd的三個(gè)參數

表示:求當前圖表中,自定義指標mymacd(12,26,9)的第3條指標線(xiàn)在最新位置的值

拋磚引玉,這里只是有代表性地列了幾個(gè)函數,詳細請查閱《MT4編程手冊》

MT4編程入門(mén)7:判斷語(yǔ)句

一、if語(yǔ)句

if語(yǔ)句很常用,也比較簡(jiǎn)單。

規則:如果小括號中的條件成立,則執行大括號中的語(yǔ)句;如果不成立,則跳過(guò)大括號。

例如:

if(a==1)

    {

     b=c+1;

    }

我們在編寫(xiě)報警指標的時(shí)候,就經(jīng)常用到這一語(yǔ)句:

如果“價(jià)格向上達到指定價(jià)位”,則“報警”

如果“MACD上穿”,則“報警”

如果“均線(xiàn)金叉”,則“報警”。等等

例:

int mark=0;

if( High[1]<1.0000 && High[0]>=1.0000 && mark!=1)

    {

     Alert(symbol(),"價(jià)格向上觸及1.0000");

     mark=1;

    }

if( Low[1]>1.0000 && Low[0]<=1.0000 && mark!=2)

    {

     Alert(symbol(),"價(jià)格向下觸及1.0000");

     mark=2;

    }

這是一個(gè)價(jià)格上、下穿1.0000時(shí)報警的判斷語(yǔ)句:

上穿報警條件:當第二根K線(xiàn)最高價(jià)小于1.0000,并且最新K線(xiàn)最高價(jià)大等于1.0000

下穿報警條件:當第二根K線(xiàn)最低價(jià)大于1.0000,并且最新K線(xiàn)最低價(jià)小等于1.0000

這里,mark是用作報警標記,mark的初值是0,

當上穿報警后,mark的值就改為1;當下穿報警后,mark的值就改為2;

當mark=0時(shí),說(shuō)明從未報過(guò)警,上、下穿都能報警;

當mark=1時(shí),說(shuō)明已經(jīng)上穿報過(guò)警了,不能再上穿報警了,但仍可下穿報警;

當mark=2時(shí),說(shuō)明已經(jīng)下穿報過(guò)警了,不能再下穿報警了,但仍可上穿報警。

二、if ... else語(yǔ)句

規則:如果小括號中的條件成立,則執行if下大括號中的語(yǔ)句1;如果不成立,則執行else下大括號中的語(yǔ)句2。

if(條件)

  {

  語(yǔ)句1;

  }

else

  {

  語(yǔ)句2;

  }

三、注意事項

1、只有語(yǔ)句后面才用到語(yǔ)句結束符“;” 條件、大、小括號后面都不用“;”

2、語(yǔ)句用大括號括起來(lái),但如果只有一行語(yǔ)句,則大括號可以省略

MT4編程入門(mén)8:循環(huán)

一幅K線(xiàn)圖有幾千上萬(wàn)條K線(xiàn),每根K線(xiàn)又各有開(kāi)收盤(pán)價(jià)、最高低價(jià)等數值,而且還有很多移動(dòng)平均線(xiàn)、MACD、RSI等指標值。

面對海量數據,我們必須用循環(huán)來(lái)實(shí)現數據的取值和賦值。

一、while循環(huán)

while(條件)

   {

   語(yǔ)句1

   語(yǔ)句2

   。。。

   }

規則:當小括號中的條件成立時(shí),就執行大括號中的語(yǔ)句,執行完了再判斷條件是否成立,如果條件成立就繼續執行大括號中的語(yǔ)句。

只要條件成立,程序就不停地運行大括號中的語(yǔ)句(循環(huán)體),直到小括號中的條件不再成立時(shí)結束循環(huán)。

它與if語(yǔ)句的區別是:if語(yǔ)句是當條件為真時(shí)運行一次;而while語(yǔ)句則是只要條件為真,循環(huán)體語(yǔ)句就不停地運行,直到條件為假時(shí)結束循環(huán)。

例:

   extern int 快線(xiàn)=12;

   extern int 慢線(xiàn)=26;

   double buffer[];

   int i=0;

   while(i<1000)

     {

      buffer=  iMA(NULL,0,快線(xiàn),0,MODE_EMA,PRICE_CLOSE,i)

                 -iMA(NULL,0,慢線(xiàn),0,MODE_EMA,PRICE_CLOSE,i);

      i++;

     }

這里,循環(huán)執行條件是i<1000,循環(huán)體中有兩個(gè)語(yǔ)句,一句是把兩條均線(xiàn)的差值賦給數組buffer,另一句“i++;”是每運行一次,i的值在原有基礎上增加1。這樣,隨著(zhù)循環(huán)的不斷運行,i的值逐漸增加,循環(huán)1000次后,i的值也就從0變?yōu)?000,此時(shí)“i<1000”就不再成立,循環(huán)結束。這樣,數組buffer[]中也就有了1000個(gè)值。

二、for循環(huán)

for循環(huán)與while循環(huán)在原理上是一致的,只是書(shū)寫(xiě)格式上有所區別

把上面的例子改成for語(yǔ)句:

   extern int 快線(xiàn)=12;

   extern int 慢線(xiàn)=26;

   double buffer[];

   for(int i=0; i<1000; i++)

     {

      buffer=  iMA(NULL,0,快線(xiàn),0,MODE_EMA,PRICE_CLOSE,i)

                 -iMA(NULL,0,慢線(xiàn),0,MODE_EMA,PRICE_CLOSE,i);

     }

與前面相比,我們注意到:

“int i=0;”語(yǔ)句從“while(i<1000)”上方移到循環(huán)條件“i<1000”的前面;

“i++;”語(yǔ)句從循環(huán)體中移到了循環(huán)條件“i<1000”的后面;

循環(huán)執行順序與while循環(huán)一致:

第一步、先執行小括號中的第1句:int i=0;

(此語(yǔ)句用來(lái)定義初始變量,在循環(huán)中僅執行一次,可以為沒(méi)有任何表達式的空操作符“;”)

第二步、再判斷小括號中的第2句是否成立:i<1000;

如果不成立,則循環(huán)結束;如果成立,則循環(huán)繼續運行,執行第三步

第三步、按順序執行大括號中的語(yǔ)句

第四步、執行小括號中的第1句:i++ (此語(yǔ)句即:每執行一次,i的值增加1)

然后回到第二步繼續執行循環(huán)。

再補充一點(diǎn):如果循環(huán)體中(大括號中)只有一行語(yǔ)句,大括號可以省略

MT4編程入門(mén)9:MT4自定義指標的結構

MT4自定義指標一般由四個(gè)部分構成:

(1)文件頭部

(2)參數、變量和數組的定義

(3)初始化函數init()

(4)主函數start()

一、文件頭部,也稱(chēng)為預處理程序

預處理程序以“#”開(kāi)頭,行尾無(wú)語(yǔ)句結束符“;”

常用的預處理程序有:

1、#property  indicator_chart_window

把指標顯示在主圖。如:均線(xiàn)、SRA等類(lèi)指標用到此語(yǔ)句

2、#property indicator_separate_window

把指標顯示在副圖。如:MACD、RSI、威廉等類(lèi)指標用到此語(yǔ)句

3、#property indicator_buffers 3

顯示3根指標線(xiàn)

4、#property indicator_color1 Red

第1根指標線(xiàn)的顏色為Red

5、#property  indicator_width1  1

第1根指標線(xiàn)的粗細分別為1

6、#property indicator_level1   0.00

在0.00值位置橫劃1條虛線(xiàn)

二、參數、變量和數組的定義

全局性的參數、變量、數組在此定義,局部變量可在start()函數中定義

三、初始化函數init()

init()在自定義指標加載時(shí)運行一次。

初始化函數的功能是“設置”。如果自定義指標需要劃線(xiàn),則必然用到此函數

四、主函數start()

當數據有變動(dòng)時(shí),start()就被觸發(fā)。數據變動(dòng)一次,start()就運行一次。

自定義指標的編程主要依靠此函數進(jìn)行。

start()函數的作用主要是取值和給指標線(xiàn)賦值,報警也在此函數內發(fā)起。

另外,還有一個(gè)反初始化函數deinit()

deinit()在自定義卸載時(shí)運行一次,可用以去除指標加載時(shí)init()所做的初始化操作。

MT4編程入門(mén)10:畫(huà)一條指標線(xiàn)

要畫(huà)指標線(xiàn),只要在程序中寫(xiě)明以下幾點(diǎn)就可以了:

第一、明確指標線(xiàn)所在窗口,是主圖還是副圖

第二、要建立數組,用以保存指標線(xiàn)在各個(gè)位置的值。

第三、要建立指標線(xiàn)與數組的對應關(guān)系,哪個(gè)數組對應哪條指標線(xiàn)

第四、要明確指標線(xiàn)的線(xiàn)型,是曲線(xiàn)還是柱線(xiàn)或者是箭頭

第五、如果指標線(xiàn)是箭頭,還要說(shuō)明是哪種箭頭

第六、給數組賦值

其中:

第一、二條寫(xiě)在文件頭部中,

第三、四、五條寫(xiě)在init()函數中(init函數僅在指標加載時(shí)運行一次)

第六條寫(xiě)在start()函數中(start函數在數據發(fā)動(dòng)變動(dòng)時(shí)運行,變動(dòng)一次運行一次)

下面以MACD為例說(shuō)明

我們知道,MACD指標由二條曲線(xiàn)和一組紅綠柱線(xiàn)組成。(下圖一)

其中:

白線(xiàn)是二根均線(xiàn)的差;

紫線(xiàn)是白線(xiàn)的移動(dòng)平均線(xiàn);

紅綠柱線(xiàn)則是白線(xiàn)和紫線(xiàn)的差,白線(xiàn)上穿紫線(xiàn),出現紅柱,下穿則出現綠柱。

我們從簡(jiǎn)單入手,先去除紫線(xiàn)和紅綠柱線(xiàn),僅保留其中的那根白線(xiàn),來(lái)看白線(xiàn)是怎樣畫(huà)出來(lái)的。

下面是全部語(yǔ)句:

#property indicator_separate_window

#property indicator_color1  White

#property indicator_level1  0

extern int FMA=12;

extern int SMA=26;

double     buf[];

int init()

  {

   SetIndexBuffer(0,buf);

   SetIndexStyle(0,DRAW_LINE);

   return(0);

  }

int start()

  {

   int limit=Bars-IndicatorCounted();

   for(int i=0; i<limit; i++)

    {

    buf=

        iMA(NULL,0,FMA,0,1,0,i)

       -iMA(NULL,0,SMA,0,1,0,i);

    }

   return(0);

  }

說(shuō)明如下:

==============================================

==============================================

以下為上述語(yǔ)句的簡(jiǎn)要說(shuō)明

#property indicator_separate_window

指標放在副圖

#property indicator_color1  White

第一條指標線(xiàn)為白色

#property indicator_level1  0

在副圖中零值位置上畫(huà)一條水平橫線(xiàn),

extern int FMA=12;

extern int SMA=26;

設立二個(gè)整數型變量,默認值為12和26,允許外部修改值

double     buf[];

設立一個(gè)數組

int init()

初始化函數。該函數在指標加載時(shí)只運行一次。init是系統默認的函數名,但使用時(shí)仍需要進(jìn)行創(chuàng )設,所以要加定義符int

  {

   SetIndexBuffer(0,buf);

   設置數組buf為第一條指標線(xiàn)

   SetIndexStyle(0,DRAW_LINE);

   設置第一條指標線(xiàn)線(xiàn)型為連續曲線(xiàn)

   return(0);

   函數結束語(yǔ)句

  }

int start()

指標觸發(fā)函數。與init函數不同,該函數在有數據變化時(shí)被觸發(fā),如果數據被不斷更新,則該函數將不斷執行。start也是系統默認的函數名,但使用時(shí)也仍然需要進(jìn)行創(chuàng )設,所以也要加定義符int

  {

   int limit=Bars-IndicatorCounted();

   自定義一個(gè)變量limit,并賦值

   Bars是圖表中的柱數

   IndicatorCounted()緩存中的柱數,就是已經(jīng)計算過(guò)的有值的柱數

   這樣limit的值就是未經(jīng)計算的柱數,這樣就可以起到優(yōu)化程序的作用。

   for(int i=0; i<limit; i++)

   循環(huán)語(yǔ)句。

   循環(huán)從i=0開(kāi)始,每循環(huán)一次i值增加1,一直循環(huán)到i<limit不滿(mǎn)足時(shí)結束循環(huán)

   由于循環(huán)變量i為一個(gè)新變量,所以要先定義,加上整型變量定義符int

   下面大括中為循環(huán)體,此例中只一條語(yǔ)句

    {

    buf=

        iMA(NULL,0,FMA,0,1,0,i)

       -iMA(NULL,0,SMA,0,1,0,i);

    }

   給數組buf賦值,其值分別為相應位置上兩條均線(xiàn)的差

   i是水平位置序號值,即燭柱從右到左的序號,右邊第一個(gè)燭柱序號為0

   return(0);

   start函數結束

  }

MT4編程入門(mén)11:MT4的報警

報警功能是MT4的一大特色。它可以在預定的條件達到時(shí),發(fā)出警報。

與指標畫(huà)線(xiàn)相比,報警語(yǔ)句顯得非常簡(jiǎn)單,

只要在判斷語(yǔ)句中加一個(gè)報警語(yǔ)句即可

報警方式有:彈出窗口報警、音樂(lè )報警、郵件報警等。

如果郵箱開(kāi)通了手機短信通知,則郵件報警的內容會(huì )即時(shí)轉發(fā)到手機上。

1、彈出窗口報警:

當(條件達到)執行此語(yǔ)句時(shí),以彈出窗口警告。

格式:Alert(內容1,內容2,內容3,內容4);

報警內容為字符串型,內容之間加逗號

例如:

Alert( Symbol(),"4小時(shí)圖MACD上穿零軸");

2、音樂(lè )報警:

當(條件達到)執行此語(yǔ)句時(shí),播放一段音樂(lè )。

格式:PlaySound("音樂(lè )文件名.wav");

文件類(lèi)型為wav格式,并且保存在C:\Program Files\MetaTrader4\sounds目錄中

文件名加引號

3、郵件報警:

當(條件達到)執行此語(yǔ)句時(shí),發(fā)送一個(gè)郵件。

(收發(fā)件人地址在MT4系統中設置詳見(jiàn)《MT4編程實(shí)例1:一個(gè)簡(jiǎn)單的小程序,讓你的手機搖身變成外匯行情接收機》)

格式:SendMail(標題1+標題2, 內容1+內容2);

標題之間以加號連接,內容之間也以加號連接

郵件標題和郵件內容以逗號間隔

下面是《價(jià)格穿越某均線(xiàn)報警》舉例

+---------------------------------

#property indicator_chart_window

extern int 警戒均線(xiàn)=20;

int mark=0;

int start()

{

    if(   iHigh(0,0,0) >= iMA(0,0,警戒均線(xiàn),0,MODE_SMA,PRICE_CLOSE,0)

       && iHigh(0,0,1) <  iMA(0,0,警戒均線(xiàn),0,MODE_SMA,PRICE_CLOSE,1)

       && mark != 1   )

          {

            Alert(Symbol(),"向上觸及30均線(xiàn)");

            mark = 1;

          }

    if(   iLow(0,0,0) <= iMA(0,0,警戒均線(xiàn),0,MODE_SMA,PRICE_CLOSE,0)

       && iLow(0,0,1) >  iMA(0,0,警戒均線(xiàn),0,MODE_SMA,PRICE_CLOSE,1)

       && mark != 2   )

          {

            Alert(Symbol(),"向下觸及",警戒均線(xiàn),"均線(xiàn)");

            mark = 2;

          }

    return(0);

}

+---------------------------------

部分語(yǔ)句說(shuō)明:

#property indicator_chart_window

此句是把程序放在主圖,當然這此例中放在副圖也一樣

extern int    定義一個(gè)外部參數變量,整數型,允許外部值修改

int                定義一個(gè)整數型變量

int start()    定義觸發(fā)函數

if()                判斷

iHigh()        最高價(jià)值函數

iLow()         最低價(jià)值函數

iMA()           移動(dòng)平均線(xiàn)值函數

Alert()         報警函數

Symbol()    商品名稱(chēng)函數

&&              邏輯運算符“并且”

!=                邏輯運算符“不等于”

MODE_SMA     簡(jiǎn)單移動(dòng)平均模式

PRICE_CLOSE  以收盤(pán)價(jià)計算

再說(shuō)一下自定義變量mark的作用:

mark的初值是0,當上穿報警時(shí)給mark賦值1,當下穿報警時(shí)給mark賦值2。

這樣當mark的值為1時(shí),說(shuō)明已經(jīng)對上穿報過(guò)警了,就不能再次對上穿報警;

當mark的值為2時(shí),說(shuō)明已經(jīng)對下穿報過(guò)警了,就不能再次對下穿報警。

這樣就起到了消除重復報警的作用。

MT4編程入門(mén)

2009-05-01 14:42
MT4編程入門(mén)[工具篇]為了達到MT4自由編程的目的,我們首先需要了解MT4編程工具MetaEditor,這個(gè)工具是安裝MT4后,在程序列表里面自動(dòng)出現的MT4編程工具。

4 g- k6 g1 q+ k6 S6 n   p0 x7 @外匯牌價(jià)-外匯匯率-外匯論壇-黃金-期貨-投資理財-外匯開(kāi)戶(hù)-炒外匯-外匯保證金啟動(dòng)MetaEditor的方法:

2 m% }   I2 D, W6 f方法一、可以從Windows—〉開(kāi)始—〉所有程序---〉MetaTrader --〉MetaEditor來(lái)啟動(dòng)

( ?: b, B( m$ I: M1 e6 U" k6 s! J富倫麥匯 外匯論壇方法二、當你已經(jīng)啟動(dòng)了MetaTrader的情況下,點(diǎn)擊MetaTrader頂部菜單的 來(lái)啟動(dòng)

/ @! K/ D2 N4 @: D3 U. D$ Fwww.trader-club.cn方法三、當你雙擊一個(gè)MT4的指標源碼文件的時(shí)候,Windows會(huì )自動(dòng)啟動(dòng)MetaEditor并將此原文件調入MetaEditor富倫麥匯 外匯論壇' E' w4 H7 e4 E% F

MetaEditor基本使用方法:

, m' s   T/ _- q! B8 u1、 建立新指標Indicator或者智能交易Expert ,2種文件的編譯后文件后綴都是.ex4,源碼文件本身后綴都是.mq4外匯牌價(jià),外匯匯率,外匯論壇,炒外匯,保證金交易,黃金,期貨& O0 M8 t   R6 s3 w: j7 y- ^

2、 說(shuō)明:指標文件Indicator必須放置在MT4安裝目錄的\expert\indicator\目錄下;智能交易文件Expert必須放置在MT4安裝目錄的\expert\目錄下;放置在上述目錄下的.ex4(指標|智能交易)文件,會(huì )被MT4自動(dòng)識別并列入程序導航條下的“智能交易”以及“自定義指標”欄目里,當你在使用MetaTrader的時(shí)候,就可以直接附加這些技術(shù)文件到你的K線(xiàn)圖表上。

. S7 u8 V1 y' j- C外匯牌價(jià),外匯匯率,外匯論壇,炒外匯,保證金交易,黃金,期貨3、 如上所述,MetaTrader只認識.ex4文件,那末當我們拿到.mq4原碼文件后,如何生成.ex4文件呢?首先用MetaEditor打開(kāi)原碼文件(保證原碼文件在上述的目錄里),點(diǎn)擊MetaEditor頂部橫條的Compile按鈕來(lái)編譯成.ex4文件,當MetaEditor底部的編譯結果顯示:0 error(s), 0 warning(s) 就表示程序本身沒(méi)有語(yǔ)法問(wèn)題,并且已經(jīng)編譯成同名的.ex4文件了。富倫麥匯 外匯論壇. [/ D( Q4 u( n3 b$ }8 x, k

MetaEditor新建指標|智能交易的方法:8 `% R* [5 J. y( n5 j* a+ A

一種是傳統的循規蹈矩的建立方法:

4 b6 p8 ~   c1 x- p9 S- \外匯牌價(jià),外匯匯率,外匯論壇,炒外匯,保證金交易,黃金,期貨

1.jpg (12.19 KB)

2007-9-30 14:03

富倫麥匯 外匯論壇& j% m, l1 p3 B8 V; [

點(diǎn)擊MetaEditor頂部菜單的 按鈕

   j" x7 ^) W1 \2 P$ H) C& X* Hwww.trader-club.cn選擇你想創(chuàng )建的程序類(lèi)型,在MT4里面有很多不同作用的文件分類(lèi),放置在對應的目錄下起作用。上面圖表里面我們經(jīng)常用到的是:Expert Advisor(智能交易) Custom Indicator(自定義指標)。富倫麥匯 外匯論壇) `7 c, p& x" @& N# ^2 }

點(diǎn)擊下一步,根據窗口的要求輸入你想使用的文件名稱(chēng),并指定所需要的“輸入變量”和初始值,最后確認進(jìn)入這個(gè)指標的原碼窗口中。

& K# r7 X) d0 u6 ^. l3 J! X, P在這里你會(huì )看到有一部分代碼已經(jīng)出現,這是MetaEditor根據你前面的選擇和輸入變量,寫(xiě)入的代碼。其實(shí)完全可以不理會(huì )前面所輸入的那些變量,直接采用修改代碼的方式完成指標所有屬性的設定。這就是我們要說(shuō)的第2種建立指標的反應。外匯牌價(jià),外匯匯率,外匯論壇,炒外匯,保證金交易,黃金,期貨; L4 u6 z/ q" b0 i; U" I

第2種建立指標的方法:外匯牌價(jià)-外匯匯率-外匯論壇-黃金-期貨-投資理財-外匯開(kāi)戶(hù)-炒外匯-外匯保證金7 h* J+ W7 g% A. f# n. O' h

點(diǎn)擊按鈕彈出窗口后,選擇你想要編制的文件類(lèi)型,下一步寫(xiě)入指標名稱(chēng),在下一步后面的選擇可以不管,一概下一步,最后進(jìn)入指標源碼窗口,注意:這時(shí)候拷貝一個(gè)已經(jīng)有的指標源碼的代碼到你這代碼窗口里面,將相關(guān)參數進(jìn)行設置,刪除不必要的代碼部分,完成基本創(chuàng )建。www.trader-club.cn5 b: V$ a% f" i. Y! P7 B' Y6 d

MetaEditor中幫助文件的使用方法:520FX外匯牌價(jià),外匯匯率,投資理財,外匯論壇,炒外匯, K& c4 b9 A6 v' ?

1、 MetaEditor程序界面右側豎欄是個(gè)非常好的幫助工具區,你可以在這里直接順序查看分類(lèi)函數表、搜索函數名稱(chēng)和使用方法、以及直接查看MetaTrader相關(guān)目錄下的程序文件的名稱(chēng)并可以隨時(shí)調入MetaEditor。

+ s" ^   Q9 L9 e, K2 }) l: uwww.trader-club.cn2、 在MetaEditor中間的程序原碼窗口里面,當你研究別人的原碼時(shí),出現一個(gè)你不熟悉的函數,這時(shí)候你可以將光標移動(dòng)到這個(gè)函數上面,按F1,則這個(gè)函數的使用方法,會(huì )顯示在底部的窗口里面,這是一個(gè)非常有用的查詢(xún)方式!富倫麥匯 外匯論壇3 f) n$ `! p% x( _! Q

3、 底部窗口會(huì )顯示你查詢(xún)的函數說(shuō)明、使用方法、例子等等內容。

; ~* ]. {2 R& Q% a5 w外匯牌價(jià)-外匯匯率-外匯論壇-黃金-期貨-投資理財-外匯開(kāi)戶(hù)-炒外匯-外匯保證金富倫麥匯 外匯論壇8 s) T* {7 Q) I' I* \3 W

好了!看到這里,你應該對MT4 的編程工具有了初步的了解,說(shuō)實(shí)話(huà),確實(shí)很簡(jiǎn)單,很容易掌握。
 


MT4智能交易系統介紹

智能交易系統軟件是一個(gè)創(chuàng )新的交易工具,允許客戶(hù)對自己的交易策略進(jìn)行設定并進(jìn)行測試。還可以創(chuàng )建新的技術(shù)指標

智能交易系統軟件是用來(lái)對交易過(guò)程全程自動(dòng)化,免除交易者連續對市場(chǎng)進(jìn)行日常煩瑣的監護。 許多專(zhuān)業(yè)交易商利用多層交易系統,對不同的市場(chǎng)和在不同的環(huán)境下進(jìn)行操作。通常他們在著(zhù)名的分析軟件包里對交易戰略進(jìn)行編寫(xiě)和測試,比如,MetaStock 和 TradeStation。

使用MetaTrader4智能交易系統軟件,招招領(lǐng)先,你可以把交易系統產(chǎn)生的信號和真實(shí)賬戶(hù)聯(lián)系起來(lái),這樣連接以便于能追蹤和管理你的某個(gè)時(shí)段的開(kāi)倉部位,提交的訂單和止損單。

什么是智能交易系統?它是一個(gè)用特殊的MetaQuotes 語(yǔ)言 4 (MQL 4)編寫(xiě)的自動(dòng)交易系統(ATS),和特定的圖表聯(lián)系在一起。智能交易系統不僅能通知交易商交易機會(huì ),而且還能自動(dòng)執行交易賬戶(hù)上的交易,直接發(fā)送到交易服務(wù)器。和許多的IT系統一樣,智能交易系統系統支持歷史數據戰略測試,圖表上表示的登入/登出點(diǎn)。而且,智能交易系統的可執行碼分別存儲于源文件和加密的執行文件中-這種安排保證了交易商所使用的邏輯隱藏(如有必要的話(huà)),而不會(huì )泄密。

編寫(xiě)自己的智能交易系統軟件也非常容易:嘗試一下吧!不需要是專(zhuān)業(yè)編程高手,你只需要學(xué)會(huì )使用非常簡(jiǎn)單的語(yǔ)言-MQL 4語(yǔ)言。即使用戶(hù)不能自行編寫(xiě)智能交易系統規則,但是他需要熟悉最近的編程技能,不過(guò)很可能不需一個(gè)小時(shí)他便掌握了這些規則并能編寫(xiě)程序。

無(wú)數的交易商為MetaStock 和 TradeStation軟件開(kāi)發(fā)了多種多樣的交易戰略。其中多數均被翻譯成MQL 4語(yǔ)言,這就使得用戶(hù)可以把前期累計的經(jīng)驗并合到里面去。有些即學(xué)即用智能交易系統版本可以從本頁(yè)下載。

MetaTrader4 軟件將智能交易系統在程序的根目錄/Experts 子目錄里保存為*.MQ4(source text) 和 *.EX4 (可執行碼)文件。交易商可以無(wú)限量地保存智能交易系統數據,這些數據可以通過(guò)導航條窗口容易地加以管理。

創(chuàng )建自定義智能交易系統數據的程序以及將數據和交易終端連接在MetaTrader4 用戶(hù)指南里有詳細的描述。

MetaQuotes 4 語(yǔ)言是用來(lái)編寫(xiě)自定義智能交易系統軟件,以便使交易程序管理自動(dòng)化以及執行交易商自己的交易策略。MetaQuotes 4 語(yǔ)言易學(xué)、易用、易創(chuàng )建。MetaQuotes 4 語(yǔ)言包括相當數量的變量,用來(lái)控制當前和前期的報價(jià)、主要的算術(shù)和邏輯運算和特征,主要的內置指標和用來(lái)開(kāi)啟和控制頭寸的命令。在語(yǔ)法上,該語(yǔ)言和由TradeStation 技術(shù)有限公司開(kāi)發(fā)的簡(jiǎn)易語(yǔ)言相似,但是它有其自身的一些具體特征。

程序代碼是用MetaEditor4編輯器編寫(xiě)的,它能夠用不同的色彩集中反映MQL 4語(yǔ)言的不同結構,因此,有助于用戶(hù)熟悉專(zhuān)家系統的文本。 注解開(kāi)始于//符號(雙斜線(xiàn))。注解也可以用“斜線(xiàn)-星號”-“星號-斜線(xiàn)”組合(/*[注解]*/, 就像在 "C"編程語(yǔ)言一樣)。

設定和控制操作戰略,交易商保存一份日志文件,存儲產(chǎn)生的信號信息、變量輸出和已執行交易的結果。智能交易系統日志保存在MetaTrader4 目錄下/logs/YYYYMMDD.log 文件里。當前的日志可以從下方的“終端”窗口(日志標簽)直接進(jìn)入。

進(jìn)入MQL 4語(yǔ)言的目錄系統,要么按目錄按鈕或從工具菜單打開(kāi)MetaQuotes語(yǔ)言詞典窗口操作。這個(gè)短小的手冊包含分類(lèi)、運算、存儲詞語(yǔ)等功能,使得用戶(hù)對該語(yǔ)言所用到的每個(gè)元素都有所了解。

1. 主要語(yǔ)言結構

像其他任何語(yǔ)言一樣,MQL4有一套構成基本結構的主要組成元素。這些組成元素以一種特殊的方式組合排列的,以便代表適當的陳述和表達。

語(yǔ)言的主要對象就是數據,包括三種類(lèi)型:數字、邏輯和排列。 所有的數值均采用雙格式,邏輯數據可能包括真值和假值。排列就是用省略號標注的一系列字符。字符串也叫做文本串。數據可以包含在適當類(lèi)型的變量之中,或直接由程序的源文本表現出來(lái)。

一個(gè)MetaQuotes 語(yǔ)言陳述指一個(gè)完整的用法說(shuō)明。陳述可以包括保留字、運算符號、數據、變量、表達式或標點(diǎn)符號,而且總是以分號結尾。

保留字指具有特定或特別意義的預先設定的詞語(yǔ)。

運算符號指在數據、變量和(或)表達式中特定的具體運算符號。

變量是用來(lái)限制數字、排列或邏輯數據的。

表達式指保留字、變量、數據和運算符號的組合,因為它們具有語(yǔ)言的3中類(lèi)型(保留字、變量、數據)中的任一價(jià)值。

標點(diǎn)符號用來(lái)代表表達式,界定參數,區分詞語(yǔ)或重新排列計算順序。

2. 標點(diǎn)符號


字符
 
名稱(chēng)
 
描述
 

;
 
分號
 
結束MetaQuotes 4語(yǔ)言指令
 

( )
 
圓括號
 
對表達式的值進(jìn)行分組,改變計算順序。

標注函數參數并啟動(dòng)變量描述表達式

標注變量的初始值并在變量描述區排列組合
 

,
 
逗號
 
提取函數值時(shí),對參數進(jìn)行區分

在變量描述區對變量進(jìn)行區分

在描述排列長(cháng)度時(shí)對數字進(jìn)行區分

區分進(jìn)入排列元素的指標
 

:
 
冒號
 
用在變量描述區,啟動(dòng)變量列表
 

" "
 
引號
 
標注一個(gè)文本(字)串。
 

[ ]
 
方括號
 
標注數字,確定排列長(cháng)度

標注進(jìn)入某個(gè)特殊排列元素的數字(指數)

標注進(jìn)入歷史數據的期間數字
 

{ }
 
波形括號
 
充當運算括號??梢杂脕?lái)代替 begin...end。將指令系列隔離成塊。
 

/* */
 
注解括號
 
標注注解
 

//
 
雙斜線(xiàn)
 
明確說(shuō)明單串注解的開(kāi)始
 


3. 運算符號

運算符號分成5 組:分配符號、字串符號、數學(xué)運算符號、相關(guān)符號和邏輯符號。

3.1. 分配符號

分配符號'='(等號)是用來(lái)將具體數值(數字、排列或邏輯,視變量類(lèi)型而定)分配到變量中。分配值可以是表達式的結果。比如:

變量: Counter(0);

...

Counter = Counter + 1;結果,反向變量取值為1。變量值也可以分配來(lái)對元素進(jìn)行排列。

3.2. 字串符號

操作文本串,只有一個(gè)運算符可以用上: '+' (加號)。 它是用來(lái)連接兩個(gè)字串的。比如:

變量: 字串(" ");

...

字串 = "some_" + "text";

結果,字串變量包含“some_text”這樣的文本串,允許將字串與數字和邏輯值結合起來(lái)。在后面的這個(gè)例子里,數字及或邏輯值在結合前,應轉化為字串類(lèi)型。比如:

String = "string" + 1;

因此,字串變量將包含"string1"的文本串。

操作數不僅可以是數值,也可以是相應的含有這樣數值類(lèi)型的變量,以及表達式,經(jīng)執行后,便產(chǎn)生這樣的數值。

3.3. 數學(xué)符號

4種主要的數學(xué)運算:加法- '+' (加號)、減法-'-' (減號)、乘法-'*' (星號)、除法-'/' (斜線(xiàn)),都用在計算數值的數學(xué)表達式里。

數學(xué)表達式的例子:( Ask + Bid ) / 2 , High[1] + 20 * Point

3.4. 相關(guān)符號

相關(guān)符號用來(lái)對同種類(lèi)型的兩個(gè)數值進(jìn)行比較。 第一個(gè)數值和第二個(gè)數值進(jìn)行比較,產(chǎn)生邏輯值“真值”或“假值”, “小于”-'<' (左小于號), “大于”-'>' (右小于號);“等于”-'=' (等號);“不等于”-'<>'; “小于或等于”-'<='; “大于或等于”-'>='。由相關(guān)表達式而取得的邏輯值用在MetaQuotes II語(yǔ)言的控制結構里。比如:

if FreeMargin < 1000 then exit; 這個(gè)字串按詞典順序進(jìn)行比較,即,"aaa" 字串被認為小于字串 "zzz"。當邏輯值進(jìn)行比較時(shí),我們應該牢記:“True”的邏輯值的數值為1,而“False”的邏輯值的數值為“0”。

3.5. 邏輯符號

邏輯符號使用戶(hù)能夠將邏輯值結合起來(lái)。邏輯OR - '|' (垂直線(xiàn)或豎杠);邏輯AND-'&' (“和”符號)。邏輯符號有相應的保留字OR, AND, NOT。 比如:

If FreeMargin > 100 and FreeMargin < 1000 then print( "Free margin is ", FreeMargin );注意:當OR 和 AND運算符號是雙值時(shí),即它們有兩個(gè)值進(jìn)行運算,NOT運算符號是單值,即它之適用于單值。比如:

Variable: Condition1( True );

...

Condition1 = FreeMargin >= 1000;

If not Condition1 then exit;

下面是邏輯運算符號的結果表:
Value1
 
Value2
 
Value1 OR Value2
 

True
 
True
 
True
 

True
 
False
 
True
 

False
 
True
 
True
 

False
 
False
 
False
 

Value1
 
Value2
 
Value1 AND Value2
 

True
 
True
 
True
 

True
 
False
 
False
 

False
 
True
 
False
 

False
 
False
 
False
 

Value1
 
 
 
NOT Value1
 

True
 
 
 
False
 

False
 
 
 
True
 


4.固定字

MetaQuotes 4 語(yǔ)言使用下面的幾組固定字。

1. 邏輯符號。

AND, NOT, OR.

2. MQL 4語(yǔ)言指令。

Array, Begin, Break, Continue, Define, Downto, Else, End, Exit, For, If, Input, Then, To, Variable, While。界定語(yǔ)言指令結構的固定字也叫做關(guān)鍵字。

3. 內置函數。

Abs, AccName, AccountName, Alert, Ceil, CloseOrder, Comment, Cos, CurTime, Day, DayOfWeek, DeleteOrder, Exp, Floor, Highest, Hour, iADX, iATR, iBANDS, iCCI, iMA, iMACD, iMFI, iMOM, iRSI, iSAR, iSTO, iWPR, IsDemo, IsIndirect, LastTradeTime, Log, Lowest, Minute, Mod, ModifyOrder, Month, MoveObject, NumberToStr, Ord, OrderValue, Period, Pow, Print, PrintTrade, Rand, Round, ServerAddress, SetArrow, SetObjectText, SetOrder, SetText, Sin, Sqrt, Srand, Symbol, Tan, TimeToStr, Year.

4. 預先設定用戶(hù)變量(用戶(hù)定義變量)。

Lots, StopLoss, TakeProfit, TrailingStop.

5. 預先設定交易終端變量。

AccNum, AccountNumber, Ask, Balance, Bars, Bid, Close, Credit, Equity, FreeMargin, High, Low, Margin, Open, Point, PriceAsk, PriceBid, PriceHigh, PriceLow, PriceTime, Time, TotalProfit, TotalTrades, Volume.

6. 預先設定內置函數參數(宏命令)。

MODE_CLOSE, MODE_EMA, MODE_HIGH, MODE_LOW, MODE_MAIN, MODE_MINUSDI, MODE_OPEN, MODE_PLUSDI, MODE_SIGNAL, MODE_SMA, MODE_STOPLOSS, MODE_TAKEPROFIT, MODE_VOLUME, MODE_WMA, OBJ_HLINE, OBJ_SYMBOL, OBJ_TEXT, OBJ_TRENDLINE, OBJ_VLINE, OP_BUY, OP_BUYLIMIT, OP_BUYSTOP, OP_SELL, OP_SELLLIMIT, OP_SELLSTOP, SYMBOL_ARROWDOWN, SYMBOL_ARROWUP, SYMBOL_CHECKSIGN, SYMBOL_STOPSIGN, SYMBOL_THUMBSDOWN, SYMBOL_THUMBSUP, VAL_CLOSEPRICE, VAL_CLOSETIME, VAL_COMISSION, VAL_COMMENT, VAL_LOTS, VAL_OPENPRICE, VAL_OPENTIME, VAL_PROFIT, VAL_STOPLOSS, VAL_SWAP, VAL_SYMBOL, VAL_TAKEPROFIT, VAL_TICKET, VAL_TYPE.

實(shí)際上,上述固定字為宏記錄器,即語(yǔ)法分析程序用數值取而代之。宏記錄器的引入簡(jiǎn)化了編寫(xiě)用戶(hù)功能要求的程序:更加方便、無(wú)關(guān)聯(lián)的重要詞語(yǔ)可以用來(lái)替代一些函數參數值。同樣可以用于色彩名稱(chēng)。

7. 色彩。

AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown, BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan, DarkGoldenrod, DarkGray, DarkGreen, DarkKhaki, DarkMagenta, DarkOliveGreen, DarkOrange, DarkOrchid, DarkRed, DarkSalmon, DarkSeaGreen, DarkSlateBlue, DarkSlateGray, DarkTurquoise, DarkViolet, DeepPink, DeepSkyBlue, DimGray, DodgerBlue, FireBrick, FloralWhite, ForestGreen, Fuchsia, Gainsboro, GhostWhite, Gold, Goldenrod, Gray, Green, GreenYellow, Honeydew, HotPink, IndianRed, Indigo, Ivory, Khaki, Lavender, LavenderBlush, LawnGreen, LemonChiffon, LightBlue, LightCoral, LightCyan, LightGoldenrod, LightGreen, LightGrey, LightPink, LightSalmon, LightSeaGreen, LightSkyBlue, LightSlateGray, LightSteelBlue, LightYellow, Lime, LimeGreen, Linen, Magenta, Maroon, MediumAquamarine, MediumBlue, MediumOrchid, MediumPurple, MediumSeaGreen, MediumSlateBlue, MediumSpringGreen, MediumTurquoise, MediumVioletRed, MidnightBlue, MintCream, MistyRose, Moccasin, NavajoWhite, Navy, OldLace, Olive, OliveDrab, Orange, OrangeRed, Orchid, PaleGoldenrod, PaleGreen, PaleTurquoise, PaleVioletRed, PapayaWhip, PeachPuff, Peru, Pink, Plum, PowderBlue, Purple, Red, RosyBrown, RoyalBlue, SaddleBrown, Salmon, SandyBrown, SeaGreen, Seashell, Sienna, Silver, SkyBlue, SlateBlue, SlateGray, Snow, SpringGreen, SteelBlue, Tan, Teal, Thistle, Tomato, Turquoise, Violet, Wheat, White, WhiteSmoke, Yellow, YellowGreen.

所有的固定字均是非敏感字號,即它們可以小寫(xiě)也可以大寫(xiě)。

4.1. 智能交易系統向導

智能交易系統向導提示MQL 4允許編寫(xiě)智能交易系統、自編指標、自編腳本和從模板中進(jìn)行編輯

 

預先設定參數或變量的名稱(chēng),將會(huì )自動(dòng)在文本編輯欄中出現參數框架:

4.2. MetaQuotes 4 語(yǔ)言的指令結構

4.2.1. 變量宣告和語(yǔ)句

在計算過(guò)程中保存臨時(shí)數據要求使用變量。變量在本程序的開(kāi)頭部分就用保留字、變量、排列和定義進(jìn)行了敘述。他允許使用這些詞語(yǔ)的負數形式,即 “ Variables, Arrays and Defines”。 這些詞中間總有一個(gè)開(kāi)始變量的宣告敘述。這些詞語(yǔ)的差別如下: "variable" 語(yǔ)句簡(jiǎn)單變量,"array"語(yǔ)句排列, "define" 語(yǔ)句附加用戶(hù)定義的變量,類(lèi)似于預先界定的用戶(hù)變量,均可以通過(guò)設置對話(huà)框進(jìn)行修改,即從外部修改。然而,又不像預先界定的變量,用戶(hù)變量可以在程序內部的計算過(guò)程中進(jìn)行更改。

變量宣告語(yǔ)法:

變量:名稱(chēng)(初期值);這里名稱(chēng)就是變量的名字;“初期值”就是變量的起初值。初期值對變量的類(lèi)型-數字、字串或邏輯值進(jìn)行界定。

一個(gè)數字變量宣告的例子:

Variable : Counter( 0 );

一個(gè)字串變量宣告的例子:

Variable : String1( "任意字串" );

一個(gè)邏輯變量宣告的例子:

Variable : MyCondition( false );

數組聲明語(yǔ)法:

Array : ArrayName[Array length]( 初始值 );其中,數組長(cháng)度有一個(gè)或若干(多達4)個(gè)數字-數字 - number[, number [, number [, number]]].

MetaQuotes 4語(yǔ)言里, 數組可能是1-,2-,3-,4-個(gè)元素長(cháng)度,一般情況下,數組就是一組可以用同一個(gè)名稱(chēng)查找到的、并按照相繼成行定位數組且給定了數組元素的序列號(數)的變量。數組方便于對同樣類(lèi)型的數據排序。數組的一個(gè)典型例子就是交易終端的歷史數據,比如,收盤(pán)、開(kāi)盤(pán)、高點(diǎn)位、低點(diǎn)位、交易量。這些數據作為單一元素數組的。比如, Close[ 5 ] 指后退5個(gè)交易期間的收盤(pán)值。兩個(gè)元素的數組可能是一個(gè)簡(jiǎn)單表格,其中第一個(gè)分量為行而第二個(gè)分量則為列。

Array: MyTable[ 10, 5 ]( 0 ); // 一個(gè)10行5列的表格。

...

print( MyTable[ 2, 4 ] ); // 打印第二行的第4個(gè)元素

數組可能包括任何類(lèi)型的數值-數字、字串或邏輯值,但是應該為同一類(lèi)型,其中的初期值在數組被宣告時(shí)為特定的。

附加用戶(hù)定義變量宣告語(yǔ)法:

定義:名稱(chēng)(初期數);其中名稱(chēng)為變量名稱(chēng);初期數為變量起初的數字值。

應該注意,附加用戶(hù)定義變量可能只為數字類(lèi)型。如上所述,用戶(hù)定義變量可以在程序的計算過(guò)程中進(jìn)行修改。這些修改只能運用到智能交易系統的當前時(shí)段,直到特殊的智能交易系統從圖表中刪除或客戶(hù)終端的操作結束。當新的智能交易系統時(shí)段啟動(dòng)時(shí),用戶(hù)定義變量值將重新初始化。

4.2.2. 退出語(yǔ)句

退出報告中斷智能系統軟件的操作。也就是所謂的預先設定的程序終止。

4.2.3. IF-THEN條件語(yǔ)句

If-Then條件語(yǔ)句使得控制智能交易系統指令的執行順序得以可能。該語(yǔ)句可能有不同的方式編寫(xiě):

if Condition then Statement;or

if Condition then begin

Statement;

Statement;

...

end;其中,條件為一個(gè)邏輯表達式,取值為T(mén)rue 或 False;

"Statement" 指MetaQuotes II語(yǔ)言中的任何指令。符號括號Begin – End可能被波形括號{ }所替代。

條件語(yǔ)句可能被用在對程序進(jìn)行分支。為達到此目的,另一個(gè)關(guān)鍵字Else要用上。語(yǔ)法:

if Condition then Statement1 else Statement2;or

if Condition then begin

Statement;

Statement;

...

end

else

Statement;

Statement;

...

end;or

if Condition then begin

Statement;

Statement;

...

end

else Statement2;or

if Condition then Statement1

else

Statement;

Statement;

...

end;可以使用嵌套式的條件語(yǔ)句。一般說(shuō)來(lái),語(yǔ)句可能由MetaQuotes II語(yǔ)言的任何合法指令表示,除非變量宣告,因為嚴格來(lái)說(shuō),變量宣告并不是一個(gè)可執行語(yǔ)句。

4.2.4. WHILE循環(huán)

WHILE循環(huán)確保在循環(huán)條件有效時(shí),包含在循環(huán)主體中的語(yǔ)句的多次執行。一個(gè)循環(huán)可以用Break 語(yǔ)句提前終止。迭代可以通過(guò)使用Continue語(yǔ)句停止。這個(gè)語(yǔ)句造成循環(huán)的下一個(gè)迭代開(kāi)始,即Continue后面的語(yǔ)句直到循環(huán)主體結束在本迭代中不得執行。在條件語(yǔ)句中用Break 和 Continue是合理的。語(yǔ)法:

while Condition begin

Statement;

[break;][continue;]

...

end;其中,條件是循環(huán)執行條件-在每個(gè)循環(huán)迭代之前計算出的一個(gè)邏輯表達式,取值為T(mén)rue 或 False;

語(yǔ)句是MetaQuotes 4語(yǔ)言的任何指令。

符號括號Begin – End表示循環(huán)主體,可以被波形括號{ }替代。

“Break and Continue”描述也不是強制性的。

Example:

Counter = 1;

while Counter <= Bars begin

print( Close[ Counter - 1 ] );

Counter = Counter + 1;

end;這個(gè)例子說(shuō)明一個(gè)將要執行的循環(huán),基準次數,或者,如果基準=0,而且循環(huán)就不止一次。

4.2.5. For 循環(huán)

For循環(huán)確保在循環(huán)主體中所包含的具體次數的語(yǔ)句執行。語(yǔ)法:

for NumberVariable = InitialValue to|downto LimitValue begin

Statement;

[break;][continue;]

...

end; 其中數字變量就是在每次迭代之后循環(huán)要么增加或者減少到1的循環(huán)變量 (視使用關(guān)鍵字To 或 Down to而定);

初期值指循環(huán)變量的起初數值。

語(yǔ)句指MetaQuotes 4 語(yǔ)言的任何指令。

To or Downto 確定循環(huán)變量增加到1(To)或者減少到1(Downto);

限值是循環(huán)變量的邊際數值。

操作符brackets Begin – End表示循環(huán)主體,可以被波形括號{}取而代之。

Break 和Continue語(yǔ)句并非是強制性的。

Example: 比如:

for Counter = 1 to 10 begin

if Counter > Bars then break;

print( Close[ Counter ] );

end; 這個(gè)例子說(shuō)明一個(gè)可能被執行10次的環(huán)。但是,若基準值小于10, 循環(huán)就會(huì )提前終止,也就是說(shuō)循環(huán)執行BARS次。

4.2.6. BREAK中斷語(yǔ)句

中斷語(yǔ)句確保一個(gè)For 循環(huán)或一個(gè)While循環(huán)早點(diǎn)終止。前例不僅說(shuō)明循環(huán)執行,也說(shuō)明了中斷語(yǔ)句的使用?!癇reak”語(yǔ)句不僅用于循環(huán)主體之外。循環(huán)是嵌套式的,中斷語(yǔ)句中離其最近的循環(huán)。換言之,中斷內部循環(huán)的語(yǔ)句并沒(méi)中斷外部循環(huán)。

4.2.7. CONTINUE繼續語(yǔ)句

CONTINUE繼續語(yǔ)句提前終止循環(huán)的迭代,并從循環(huán)主體開(kāi)始下一個(gè)迭代。換句話(huà)說(shuō),在Continue之后語(yǔ)句被忽略。比如:

for Counter = 1 to 10 begin

...

if Counter > Bars then continue;

print( Close[ Counter ] );

...

end;這個(gè)例子說(shuō)明一個(gè)將被執行了差不多10次的循環(huán)。但收盤(pán)值(counter)被打印不會(huì )比基準次數多。"..."代表MetaQuotes 4 語(yǔ)言的其他語(yǔ)句。

4.3.交易中斷的預選界定變量

為了最大的方便用戶(hù),交易中斷的一些變量可以從智能系統輸入。

AccountNumber-賬號(同義詞:AccNum)

Ask –賣(mài)價(jià)(買(mǎi)方出價(jià))

Balance – 交易賬戶(hù)的余額值

Bars – 圖表上條形的數目-說(shuō)明用數據填充圖表程度的非常重要的一個(gè)變量。

Bid -買(mǎi)入價(jià)(賣(mài)方要價(jià))

Close –收盤(pán)價(jià)格

Credit –信用優(yōu)先

Equity –賬戶(hù)狀況,包括未實(shí)現利潤

FreeMargin –交易賬戶(hù)的自由保證金值-也用來(lái)核查賬戶(hù)資金的可用性;

High –期間最高價(jià)位

Low -期間最低價(jià)位

Margin –用來(lái)支撐開(kāi)倉部位的資金(保證金)

Open –開(kāi)盤(pán)價(jià)

Point – 當前金融工具單點(diǎn)上的價(jià)值(此點(diǎn)此時(shí)智能交易系統系統運行),比如, USD/JPY - 0.01, USD/CHF - 0.0001 等。

PriceAsk –在市場(chǎng)觀(guān)測窗口上顯示的當前賣(mài)價(jià)。

PriceBid -在市場(chǎng)觀(guān)測窗口上顯示的當前買(mǎi)價(jià)。

PriceHigh – 當前24小時(shí)期間的最高買(mǎi)價(jià)。

PriceLow -當前24小時(shí)期間的最高賣(mài)價(jià)。

PriceTime -在市場(chǎng)觀(guān)測窗口上顯示的當前時(shí)間。

Time – 價(jià)格圖表上的條形時(shí)間的基準時(shí)間;

TotalProfit – 所有開(kāi)倉部位的總未實(shí)現利潤;

TotalTrades –開(kāi)倉部位的總數和交易中斷上的延遲訂單;

Volume – 交易量(期間交易的數目)

應注意到,Close, Open, High, Low, Volume, Time為歷史數據數組(seriesarrays),在上個(gè)交易期間允許進(jìn)入這些數據。

4.4. 內置函數

MetaQuotes 4語(yǔ)言提供許多功能,可用于多種多樣的場(chǎng)合。這些包括技術(shù)指標、交易功能、時(shí)間功能、數學(xué)和三角函數功能、數據轉換和輸出函數,等。

Abs –返回這個(gè)數值的絕對值(模塊)

語(yǔ)法:Abs函數 (n個(gè)表達式)

參數: 數值

AccountName – 返回包含用戶(hù)名的文本串 (同義詞:AccName )

Alert –產(chǎn)生包含用戶(hù)定義數據的對話(huà)屏

語(yǔ)法: Alert(...)

參數的任何非零數都可能。

Ceil – 返回代表最小接近整數的一個(gè)數字,它等于或大于特定的數值。

語(yǔ)法:Ceil( n個(gè)表達式 )

參數:數值

CloseOrder –收盤(pán)頭寸(部位)

語(yǔ)法:收盤(pán)頭寸(訂單、單位、價(jià)格、滑動(dòng)量、色彩)

Parameters: 參數:

order -開(kāi)倉部位的訂單數

lots – 單位數

price –優(yōu)先收盤(pán)價(jià)

slippage –最大價(jià)格滑動(dòng)值

color – 圖表上交叉點(diǎn)的色彩

Comment –在圖表的左上角產(chǎn)生的用戶(hù)定義數據

語(yǔ)法: Comment(...)

參數的任何非零數都可能。

Cos –計算和返回數值的余弦值,代表用弧度表示的角度。

語(yǔ)法: Cos( n分表達式 )

參數:數值

CurTime –返回從1970年元月1日起所經(jīng)過(guò)的秒數。

Day – 返回當月當前日序列號

DayOfWeek –返回當周當前日序列號。1 – 星期日, 2 – 星期一, ... , 7 – 星期六

DeleteOrder –刪除前期提交的延遲訂單

語(yǔ)法:DeleteOrder( 訂單 )

參數: 訂單-延遲部位的訂單數

Exp – 返回代表特定數值指數的一個(gè)數目

語(yǔ)法: Exp( n個(gè)表達式)

參數:數值

Floor –返回代表最大接近整數的一個(gè)數字,它等于或小于特定的數值。

語(yǔ)法: Floor( n個(gè)表達式)

參數:數值

Highest – 返回期間特定數間的 Open, Low, High, Close or Volume (取決于“類(lèi)型”參數)的最大值。

語(yǔ)法: Highest( 類(lèi)型、beginbar、期間 )

Parameters: 參數:

Type 類(lèi)型 – 一個(gè)返回變量,可能去下列數值: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUMEbeginbar –表示條形的轉換,與當前條形有關(guān),并從中取值。

periods期間 – 計算執行依據的期間數

Hour –返回在24小時(shí)期間內當前小時(shí)的序列數。

iADX -平均指導動(dòng)作目錄

語(yǔ)法:iADX( 期間、模式、轉換)

參數:

period – 計算的期間數;

mode – 數據類(lèi)型,可以取下列數值:MODE_MAIN(主要指標)、MODE_PLUSDI(line +DI), MODE_MINUSDI(line -DI).

shift – 與當前條形有關(guān)的轉換 (后退期間數),為數據待取值的依據。

iATR - 平均間距的指標

語(yǔ)法:iATR( 期間、轉換)

參數:

period – 計算期間數;

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

平均移動(dòng)收斂/發(fā)散指標(iBANDS –– 布林帶指數

語(yǔ)法: iBANDS(期間,誤差,模式,轉換)

參數:

period – 計算的期間數;

deviation -誤差;

mode – 可以取下列值: MODE_MAIN(主線(xiàn)、滑移)、 MODE_LOW(下邊線(xiàn)), MODE_HIGH(上邊線(xiàn)).

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iCCI – 交易通道指標

語(yǔ)法: iCCI(期間、轉換)

參數:

period – 計算的期間數

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iMA – 移動(dòng)平均指標

語(yǔ)法: iMA( 期間、模式、轉換)

參數:

period – 計算的期間數

mode – 計算模式,可以取下列值: MODE_SMA, MODE_EMA, MODE_WMA.

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iMACD -平均移動(dòng)收斂/發(fā)散指標

語(yǔ)法: iMACD( fast_ema_period, slow_ema_period, signal_period, mode, shift )

參數:

fast_ema_period -計算'快' 平均移動(dòng)期間(通常12);

slow_ema_period - number of periods for calculation of the 'slow' moving average (usually 26);

signal_period計算'慢' 平均移動(dòng)期間(通常12);

mode 數據源,可以取下列值:MODE_MAIN (主要指標)、MODE_SIGNAL (信號列);

shift -與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iMFI – 現金流量指標

語(yǔ)法: iMFI( 期間、轉換)

參數:

period – 計算期間數;

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iMOM – 動(dòng)量指標

語(yǔ)法:iMOM( 期間、轉換)

參數:

period – 計算期間數;

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iRSI – 相對強弱指標

語(yǔ)法:iRSI(期間、轉換)

參數:

期間 – 計算期間數;

iSAR -拋物線(xiàn)

語(yǔ)法: iSAR(步驟,最大值,轉換)

參數:

步驟-增量,通常是0.02;

最大值 – 最大值, 通常是0.02;

iSTO - "隨機振蕩"指標

語(yǔ)法: iSTO( %K期間、 %D期間、 慢、方法、模式、轉換)

參數:

%Kperiod - %K線(xiàn)期間;

%Dperiod - %D線(xiàn)期間;

slowing – 慢值;

method – 計算方法,取下列值: MODE_SMA (簡(jiǎn)單平均)、MODE_EMA (指數值)、 MODE_WMA (權重值);

mode – 數據源,可以取下列值: MODE_MAIN (主指標線(xiàn)), MODE_SIGNAL (信號指標線(xiàn));

shift -與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

iWPR -威廉氏百分數范圍指標

語(yǔ)法:iWPR( 期間、轉換)

參數:

期間 – 計算期間數;

shift – 與當前條形(后退期間數)相關(guān)的轉換,為數據待取值的依據。

IsDemo – 如果智能交易系統系統在試用帳戶(hù)運行,返回邏輯值,否則會(huì )返回錯誤值.

IsIndirect –如果使用反向方式對特定工具進(jìn)行計算,會(huì )返回正確的邏輯值,否則會(huì )返回錯誤值。

LastTradeTime –返回代表最近交易執行時(shí)間的一個(gè)數字(SetOrder, DelOrder, CloseOrder, ModifyOrder),計算從1970年元月1日0點(diǎn)經(jīng)過(guò)的秒鐘數。

Log (-特定正數值的對數

語(yǔ)法:日志( n個(gè)表達式)

參數: 正數值

Lowest - 特定期間返回開(kāi)倉,低,高,收盤(pán)或交易量最小值(依據"類(lèi)型"參數而定) ...returns

語(yǔ)法:最低點(diǎn)(類(lèi)型、beginbar、期間)

參數:

type – 可以取下列值: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUME

beginbar –表示條形的轉換,與當前條形有關(guān),并從中取值。

periods期間 – 計算執行依據的期間數

Minute –返回當前小時(shí)的分鐘序列數。

Mod -返回代表著(zhù)一個(gè)接著(zhù)一個(gè)的數值的整數

語(yǔ)法:Mod( n個(gè)表達式1, n個(gè)表達式2)

參數: 數值1、數值2

ModifyOrder –前期開(kāi)倉部位或延遲訂單修改的特征

語(yǔ)法:ModifyOrder( 訂單、價(jià)格、止損、獲利、色彩)

參數:

order – 開(kāi)倉或延遲部位的數目或訂單;

price – 新的價(jià)格 (僅適用于延遲部位!);

stoploss – 新的止損水平線(xiàn);

takeprofit – 新的獲利水平線(xiàn);

color – 圖表上象形圖 的色彩

Month –返回當前月的續列號

MoveObject –移動(dòng)或建立命名對象

語(yǔ)法:MoveObject( 名稱(chēng)、類(lèi)型、時(shí)間、價(jià)格、 時(shí)間2、時(shí)間2)

參數:

name – 文本串形式的名稱(chēng);

type – 對象類(lèi)型,可以取下列值:OBJ_HLINE (水平線(xiàn))、 OBJ_VLINE (垂直線(xiàn)), OBJ_TRENDLINE (趨勢線(xiàn))、 OBJ_SYMBOL (設定象形圖)、 OBJ_TEXT (文本串);

time – 參照圖表第一時(shí)間;

price -參照圖表第一價(jià)格;

time2 -參照圖表第二時(shí)間;

price2 -參照圖表第二時(shí)間

NumberToStr – 返回特定數值轉換成特定準確格式的文本串。通過(guò)在十進(jìn)位點(diǎn)數之后的其他4個(gè)數產(chǎn)生的數值的函數。

語(yǔ)法: NumberToStr(數字、準確性)

參數:

number – 特定數值;

precision – 準確格式、十進(jìn)位點(diǎn)數的數字

OrderValue – 返回訂單特定價(jià)值的之一

語(yǔ)法:OrderValue(部位、模式)

參數:

position – 交易終端列表的訂單頭寸部位,從1開(kāi)始;

mode – 返回數據類(lèi)型,可以取下列值:VAL_TICKET (訂單數), VAL_OPENTIME (定定開(kāi)倉時(shí)間), VAL_TYPE (訂單類(lèi)型), VAL_LOTS (要求單位數目), VAL_SYMBOL (工具名稱(chēng),以文本串的形式), VAL_OPENPRICE (開(kāi)盤(pán)價(jià)), VAL_STOPLOSS (止損水平線(xiàn)), VAL_TAKEPROFIT (獲利水平線(xiàn)), VAL_CLOSEPRICE (收盤(pán)價(jià)), VAL_COMISSION (委托交易量), VAL_SWAP (部位展期的展期費用數額), VAL_PROFIT (交易利潤數), VAL_COMMENT (以文本串形式對特殊部位的注解), VAL_CLOSETIME (訂單收盤(pán)時(shí)間)。

Ord –和OrderValue完全相同。

Period –返回界定的已用期間分鐘數

Pow – 返回由nBaseExpression數值提高到nExponentExpression 倍數而產(chǎn)生的數值,參見(jiàn)參數。

語(yǔ)法:Pow( nBaseExpression, nExponentExpression )

參數:數值1、數值2。

Print – 打印由用戶(hù)在系統日志里界定的數據。

語(yǔ)法: Print(...)

參數的任何非零數均可能。

PrintTrade – 存儲日志中特殊部位的細節

語(yǔ)法: PrintTrade( 部位 )

參數:部位 – 在交易終端里已開(kāi)倉部位數字

Rand –返回一個(gè)產(chǎn)生的偽隨機數字。在使用此函數之前,偽隨機數字發(fā)生器應用Srand函數調整到初始狀態(tài)。 如果偽隨機數字發(fā)生器不用,就在啟動(dòng)程序時(shí)一次調整到初始狀態(tài)。

Round – 返回代表最接近整數的特定數值

語(yǔ)法: Round( n個(gè)表達式)

參數: 一個(gè)數值

ServerAddress –以文本串的形式返回服務(wù)器IP地址

SetArrow –設定圖表繪圖標志

語(yǔ)法: SetArrow( 時(shí)間、價(jià)格、標志和色彩)

參數:

time -參照圖表第一時(shí)間;

price -參照圖表第一價(jià)格;

symbol -從Wingdings字體設定標志 的數值;

color -圖表顏色

SetObjectText -指定文本串到特定的對象

語(yǔ)法: SetObjectText(稱(chēng),文本,字體, 尺寸,顏色)

參數:

name – 對象名稱(chēng);

text – 特定文本;

font – 字體命;

size – 字體大小;

color – 文本色彩.

SetOrder –用于開(kāi)倉或設定延遲訂單的主函數。

語(yǔ)法:SetOrder( 操作、單位、價(jià)格、滑動(dòng)、止損、獲利、色彩)

參數:

operation – 操作類(lèi)型,可以取下列值:OP_BUY (開(kāi)始購買(mǎi)部位), OP_SELL (開(kāi)始出售部位), OP_BUYLIMIT, OP_SELLLIMIT, OP_BUYSTOP, OP_SELLSTOP (提交延遲訂單);

lots – 單位數;

price – 交易優(yōu)先收盤(pán)價(jià);

slippage - OP_BUY 和OP_SELL操作的最大價(jià)格滑動(dòng);

stoploss – 止損水平線(xiàn);

takeprofit – 獲利水平線(xiàn);

color – 當提取函數時(shí),圖表上箭頭的色彩

SetText –把圖表種的文本創(chuàng )放到特定的位置

語(yǔ)法:SetText( 時(shí)間、價(jià)格、字符串、色彩 )

參數:

time -參照圖表第一時(shí)間;

price -參照圖表第一價(jià)格;

string – 文本串;

color – 文本色彩

Sin -計算并返回代表弧度角度的數值

語(yǔ)法:Sin( n個(gè)表達式)

參數: 數值

Sqrt -計算和返回特定正數值的平方根

語(yǔ)法: Sqrt( n個(gè)表達式 )

參數: 正數值

Srand – 設定偽隨機數字發(fā)生器到初始狀態(tài)。如果使用發(fā)生器,將其在啟動(dòng)程序時(shí)一次性設置到初始狀態(tài)。 初始設置所用的最佳值就是時(shí)間函數回歸的數字-在此情況下,產(chǎn)生順序的隨機性就增大。

語(yǔ)法:Srand( 時(shí)間)

參數: 正數值

Symbol –返回智能交易系統運行的金融工具名稱(chēng)的文本串。

Tan -計算并返回代表角度弧度的正切數值。

語(yǔ)法: Tan( n個(gè)表達式)

參數: 數值

TimeToStr – 返回帶有"yyyy.mm.dd hh:mi" 類(lèi)型的文本串,由代表經(jīng)過(guò)1970元月1日起的秒鐘數的特定數值。

語(yǔ)法: TimeToStr( 時(shí)間)

參數: 正數值

Year – 返回當年數

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
問(wèn)題集
MT4實(shí)例薈萃(入門(mén)者整理)
MT4自定義指標--以MACD指標為例
MT4編程入門(mén)11:MT4的報警
MT4編程初級手冊(11):使用MT4的報警功能
實(shí)戰系列4:在圖表上畫(huà)曲線(xiàn)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久