火線MT編程教程_第1頁(yè)
火線MT編程教程_第2頁(yè)
火線MT編程教程_第3頁(yè)
火線MT編程教程_第4頁(yè)
火線MT編程教程_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、火線MT4編程教程MT4編程開(kāi)發(fā)實(shí)戰(zhàn)系列-畫(huà)圖系列1:如何畫(huà)直線這是MT4編程開(kāi)發(fā)實(shí)戰(zhàn)系列的第一站,我們先來(lái)學(xué)習(xí)一下如何在MT4圖表上進(jìn)行基本的畫(huà)圖操作。在開(kāi)始動(dòng)手之前,首先講一個(gè)很基本也很重要的概念:在MT4系統(tǒng)中,圖表的方向是從右到左的,舉例說(shuō):在一個(gè)記錄有當(dāng)前圖表每根K線位置的數(shù)組中,第一個(gè)數(shù)值表示的是圖表最右邊、也就是當(dāng)前的K線的數(shù)值!畫(huà)圖最基本的操作是畫(huà)直線。下面的兩個(gè)例子將演示如何在圖表上畫(huà)一條直線。首先在MetaEditor編輯器中創(chuàng)建一個(gè)客戶指標(biāo)文件,名字可以任意,我這里就把它命名為L(zhǎng)esson1_DrawLine。然后在其中的start()函數(shù)中添加下面的代碼: 

2、20080221095208625.jpg (5.87 KB)2008-2-21 09:53添加完畢后,按F5編譯代碼,然后在MT4中打開(kāi)任意一張圖表,把編譯好的指標(biāo)Lesson1_DrawLine添加到圖表上,我們可以看到圖表上已經(jīng)畫(huà)出了一條橫線:clip_image002.jpg (5.32 KB)2008-2-21 02:30現(xiàn)在來(lái)解釋一下上面的代碼。上面的代碼使用了ObjectCreate這個(gè)函數(shù)。ObjectCreate是一個(gè)非常重要的函數(shù),在后面的畫(huà)圖教程中會(huì)多次使用到這個(gè)函數(shù)。在上面的例子中,ObjectCreate函數(shù)有5個(gè)參數(shù),第1個(gè)”Hline”是對(duì)你要畫(huà)的橫線起一個(gè)名字,

3、這個(gè)名字是可以任意的;第2個(gè)OBJ_HLINE是MT4系統(tǒng)默認(rèn)的一個(gè)變量,表示橫線,意義是告訴系統(tǒng)你準(zhǔn)備畫(huà)一條橫線;第3個(gè)參數(shù)是0,表示在主窗口進(jìn)行畫(huà)圖的操作,這里暫時(shí)不對(duì)這個(gè)參數(shù)作詳細(xì)的說(shuō)明,后面我會(huì)專門用一個(gè)專題來(lái)將畫(huà)圖窗口的知識(shí);第4個(gè)參數(shù)也是0,這個(gè)代表的是橫坐標(biāo)(X軸),第5個(gè)參數(shù)是Bid,這個(gè)是MT4系統(tǒng)默認(rèn)的一個(gè)變量,意思是當(dāng)前的賣出價(jià)。這里重點(diǎn)說(shuō)一下最后兩個(gè)參數(shù):在MT4中,圖表的橫坐標(biāo)(X軸)代表時(shí)間,縱坐標(biāo)(Y軸)代表價(jià)格,在上面的例子中,ObjectCreate函數(shù)的最后兩個(gè)參數(shù)0和Bid就分別代表X軸坐標(biāo)和Y軸坐標(biāo),意思是在Y軸為當(dāng)前賣出價(jià)格的地方畫(huà)一條橫線(因?yàn)橹本€為

4、無(wú)限長(zhǎng),X坐標(biāo)沒(méi)有意義,所以這里就設(shè)成0了)。明白了這點(diǎn),再畫(huà)條豎線就很簡(jiǎn)單了。只要把X軸坐標(biāo)設(shè)為你想要的數(shù)值即可,例如:我想在當(dāng)前的K線位置上畫(huà)條豎線,代碼如下:20080221095433937.jpg (5.16 KB)2008-2-21 09:55 clip_image001.gif (3.04 KB)2008-2-21 02:31Time數(shù)組是MT4系統(tǒng)默認(rèn)的一個(gè)數(shù)組,數(shù)組中每個(gè)數(shù)值對(duì)應(yīng)當(dāng)前圖表上每根K線所處的時(shí)間。同樣,因?yàn)橹本€是無(wú)限的,Y軸坐標(biāo)此時(shí)也失去了意義,我們就把它設(shè)為0好了。在本節(jié)的最后,我補(bǔ)充說(shuō)明一下指標(biāo)文件的各個(gè)組成部分:當(dāng)你創(chuàng)建了一個(gè)指標(biāo)文件后,會(huì)發(fā)現(xiàn)系統(tǒng)

5、已經(jīng)自動(dòng)生成了init()、deinit()和start()這3個(gè)函數(shù)。Init函數(shù)是在初始化的時(shí)候調(diào)用的,也就是添加到圖表的同時(shí)會(huì)執(zhí)行一次,之后就不會(huì)再執(zhí)行了;deinit函數(shù)是在關(guān)閉圖表或刪除指標(biāo)的同時(shí)執(zhí)行一次,主要作用是把該指標(biāo)制作出來(lái)的東西刪除掉;start函數(shù)是主函數(shù),每次價(jià)格變動(dòng)的時(shí)候,都會(huì)執(zhí)行一次這個(gè)函數(shù)。畫(huà)圖系列2這是MT4編程開(kāi)發(fā)實(shí)戰(zhàn)系列的第2站,在上一節(jié)中,我們學(xué)習(xí)了如何利用ObjectCreate函數(shù)在圖表上畫(huà)直線。在這一節(jié)中,我們將繼續(xù)用ObjectCreate函數(shù)在圖表上畫(huà)出更多的圖形。有時(shí)候我們想對(duì)某些時(shí)間段的圖形用橢圓形標(biāo)識(shí)出來(lái),下面我們一起來(lái)實(shí)現(xiàn)這樣的一個(gè)指標(biāo)。

6、利用ObjectCreate函數(shù)可以方便的在圖表上畫(huà)出一個(gè)橢圓形,MQL語(yǔ)言中表示橢圓的常量是OBJ_ELLIPSE。畫(huà)一個(gè)橢圓需要兩個(gè)坐標(biāo)點(diǎn),所以,畫(huà)一個(gè)橢圓的基本語(yǔ)句如下:ObjectCreate(“ellipse”, OBJ_ELLIPSE, 0, x1, y1, x2, y2)新建一個(gè)指標(biāo)文件,命名為”Lesson2_DrawShape_1”,然后在start函數(shù)中加入如下語(yǔ)句:20080221014644031.jpg (6.14 KB) 保存文件,按F5編譯指標(biāo)文件,然后把在MT4中新建一個(gè)圖表,把Lesson2_DrawShape_1指標(biāo)添加到圖表上,可以看到我們已經(jīng)在圖表上畫(huà)出

7、了一個(gè)橢圓形:解釋一下ObjectCreate函數(shù)中的各個(gè)參數(shù),第1個(gè)是圖形的名字,可以任意寫(xiě)(忘記了就回頭看看第一節(jié));第2個(gè)是MT4系統(tǒng)默認(rèn)的一個(gè)常量,意思是告訴MT4我們要畫(huà)一個(gè)橢圓;第3個(gè)0是表示我們要在主窗口上進(jìn)行畫(huà)圖;第4個(gè)是坐標(biāo)點(diǎn)1的x坐標(biāo),簡(jiǎn)單起見(jiàn),我這里寫(xiě)了Time0,代表起點(diǎn)是當(dāng)前時(shí)間(還記得MT4圖表的方向是從右到左的嗎?);第5個(gè)參數(shù)是坐標(biāo)點(diǎn)1的y坐標(biāo),為簡(jiǎn)單起見(jiàn),這里我寫(xiě)了Bid,表示當(dāng)前的賣出價(jià);第6個(gè)是坐標(biāo)點(diǎn)2的x坐標(biāo),Time10表示在當(dāng)前圖表上從當(dāng)前時(shí)間往左第10根K線的位置;第7個(gè)是坐標(biāo)點(diǎn)2的y坐標(biāo),Ask表示當(dāng)前的買入價(jià)。橢圓已經(jīng)畫(huà)出來(lái)了,顏色似乎不夠醒目

8、,那我們應(yīng)該如何修改已畫(huà)出來(lái)的圖形的顏色呢?用ObjectSet函數(shù)。例如我現(xiàn)在想把橢圓的顏色改為紅色,可以在ObjectCreate函數(shù)下面添加這樣一句:20080221015700781.jpg (9.64 KB)2008-2-21 10:39編譯后把指標(biāo)重新添加到圖表上,可以看到橢圓已經(jīng)變?yōu)榧t色了:20080221015646046.jpg (2.23 KB)2008-2-21 10:39ObjectSet的第一個(gè)參數(shù)是圖形的名字,意思是告訴MT4我將要對(duì)”ellipse”這個(gè)圖形進(jìn)行修改;OBJPROP_COLOR這個(gè)參數(shù)是MT4默認(rèn)的系統(tǒng)常量,表示Object的顏色屬性,在后面我們將

9、會(huì)看到,Object還會(huì)有很多各種各樣的屬性,這些屬性命名的規(guī)則都是OBJ_XXX這樣的,只要把這個(gè)常量更改為我們想要修改的屬性就行了;第3個(gè)參數(shù)Red是MT4默認(rèn)的系統(tǒng)常量,表示紅色,在MQL語(yǔ)言中,各種顏色都可以直接用它們的英文名稱來(lái)表示,非常方便。橢圓的顏色已經(jīng)修改好了,但是大小似乎還不滿意,我們?cè)侔阉拇笠稽c(diǎn),在前面代碼的基礎(chǔ)上再添加一句:20080221021030312.jpg (12.71 KB)2008-2-21 10:46編譯運(yùn)行后重新添加到圖表上,我們發(fā)現(xiàn)橢圓變大了:20080221021017984.jpg (2.14 KB)2008-2-21 10:46OBJ_SCAL

10、E表示對(duì)圖形進(jìn)行縮放,1是縮放的數(shù)值,越小橢圓就越大,具體效果可以自己修改看看。下面,我想用一個(gè)矩形來(lái)替代上面我們畫(huà)出來(lái)的橢圓,該如何做呢?很簡(jiǎn)單,只要用OBJ_RECTANGLE代替OBJ_ELLIPSE就行了。下面我們一起動(dòng)手做。首先新創(chuàng)建一個(gè)指標(biāo)文件,命名為L(zhǎng)esson2_DrawShape_2,在start函數(shù)加入如下語(yǔ)句:  20080221100759140.jpg (9.37 KB)2008-2-21 10:49編譯后運(yùn)行,然后在MT4中新建一張圖表,把Lesson2_DrawShape_2指標(biāo)添加到圖表上,可以看到我們已經(jīng)在圖表上畫(huà)了一個(gè)矩形:200802211009

11、04468.jpg (2.99 KB)2008-2-21 10:49解釋一下上面的代碼:我們用OBJ_RECTANGLE代替了前面的OBJ_ELLIPSE,意思是告訴MT4我們將要在圖表上畫(huà)一個(gè)矩形;Time0和Time10分別是坐標(biāo)點(diǎn)1的x軸坐標(biāo)和坐標(biāo)點(diǎn)2的x軸坐標(biāo),這個(gè)我們?cè)谇懊娑贾v過(guò)了,關(guān)鍵是iHigh和iLow這兩個(gè)函數(shù),iHigh和iLow都是MT4自帶的系統(tǒng)函數(shù),iHigh的意思是獲取指定周期的最高價(jià)格,iHigh函數(shù)里面有3個(gè)參數(shù):Symbol()函數(shù)表明用當(dāng)前圖表上的貨幣、1440表示天圖、0表示取當(dāng)天的最高價(jià)。這里做個(gè)補(bǔ)充,在MT4編程中,表示時(shí)間周期有兩種方法:一是直接用數(shù)

12、字表示,MT4中的時(shí)間單位是分鐘,所以你要指定哪個(gè)時(shí)間周期,就直接填多少分鐘行了,在上面的例子中,因?yàn)?天是1440分鐘,所以直接填1440就行了,如果要取1小時(shí)圖的最高值就填60,30分鐘圖就填30,如此類推;二是用MT4默認(rèn)的系統(tǒng)變量,像上面的語(yǔ)句,我們也可以這樣寫(xiě):20080221101853015.jpg (9.88 KB)2008-2-21 10:49編譯出來(lái)的指標(biāo)是一樣的,PERIOD_D1是MT4默認(rèn)的系統(tǒng)變量,表示周期為天,如果1小時(shí)圖就是PERIOD_H1,30分鐘圖就是PERIOD_M30,如此類推。同理,iLow就是取指定周期的最低價(jià);最后一個(gè)參數(shù)是0,這里表示取最天圖最

13、右邊的K線的最高價(jià)和最低價(jià),即當(dāng)天的最高價(jià)和最低價(jià),如果改為1,上面的例子就是取昨天的最高價(jià)和最低價(jià)了(還記得MT4圖表的方向是由右往左吧?)。同樣,我們可以用ObjectSet函數(shù)把上面畫(huà)出來(lái)的矩形變?yōu)榧t色:20080221102728375.jpg (12.89 KB)2008-2-21 10:49現(xiàn)在,我們把指標(biāo)Lesson2_DrawShape_2從圖表上刪除掉,發(fā)現(xiàn)已經(jīng)畫(huà)出來(lái)的矩形并沒(méi)有從圖表上刪除,為什么呢?在MT4中,已經(jīng)畫(huà)出來(lái)的圖形默認(rèn)是不會(huì)隨指標(biāo)一起被刪除的,這時(shí)我們就要用到deinit和ObjectDelete函數(shù)了。前面說(shuō)過(guò),deinit函數(shù)是在指標(biāo)被刪除的時(shí)候調(diào)用的,主

14、要用來(lái)做一些清理性的工作,ObjectDelete函數(shù)是刪除一個(gè)指定的圖形對(duì)象,因此,我們可以在deinit函數(shù)中加入如下代碼:20080221103237015.jpg (6.05 KB)2008-2-21 10:49ObjectDelete函數(shù)中的參數(shù)表示告訴MT4我們要?jiǎng)h除哪個(gè)圖形。畫(huà)圖系列3:如何創(chuàng)建符號(hào)及文字這是MT4編程開(kāi)發(fā)實(shí)戰(zhàn)系列的第3站。在前面兩節(jié)中,我們已經(jīng)學(xué)會(huì)了如何利用ObjectCreate函數(shù)來(lái)畫(huà)直線、橢圓和矩形。但這些都是很基本的圖形,我們經(jīng)常能看到一些MT4指標(biāo)在圖表上畫(huà)出了各種各樣的符號(hào),非常有趣!那么這些符號(hào)是如何畫(huà)出來(lái)的呢?答案還是ObjectCreate函數(shù)

15、!由此看見(jiàn)ObjectCreate函數(shù)在MT4畫(huà)圖編程中是多么的重要了吧,就如造物主一般創(chuàng)造出各種美妙的圖形!下面,我們一起來(lái)學(xué)習(xí)一下,如何用ObjectCreate函數(shù)創(chuàng)造出更多的圖形。首先創(chuàng)建一個(gè)指標(biāo)文件,命名為L(zhǎng)esson3_DrawSymbol_1,然后在start函數(shù)中輸入如下代碼:20080221131304703.jpg (5.03 KB)2008-2-21 14:46編譯后添加到圖表,會(huì)發(fā)現(xiàn)我們已在圖表上畫(huà)了一個(gè)向上的箭頭:20080221131418625.jpg (1.13 KB)2008-2-21 14:46從前面兩節(jié)的學(xué)習(xí)中,我們知道”arrow”是圖形的名字,OBJ_

16、ARROW是告訴MT4我們要畫(huà)一個(gè)箭頭,Time0是x軸坐標(biāo),Low0是表示當(dāng)前K線的最低價(jià)。這里對(duì)Low和iLow()做一個(gè)解釋。Low是一個(gè)數(shù)組,里面儲(chǔ)存了當(dāng)前周期圖表上每根K線的最低價(jià),注意了:僅儲(chǔ)存了當(dāng)前周期的!如果想獲取其它周期的圖表上的某根K線的最低價(jià),就要用到iLow()函數(shù)了。同理,High和iHigh()也是這樣區(qū)分的,這樣解釋,應(yīng)該很清楚了吧?如果我想讓箭頭指向下方,該怎么做呢?現(xiàn)在,就開(kāi)始了本節(jié)最精彩的部分了!在剛才的代碼后面添加如下一句:20080221132147000.jpg (7.58 KB)2008-2-21 14:46編譯后,會(huì)發(fā)現(xiàn)圖表上的箭頭已經(jīng)指向下方了。

17、補(bǔ)充一下,學(xué)到這里我們可以發(fā)現(xiàn)一個(gè)規(guī)律:創(chuàng)建一個(gè)圖形,用ObjectCreate,修改一個(gè)圖形,用ObjectSet。就這么簡(jiǎn)單!在上面的例子中,最關(guān)鍵的是ObjectSet的第三個(gè)參數(shù):242。我們把242改成67,然后再編譯,看看圖表現(xiàn)在的圖形是什么?是一個(gè)大拇指向上的手勢(shì)。改成68,再編譯看看,是一個(gè)大拇指向下的手勢(shì)。看到這里,相信大家都知道怎么回事了吧,沒(méi)錯(cuò)!只要更改這個(gè)參數(shù),就能畫(huà)出各種我們想要的符號(hào)了。我曾在火線發(fā)過(guò)一個(gè)中文的MT4編程文檔,大家可以下載來(lái)查看一下,里面有個(gè)圖形符號(hào)代碼表,只要將第3個(gè)參數(shù)改成代碼表里面的數(shù)值,就可以畫(huà)出相應(yīng)的符號(hào)了。下面我們來(lái)做個(gè)有趣的嘗試:把MT

18、4里面的各種符號(hào)都拉出來(lái)檢閱一遍!首先新建一個(gè)指標(biāo)文件,命名為L(zhǎng)esson3_DrawSymbol_2,然后在start函數(shù)中輸入如下的代碼:20080221133851796.jpg (17.45 KB)2008-2-21 14:46編譯后把Lesson3_DrawSymbol_2指標(biāo)添加到圖表上,看到了什么?沒(méi)錯(cuò),所有MT4支持的圖形符號(hào)都跑出來(lái)了!20080221134045343.jpg (29.64 KB)2008-2-21 14:46在上面的代碼中,我用了一個(gè)循環(huán),從當(dāng)前K線往左數(shù)257根K線,在每根K線的最低價(jià)位置畫(huà)一個(gè)符號(hào)。為什么是257呢?你可以把這個(gè)數(shù)字改大一點(diǎn),會(huì)發(fā)現(xiàn)之后

19、所有的圖形符號(hào)都是一樣的了,這說(shuō)明MT4支持的圖形符號(hào)就是到257為止了。學(xué)完了前面的例子后,我相信很多朋友都能在圖表上隨意畫(huà)出自己想要的各種圖形和符號(hào)了,那么假如想在圖表上加入一些文字呢?這個(gè)問(wèn)題是初學(xué)MT4編程的朋友經(jīng)常提出的一個(gè)問(wèn)題,答案還是用ObjectCreate和ObjectSet這對(duì)配合得天衣無(wú)縫的函數(shù)來(lái)實(shí)現(xiàn)!在MT4圖表上添加文字,有兩種方法,一種是用Comment函數(shù),缺點(diǎn)是只能在圖表的左上角添加,且不能對(duì)文字的各種特性調(diào)整,如大小、顏色等;另外一種就是我們下面將要學(xué)到的方法,用ObjectCreate函數(shù)來(lái)創(chuàng)建。ObjectCreate函數(shù)可以創(chuàng)建兩種類型的文字,一種是OB

20、J_TEXT,一種是OBJ_LABEL。這兩種類型的區(qū)別:OBJ_TEXT是以時(shí)間和價(jià)格作為坐標(biāo)的,且可以設(shè)置顯示角度;OBJ_LABEL是以當(dāng)前圖表可視區(qū)域的相對(duì)位置作為坐標(biāo)的,且不能調(diào)整顯示角度。下面我們用例子來(lái)加深理解。新建一個(gè)指標(biāo)文件,命名為L(zhǎng)esson3_DrawText_1,在start函數(shù)輸入如下代碼:20080221142027609.jpg (8.45 KB)2008-2-21 14:48編譯后添加Lesson3_DrawText_1指標(biāo)到圖表:20080221142233390.jpg (1.63 KB)2008-2-21 14:48如果我想讓”Hello World!”以

21、與水平線成30度的角度顯示,該如何做呢?在上面的代碼后面添加一句:20080221143306828.jpg (12.25 KB)2008-2-21 14:48重新編譯后效果如下:20080221143531171.jpg (2.2 KB)2008-2-21 14:48利用ObjectSet函數(shù)來(lái)調(diào)整顯示文字的角度屬性:OBJPROP_ANGLE,30表示30度。既然已經(jīng)有OBJ_TEXT了,為什么MT4中還要再多一個(gè)OBJ_LABEL呢?關(guān)鍵就是兩者的坐標(biāo)性質(zhì)不同。OBJ_TEXT的坐標(biāo)是時(shí)間和價(jià)格,而OBJ_LABEL的坐標(biāo)是以當(dāng)前可視區(qū)域的相對(duì)位置作為坐標(biāo)。當(dāng)你移動(dòng)圖表的時(shí)候,會(huì)發(fā)現(xiàn)用O

22、BJ_TEXT創(chuàng)建的文字的位置會(huì)隨著圖表的移動(dòng)而變化,但用OBJ_LABEL創(chuàng)建的文字則始終不變,除非你更改了屏幕分辨率它才會(huì)變化,當(dāng)你想創(chuàng)建一些始終顯示在某個(gè)固定位置的文字時(shí),用OBJ_LABEL;如果想在某個(gè)固定的價(jià)格或時(shí)間位置顯示文字,用OBJ_TEXT。由于精力所限,我就不再演示OBJ_LABEL的使用方法了,大家可以參照幫助文檔來(lái)使用,記住坐標(biāo)的性質(zhì)不同就行了。畫(huà)圖系列4:如何畫(huà)曲線這是MT4編程開(kāi)發(fā)實(shí)戰(zhàn)系列的第4站。在前面3節(jié)我們分別學(xué)習(xí)了直線、橢圓和矩形、文字及符號(hào)的創(chuàng)建方法,這次我們要學(xué)習(xí)一下如何在圖表上創(chuàng)建曲線。雖然MT4中已經(jīng)自帶了很多曲線類型的指標(biāo),如各種不同的均線、布林

23、帶等等,但經(jīng)常有些朋友還需要?jiǎng)?chuàng)建一些自己獨(dú)有的曲線,系統(tǒng)自帶的指標(biāo)已經(jīng)無(wú)法滿足需求,這時(shí)我們就需要通過(guò)MT4編程來(lái)開(kāi)發(fā)自己的曲線指標(biāo)了。 下面我們一起通過(guò)實(shí)例來(lái)學(xué)習(xí)如何畫(huà)曲線。假設(shè)我現(xiàn)在想把圖表上每根K線的中間部分(即最高價(jià)與最低價(jià)之和的均值)用一條曲線連接起來(lái)。首先創(chuàng)建一個(gè)新的指標(biāo)文件,命名為L(zhǎng)esson4_DrawCurve_1。在指標(biāo)文件的開(kāi)始部分,添加如下語(yǔ)句:20080223162059890.jpg (8.16 KB)2008-2-25 13:19紅色框內(nèi)部分為我們添加的語(yǔ)句。然后在init函數(shù)內(nèi)添加如下語(yǔ)句:20080223162235796.jpg (7.71 KB)2008-

24、2-25 13:19在start函數(shù)內(nèi)添加如下語(yǔ)句:20080223162316828.jpg (19.81 KB)2008-2-25 13:19編譯后,將Lesson4_DrawCurve_1指標(biāo)添加到圖表上,會(huì)看到我們已創(chuàng)建了一條紅色的曲線,將圖表上每根K線的中間部分連接了起來(lái):20080223162437671.jpg (10.32 KB)2008-2-25 13:20下面來(lái)解釋一下上面代碼的意思。首先我們?cè)谥笜?biāo)文件的開(kāi)始部分插入了3條語(yǔ)句,前面兩條分別是:#property indicator_buffer 1的意思是本指標(biāo)將使用一個(gè)指標(biāo)緩存(最多只能有8個(gè)指標(biāo),編碼是從0至7);#p

25、roperty indicator_color Red的意思是創(chuàng)建的指標(biāo)將用紅色顯示。#property的意思是給指標(biāo)文件添加一個(gè)編譯參數(shù)(注:由于這些東西涉及到程序開(kāi)發(fā)中比較專業(yè)的部分了,本教程的主旨是“實(shí)用為主”,所以我將不會(huì)對(duì)一些太過(guò)專業(yè)的部分進(jìn)行深入探討,只需知道應(yīng)該這樣做就行了。有興趣的朋友可以私下聊J)。假如你想創(chuàng)建兩條曲線,則可以寫(xiě)成:#property indicator_buffer 2;假如想改變曲線的顏色,則可以把Red數(shù)值改為其它顏色,如Yellow、Green等。 在添加了兩個(gè)編譯參數(shù)后,我們還創(chuàng)建了一個(gè)double類型的數(shù)組ExtMapBuffer,這個(gè)數(shù)組的作用是

26、儲(chǔ)存每根K線中間部分的數(shù)值,畫(huà)圖的時(shí)候就根據(jù)這個(gè)數(shù)組里面的數(shù)值來(lái)畫(huà)。 在init()函數(shù)中,我們用到了SetIndexStyle和SetIndexBuffer這兩個(gè)MT4中的系統(tǒng)函數(shù)。SetIndexStyle的意思是設(shè)置我們要畫(huà)的圖形的類型,SetIndexStyle中的第一個(gè)參數(shù)0,表示我們要對(duì)第一個(gè)指標(biāo)的樣式進(jìn)行設(shè)置,在MT4中,最多只能設(shè)置8個(gè)指標(biāo),編碼是從0開(kāi)始至7結(jié)束;第二個(gè)參數(shù)DRAW_LINE是MT4默認(rèn)的系統(tǒng)變量,意思是告訴MT4我們將要在圖表上畫(huà)線。如果我們現(xiàn)在想在每根K線的中間部分畫(huà)個(gè)箭頭,該如何做呢?用DRAW_ARROW替換DRAW_LINE就行了,替換后的效果如下:

27、20080223165429703.jpg (9.94 KB)2008-2-25 13:22剛才我們畫(huà)出來(lái)的曲線是一條連續(xù)的曲線,如果我想畫(huà)一條虛線該如何做呢?給SetIndexStyle增加一個(gè)參數(shù)就行了,現(xiàn)在我們把SetIndexStyle函數(shù)改寫(xiě)為如下這樣:20080223165907515.jpg (3.6 KB)2008-2-25 13:22編譯后重新添加到圖表上,會(huì)發(fā)現(xiàn)現(xiàn)在的曲線已經(jīng)是一條虛線了。20080223165802062.jpg (10.62 KB)2008-2-25 13:22同理,如果用STYLE_DOT替換STYLE_DASH,就可以畫(huà)出一條由點(diǎn)組成的曲線了,更多的

28、類型大家可以通過(guò)查找編程文檔獲得。 現(xiàn)在,假如我們覺(jué)得曲線太細(xì)了,想加粗該怎么做呢?這時(shí)就需要給SetIndexStyle函數(shù)增加第4個(gè)參數(shù)了:20080223170242140.jpg (3.87 KB)2008-2-25 13:23SetIndexStyle的第4個(gè)參數(shù)4,意思是把曲線的寬度設(shè)置為4(從1開(kāi)始,最大為5)。最后,假如想把剛才畫(huà)的線更改一下顏色,可以用到SetIndexStyle的第5個(gè)參數(shù),像下面這句:20080225131933984.jpg (4.6 KB)2008-2-25 13:23最后一個(gè)參數(shù)Blue的意思是把曲線的顏色改為藍(lán)色。如何創(chuàng)建警報(bào)在前面幾節(jié),我們學(xué)習(xí)了MT4編程開(kāi)發(fā)中畫(huà)圖方面的一些基礎(chǔ)知識(shí),這次我們來(lái)學(xué)習(xí)一下如何在MT4編程中應(yīng)用報(bào)警功能。 大家都知道,外匯市場(chǎng)是24小時(shí)不間斷的,而人的精力是有限的,那么,在休息的時(shí)候如果價(jià)位到達(dá)了自己的目標(biāo)價(jià)位,這時(shí)候該怎么辦呢?答案是利用MT4的警報(bào)功能。在MT4平臺(tái)上如何設(shè)置警報(bào)這里就不詳述了,具體可參考幫助文檔,這里說(shuō)一下如何通過(guò)編程來(lái)實(shí)現(xiàn)。 首先,我們來(lái)實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的指標(biāo):當(dāng)價(jià)格到達(dá)指定價(jià)位時(shí),進(jìn)行報(bào)警。新創(chuàng)建一個(gè)指標(biāo)文件,命名為:Lesson5_Alert_1。在程序頭部

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論