




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)用標(biāo)準(zhǔn)文檔MT4編程入門(mén)(九):MT4自定義指標(biāo)的結(jié)構(gòu)MT4自定義指標(biāo)一般由四個(gè)部分構(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);一、文件頭部,也稱(chēng)為預(yù)處理程序預(yù)處理程序以“ #"開(kāi)頭,行尾無(wú)語(yǔ)句結(jié)束符“;”常用的預(yù)處理程序有:1、#property indicator_chart_window把指標(biāo)顯示在主圖。如:向線、SRA等類(lèi)指標(biāo)用到此語(yǔ)句2、#property indicator_separate_window把指標(biāo)顯示在副圖。如:MACD、R
5、SL威廉等類(lèi)指標(biāo)用到此語(yǔ)句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)加載時(shí)運(yùn)行一次。初始化函數(shù)的功能是“設(shè)置”。如果自定義指標(biāo)需要?jiǎng)澗€,則必然用到此
6、函數(shù)四、主函數(shù)start()當(dāng)數(shù)據(jù)有變動(dòng)時(shí),start()就被觸發(fā)。數(shù)據(jù)變動(dòng)一次,start()就運(yùn)行一次。自定義指標(biāo)的編程主要依靠此函數(shù)進(jìn)行。start()函數(shù)的作用主要是取值和給指標(biāo)線賦值,報(bào)警也在此函數(shù)內(nèi)發(fā)起。另外,還有一個(gè)反初始化函數(shù)deinit()deinit()在自定義卸載時(shí)運(yùn)行一次,可用以去除指標(biāo)加載時(shí) init()所做的初始化操作。MT4編程入門(mén)(十):畫(huà)一條指標(biāo)線要畫(huà)指標(biāo)線,只要在程序中寫(xiě)明以下幾點(diǎn)就可以了:第一、明確指標(biāo)線所在窗口,是主圖還是副圖第二、要建立數(shù)組,用以保存指標(biāo)線在各個(gè)位置的值。第三、要建立指標(biāo)線與數(shù)組的對(duì)應(yīng)關(guān)系,哪個(gè)數(shù)組對(duì)應(yīng)哪條指標(biāo)線第四、要明確指標(biāo)線的線型
7、,是曲線還是柱線或者是箭頭第五、如果指標(biāo)線是箭頭,還要說(shuō)明是哪種箭頭第六、給數(shù)組賦值其中:第一、二條寫(xiě)在文件頭部中,第三、四、五條寫(xiě)在init()函數(shù)中(init函數(shù)僅在指標(biāo)加載時(shí)運(yùn)行一次)第六條寫(xiě)在start()函數(shù)中(start函數(shù)在數(shù)據(jù)發(fā)動(dòng)變動(dòng)時(shí)運(yùn)行,變動(dòng)一次運(yùn)行一次) 下面以MACD為例說(shuō)明我們知道,MACD指標(biāo)由二條曲線和一組紅綠柱線組成。(下圖一)其中:白線是二根均線的差;紫線是白線的移動(dòng)平均線;紅綠柱線則是白線和紫線的差,白線上穿紫線,出現(xiàn)紅柱,下穿則出現(xiàn)綠柱。我們從簡(jiǎn)單入手,先去除紫線和紅綠柱線, 僅保留其中的那根白線, 來(lái)看白線是怎樣畫(huà)出來(lái)的。下面是全部語(yǔ)句:#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);說(shuō)明如下:?jiǎn)尉€MACD指標(biāo)程序語(yǔ)句說(shuō)明#proper ty ind.1 caLor_3eparate_wzndow"指標(biāo)放在副圖prcperty indicatacolorl White"指標(biāo)線為白色propertv ind.icar-or_levell 在零軸畫(huà)一條水平線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)語(yǔ)句 i=IMA(HULL j,FMA, 0,1,0i)-IHJUEIULH 口0,lfDrl);I 將兩條均線的差值賦值給數(shù)組 return(0);V-以下為上述語(yǔ)句的簡(jiǎn)要說(shuō)明#property indicator_separate_window指標(biāo)放在副圖#property indicator_color1White第一條指標(biāo)線為
11、白色#property indicator_level10在副圖中零值位置上畫(huà)一條水平橫線,extern int FMA=12;extern int SMA=26;設(shè)立二個(gè)整數(shù)型變量,默認(rèn)值為12和26,允許外部修改值doublebuf口;設(shè)立一個(gè)數(shù)組init是系統(tǒng)默認(rèn)的函數(shù)名,但使用時(shí)仍需要int init()初始化函數(shù)。該函數(shù)在指標(biāo)加載時(shí)只運(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é)束語(yǔ)句int start()指標(biāo)
12、觸發(fā)函數(shù)。與init函數(shù)不同,該函數(shù)在有數(shù)據(jù)變化時(shí)被觸發(fā),如果數(shù)據(jù)被不斷更新,則 該函數(shù)將不斷執(zhí)行。start也是系統(tǒng)默認(rèn)的函數(shù)名,但使用時(shí)也仍然需要進(jìn)行創(chuàng)設(shè),所以也 要加定義符intint limit=Bars-IndicatorCounted();自定義一個(gè)變量limit,并賦值Bars是圖表中的柱數(shù)IndicatorCounted()緩存中的柱數(shù),就是已經(jīng)計(jì)算過(guò)的有值的柱數(shù)這樣limit的值就是未經(jīng)計(jì)算的柱數(shù),這樣就可以起到優(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í)結(jié)束
13、循環(huán) 由于循環(huán)變量i為一個(gè)新變量,所以要先定義,加上整型變量定義符int下面大括中為循環(huán)體,此例中只一條語(yǔ)句buf=iMA(NULL,0,FMA,0,1,0,i)-iMA(NULL,0,SMAQ1,0,i);給數(shù)組buf賦值,其值分別為相應(yīng)位置上兩條均線的差i是水平位置序號(hào)值,即燭柱從右到左的序號(hào),右邊第一個(gè)燭柱序號(hào)為0return(0);start函數(shù)結(jié)束 MT4編程入門(mén)(H): MT4的報(bào)警報(bào)警功能是MT4的一大特色。它可以在預(yù)定的條件達(dá)到時(shí),發(fā)出警報(bào)。與指標(biāo)畫(huà)線相比,報(bào)警語(yǔ)句顯得非常簡(jiǎn)單, 只要在判斷語(yǔ)句中加一個(gè)報(bào)警語(yǔ)句即可報(bào)警方式有:彈出窗口報(bào)警、音樂(lè)報(bào)警、郵件報(bào)警等。如果郵箱開(kāi)通了手
14、機(jī)短信通知,則郵件報(bào)警的內(nèi)容會(huì)即時(shí)轉(zhuǎn)發(fā)到手機(jī)上。1、彈出窗口報(bào)警:當(dāng)(條件達(dá)到)執(zhí)行此語(yǔ)句時(shí),以彈出窗口警告。格式:Alert(內(nèi)容1,內(nèi)容2,內(nèi)容3,內(nèi)容4);報(bào)警內(nèi)容為字符串型,內(nèi)容之間加逗號(hào)例如:Alert( Symbol(),”4 小時(shí)圖 MACD 上穿零軸");2、音樂(lè)報(bào)警:當(dāng)(條件達(dá)到)執(zhí)行此語(yǔ)句時(shí),播放一段音樂(lè)。格式:PlaySound("音樂(lè)文件名.wav");文件類(lèi)型為 wav格式,并且保存在 C:Program FilesMetaTrader4sounds目錄中文件名加引號(hào)3、郵件報(bào)警:當(dāng)(條件達(dá)到)執(zhí)行此語(yǔ)句時(shí),發(fā)送一個(gè)郵件。(收發(fā)件人地址在
15、 MT4系統(tǒng)中設(shè)置詳見(jiàn)MT4編程實(shí)例1: 一個(gè)簡(jiǎn)單的小程序,讓你的手 機(jī)搖身變成外匯行情接收機(jī))格式:SendMail(標(biāo)題1+標(biāo)題2,內(nèi)容1+內(nèi)容2);標(biāo)題之間以加號(hào)連接,內(nèi)容之間也以加號(hào)連接郵件標(biāo)題和郵件內(nèi)容以逗號(hào)間隔下面是價(jià)格穿越某均線報(bào)警舉例+#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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙容器行業(yè)競(jìng)爭(zhēng)格局與市場(chǎng)分析考核試卷
- 社會(huì)公平正義考核試卷
- 礦石的晶體學(xué)和晶體取向與擊穿和耗散考核試卷
- 竹制品生產(chǎn)過(guò)程中的環(huán)境保護(hù)考核試卷
- 磷肥生產(chǎn)設(shè)備性能評(píng)價(jià)與優(yōu)化策略考考核試卷
- 包裝設(shè)計(jì)的定位與構(gòu)思
- 種子批發(fā)商倉(cāng)儲(chǔ)物流系統(tǒng)優(yōu)化考核試卷
- 中草藥種植的農(nóng)業(yè)產(chǎn)品營(yíng)銷(xiāo)策略考核試卷
- 智能照明系統(tǒng)維修實(shí)操考核試卷
- 綠色編織工藝在兒童教育用品考核試卷
- 2023年新高考英語(yǔ)復(fù)習(xí):讀后續(xù)寫(xiě)專(zhuān)題練習(xí)10篇(含答案范文)
- 雙減背景下家校協(xié)同提升初中生自主學(xué)習(xí)能力的探究 論文
- 陜西省中考數(shù)學(xué)歷年(2016-2022年)真題分類(lèi)匯編習(xí)題集(含真題答案)
- HY/T 082-2005珊瑚礁生態(tài)監(jiān)測(cè)技術(shù)規(guī)程
- 我們對(duì)于一棵古松的三種態(tài)度朱光潛朱光潛課件
- 一例給藥錯(cuò)誤不良事件匯報(bào)
- 《查理和巧克力工廠》-共24張課件
- 除污器技術(shù)規(guī)格書(shū)
- 小學(xué)語(yǔ)文教師面試《綠》試講稿
- D502-15D502等電位聯(lián)結(jié)安裝圖集
- 2022年本科教學(xué)工作合格評(píng)估整改工作方案
評(píng)論
0/150
提交評(píng)論