MT4編程例子詳解_第1頁
MT4編程例子詳解_第2頁
MT4編程例子詳解_第3頁
MT4編程例子詳解_第4頁
MT4編程例子詳解_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)用標(biāo)準(zhǔn)文檔MT4編程入門(九):MT4自定義指標(biāo)的結(jié)構(gòu)MT4自定義指標(biāo)一般由四個部分構(gòu)成: (1)文件頭部(2)參數(shù)、變量和數(shù)組的定義(3)初始化函數(shù)init()(4)主函數(shù) start()文案大全例:MACD指標(biāo)源碼IpDopecty fpmqusy fpropecty j?prop±rty propeircy定義參數(shù)變量indi c ato r _sep at a t-e _TJindow、iiuilcauo E_bu££els £ 文件頭部齊 indi g ato r_co 1, e 1;.indicater_coloi:2 Red 前卡上理在序

2、 indi c ato i dtbl 2_ -Xfxtetn ir»t FHA=12;extern int SMA26;?x tern int SgHAa5jdoubledonibleBuffec:SBu££er;定義數(shù)組init()初始此函數(shù)Setlndex Style (O,DPAU_HISTDGI 段置指4s 型SEtIncleKSt:71e(i,DAU_LllJE);SetlndewDrawBEgin(1.5qHA);IndicaiLDiDigits (Diaits+1);SatlnJexEuffer(0.Buffer);SetlnicxBuffer(1,

3、3Buffer);役苴劃線起始位設(shè)置小數(shù)位役置才目標(biāo)題組IndlcacorShottMajue ("MACD十FHA+” /+鐐壹指標(biāo)名ft r,f r+3flHfri-rrr);SeInciexLabel(0, rTACD");SetlndexLabelfl, hSignal);return(0);役置指標(biāo)線標(biāo)簽iiit stacc()主函數(shù)int caunted bars-IndicatorCount.ed(); i£(countsd_bars>0) countei_l>ES一一; lliQLt=Ear-counte d hars;foeirit.

4、 i=0;i-H-)BufEerEil=ilIktllULLFTU.O.l.a,!)T叫1U11,必皿孫孫土);fot 1=0; Kliniv;1十+jr i=IHiOnArzay Bu£t er-E社匚邙* 5gTIA,0r0,1returnf 0);一、文件頭部,也稱為預(yù)處理程序預(yù)處理程序以“ #"開頭,行尾無語句結(jié)束符“;”常用的預(yù)處理程序有:1、#property indicator_chart_window把指標(biāo)顯示在主圖。如:向線、SRA等類指標(biāo)用到此語句2、#property indicator_separate_window把指標(biāo)顯示在副圖。如:MACD、R

5、SL威廉等類指標(biāo)用到此語句3、#property indicator_buffers 3顯示3根指標(biāo)線4、#property indicator_color1 Red第1根指標(biāo)線的顏色為 Red5、#property indicator_width1 1第1根指標(biāo)線的粗細(xì)分別為16、#property indicator_level1 0.00在0.00值位置橫劃1條虛線二、參數(shù)、變量和數(shù)組的定義全局性的參數(shù)、變量、數(shù)組在此定義,局部變量可在start()函數(shù)中定義三、初始化函數(shù)init()init()在自定義指標(biāo)加載時運(yùn)行一次。初始化函數(shù)的功能是“設(shè)置”。如果自定義指標(biāo)需要劃線,則必然用到此

6、函數(shù)四、主函數(shù)start()當(dāng)數(shù)據(jù)有變動時,start()就被觸發(fā)。數(shù)據(jù)變動一次,start()就運(yùn)行一次。自定義指標(biāo)的編程主要依靠此函數(shù)進(jìn)行。start()函數(shù)的作用主要是取值和給指標(biāo)線賦值,報警也在此函數(shù)內(nèi)發(fā)起。另外,還有一個反初始化函數(shù)deinit()deinit()在自定義卸載時運(yùn)行一次,可用以去除指標(biāo)加載時 init()所做的初始化操作。MT4編程入門(十):畫一條指標(biāo)線要畫指標(biāo)線,只要在程序中寫明以下幾點(diǎn)就可以了:第一、明確指標(biāo)線所在窗口,是主圖還是副圖第二、要建立數(shù)組,用以保存指標(biāo)線在各個位置的值。第三、要建立指標(biāo)線與數(shù)組的對應(yīng)關(guān)系,哪個數(shù)組對應(yīng)哪條指標(biāo)線第四、要明確指標(biāo)線的線型

7、,是曲線還是柱線或者是箭頭第五、如果指標(biāo)線是箭頭,還要說明是哪種箭頭第六、給數(shù)組賦值其中:第一、二條寫在文件頭部中,第三、四、五條寫在init()函數(shù)中(init函數(shù)僅在指標(biāo)加載時運(yùn)行一次)第六條寫在start()函數(shù)中(start函數(shù)在數(shù)據(jù)發(fā)動變動時運(yùn)行,變動一次運(yùn)行一次) 下面以MACD為例說明我們知道,MACD指標(biāo)由二條曲線和一組紅綠柱線組成。(下圖一)其中:白線是二根均線的差;紫線是白線的移動平均線;紅綠柱線則是白線和紫線的差,白線上穿紫線,出現(xiàn)紅柱,下穿則出現(xiàn)綠柱。我們從簡單入手,先去除紫線和紅綠柱線, 僅保留其中的那根白線, 來看白線是怎樣畫出來的。下面是全部語句:#propert

8、y indicator_separate_window#property indicator_color1White#property indicator_level10extern int FMA=12;extern int SMA=26;doublebuf口;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,

9、i)-iMA(NULL,0,SMAQ1,0,i); return(0);說明如下:單線MACD指標(biāo)程序語句說明#proper ty ind.1 caLor_3eparate_wzndow"指標(biāo)放在副圖prcperty indicatacolorl White"指標(biāo)線為白色propertv ind.icar-or_levell 在零軸畫一條水平線extern int FHA=12;extern int S2 6; 定義參數(shù)變量doubly h!At i定義數(shù)組int init() in it 函累:.地置指標(biāo)線數(shù)組Set Index Bu.ff er ( 0if buf j

10、:SetIndexStyle fO, DRAU_LINE)i ;;設(shè)亶指標(biāo)線線型int star t()start函數(shù)inr 1 iznit = Bar5-IndicatQuCoLinted ();lor ( int i-0; i<Limit.; i+)縮環(huán)語句 i=IMA(HULL j,FMA, 0,1,0i)-IHJUEIULH 口0,lfDrl);I 將兩條均線的差值賦值給數(shù)組 return(0);V-以下為上述語句的簡要說明#property indicator_separate_window指標(biāo)放在副圖#property indicator_color1White第一條指標(biāo)線為

11、白色#property indicator_level10在副圖中零值位置上畫一條水平橫線,extern int FMA=12;extern int SMA=26;設(shè)立二個整數(shù)型變量,默認(rèn)值為12和26,允許外部修改值doublebuf口;設(shè)立一個數(shù)組init是系統(tǒng)默認(rèn)的函數(shù)名,但使用時仍需要int init()初始化函數(shù)。該函數(shù)在指標(biāo)加載時只運(yùn)行一次。進(jìn)行創(chuàng)設(shè),所以要加定義符intSetIndexBuffer(0,buf);設(shè)置數(shù)組buf為第一條指標(biāo)線SetIndexStyle(0,DRAW_LINE);設(shè)置第一條指標(biāo)線線型為連續(xù)曲線return(0);函數(shù)結(jié)束語句int start()指標(biāo)

12、觸發(fā)函數(shù)。與init函數(shù)不同,該函數(shù)在有數(shù)據(jù)變化時被觸發(fā),如果數(shù)據(jù)被不斷更新,則 該函數(shù)將不斷執(zhí)行。start也是系統(tǒng)默認(rèn)的函數(shù)名,但使用時也仍然需要進(jìn)行創(chuàng)設(shè),所以也 要加定義符intint limit=Bars-IndicatorCounted();自定義一個變量limit,并賦值Bars是圖表中的柱數(shù)IndicatorCounted()緩存中的柱數(shù),就是已經(jīng)計算過的有值的柱數(shù)這樣limit的值就是未經(jīng)計算的柱數(shù),這樣就可以起到優(yōu)化程序的作用。for(int i=0; i<limit; i+)循環(huán)語句。循環(huán)從i=0開始,每循環(huán)一次i值增加1, 一直循環(huán)到i<limit不滿足時結(jié)束

13、循環(huán) 由于循環(huán)變量i為一個新變量,所以要先定義,加上整型變量定義符int下面大括中為循環(huán)體,此例中只一條語句buf=iMA(NULL,0,FMA,0,1,0,i)-iMA(NULL,0,SMAQ1,0,i);給數(shù)組buf賦值,其值分別為相應(yīng)位置上兩條均線的差i是水平位置序號值,即燭柱從右到左的序號,右邊第一個燭柱序號為0return(0);start函數(shù)結(jié)束 MT4編程入門(H): MT4的報警報警功能是MT4的一大特色。它可以在預(yù)定的條件達(dá)到時,發(fā)出警報。與指標(biāo)畫線相比,報警語句顯得非常簡單, 只要在判斷語句中加一個報警語句即可報警方式有:彈出窗口報警、音樂報警、郵件報警等。如果郵箱開通了手

14、機(jī)短信通知,則郵件報警的內(nèi)容會即時轉(zhuǎn)發(fā)到手機(jī)上。1、彈出窗口報警:當(dāng)(條件達(dá)到)執(zhí)行此語句時,以彈出窗口警告。格式:Alert(內(nèi)容1,內(nèi)容2,內(nèi)容3,內(nèi)容4);報警內(nèi)容為字符串型,內(nèi)容之間加逗號例如:Alert( Symbol(),”4 小時圖 MACD 上穿零軸");2、音樂報警:當(dāng)(條件達(dá)到)執(zhí)行此語句時,播放一段音樂。格式:PlaySound("音樂文件名.wav");文件類型為 wav格式,并且保存在 C:Program FilesMetaTrader4sounds目錄中文件名加引號3、郵件報警:當(dāng)(條件達(dá)到)執(zhí)行此語句時,發(fā)送一個郵件。(收發(fā)件人地址在

15、 MT4系統(tǒng)中設(shè)置詳見MT4編程實(shí)例1: 一個簡單的小程序,讓你的手 機(jī)搖身變成外匯行情接收機(jī))格式:SendMail(標(biāo)題1+標(biāo)題2,內(nèi)容1+內(nèi)容2);標(biāo)題之間以加號連接,內(nèi)容之間也以加號連接郵件標(biāo)題和郵件內(nèi)容以逗號間隔下面是價格穿越某均線報警舉例+#property indicator_chart_windowextern int 警戒均線=20;int mark=0;int start()if( iHigh(0,0,0) >= iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,0)&& iHigh(0,0,1) <iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,1)&& mark != 1)Alert(Symbol(),”向上觸及 30 均線) mark = 1;if( iLow(0,0,0) <= iMA(0,0,警戒均

溫馨提示

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

評論

0/150

提交評論