MT4程式設計入門詳解 有圖表

2022-05-26 09:36:02 字數 5103 閱讀 3857

目錄mt4程式設計入門(一):mt4自定義指標的基本操作

mt4程式設計入門(二):指標原始碼中的常用符號說明

mt4程式設計入門(三):自定義變數

mt4程式設計入門(四):自定義函式

mt4程式設計入門(五):自定義陣列

mt4程式設計入門(六):市場資料取值

mt4程式設計入門(七):判斷語句

mt4程式設計入門(八):迴圈

mt4程式設計入門(九):mt4自定義指標的結構

mt4程式設計入門(十):畫一條指針線

mt4程式設計入門(十一):mt4的報警

mt4程式設計入門(一):mt4自定義指標的基本操作

mt4自定義指標的儲存目錄、指標編緝器與指標呼叫

一、mt4自定義指標儲存在c:\program files\metatrader 4\experts\indicators這個目錄中,

該目錄中主要有二種型別的檔案,

一種是mq4檔案,這是mt4自定義指標的原始碼檔案,是一種高階語言檔案,可以人工編寫修改,機器不能直接執行,但能在mt4啟動時自動編譯為ex4可執行檔案。

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

mq4檔案必須編譯為ex4檔案才能被mt4執行。

但ex4檔案是機器碼檔案,人工不可修改

另外還有乙個檔案是它用來儲存目錄中的檔案資訊,如果mt4無法自動編譯,只要刪除此檔案即可解決問題

mq4檔案編譯為ex4可執行檔案有兩種方法:

1、mt4啟動時,會自動把此目錄中的mq4檔案編譯為ex4檔案。

2、用mq語言編輯器開啟mq4檔案,點一下「編寫」按鈕,即可生成ex4檔案

二、**儲存mq4檔案、ex4檔案

在論壇上我們經常看到有mq4檔案、ex4檔案可供**,我們只要把它們儲存到c:\program files\metatrader 4\experts\indicators這個目錄,也就是下面這個目錄中,就可以了。如果**的是ex4檔案,那可以直接呼叫;如果是mq4檔案,則需要重啟動mt4,讓系統自動編譯生成ex4可執行檔案。

如果**的是rar、zip等型別的壓縮檔案,還必須**後解壓到此目錄才能使用。

三、將原始碼儲存為原始碼檔案

在論壇上,我們也經常能看到指標原始碼貼在網頁上,但沒有mq4、ex4等檔案可以**,只能複製原始碼。此時需要我們自己動手將原始碼儲存為原始碼檔案,那也沒關係,非常地簡單,多點幾下滑鼠就搞定。

1、開啟mq語言編輯器

2、在mq語言編輯器中新建乙個檔案,檔名一定要輸,別的隨便操作都沒關係。

3、刪除新檔案裡面的所有內容,成為乙個空檔案,

4、接著我們就可以將網頁上原始碼複製貼上進來

試著點一下「編寫」,如果左下角出現「0錯誤,0警告」,那說明原始碼沒問題,編譯通過了,成功生成了ex4可執行檔案

5、還有很重要的一點,就是要把原始碼檔案儲存到正確的目錄中

儲存後,再點一下編寫。

到此,原始碼儲存完成。

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

可以開啟乙個原已存在的mq4檔案,然後另存為你需要的檔名,再刪除檔案中的所有內容成為空檔案,把網頁上的源貼到檔案中儲存即可

也可以在記事本中新建乙個檔案,把網頁上的原始碼貼進記事本,然後取個檔名儲存到上面提到的目錄,不過檔案字尾必須輸入mq4,儲存型別選擇「所以檔案」

四、mt4程式呼叫自定義指標

這非常簡單

mt4程式設計入門(二):指標原始碼中的常用符號說明

一、注釋符:單行注釋「//」、多行注釋「/* */」

程式不執行注釋,注釋內容僅供閱讀或保留不用的語句

在mq語言編輯器中,注釋內容以灰色顯示

二、分號「;」

表示乙個語句結束

三、逗號「,」

表示乙個語句內部間隔,不結束語句。

四、等於號「=」

賦值語句,把等號後面的值賦給等號前的變數中

五、加號「+」

整數或小數,則表示值相加;字串,則表示前後連線。

六、加加「++」

表示把符號前的變數值加1,例如:「i++;」 這實際上就是:「i=i+1;」的簡寫,表示i的值加1

七、加等於「+=」

表示把符號後的值加到符號前的變數中。例如「i+=2;」,實際上就是「i=i+2;」的簡寫,表示i的值加2

八、雙等號「==」

等於號。用於邏輯判斷,雙等號前後值相等,則返回邏輯值「真true」;雙等號前後值不相等,則返回邏輯值「假false」

九、嘆號等號「!=」

不等於號。用於邏輯判斷,不等號前後值不相等,則返回邏輯值「真true」;不等號前後值相等,則返回邏輯值「假false」

十、「&&」

邏輯符「並且」

十一、「||」

邏輯符「或者」

十二、大括號「{}」

表示函式體。

{}內部為函式體語句。

mt4程式設計入門(三):自定義變數

一、自定義變數在使用前,必須先建立(定義),設定變數的型別和名稱。

建立時可同時賦值,也可以不賦值。名稱可以使用中文字元。

例:int mark建立乙個整型變數,變數名為「mark」。

bool 是否報警=true; 建立乙個邏輯型變數,變數名為「是否報警」,同時,賦初值「true」

二、型別和型別定義詞

自定義變數的基本型別有:

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

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

3、字串型(string)。

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

型別定義詞僅在建立變數時使用,後面使用變數時,就不能再加型別定義詞了

三、附加變數

附加變數就是在程式投入使用後,變數值允許使用者自由更改的變數,一般用作程式引數。

一般指標,例如macd(12,26,9)引數輸入就是通過附加變數實現,(12,26,9)分別為三個附加變數的預設值。

定義附加變數只需在變數定義語句前加「extern」

例:extern int 週期=9; 建立乙個整型附加變數,變數名為「週期」,預設值為9,允許使用者在程式外部修改引數值

mt4程式設計入門(四):自定義函式

自定義函式與數學函式在本質上是一致的

例如:數學函式ft(x,y)=3x+2y (x,y為正整數) 寫成程式語句就是:

int ft(int x,int y)

一、和自定義變數一樣,自定義函式在使用前,也必須先設立,以定義其型別、名稱、引數和運算語句。

函式型別、名稱、引數位於函式頭部(引數間以逗號分隔),

大括號中的是運算語句,也就是函式體部分。

return語句為函式結束語句,return後面括號中的值為函式返回值,即函式運算結果。

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

(x,y)為引數,由於自定義變數使用之前都必須先建立,所以要加上型別定義詞int

ft為函式名,有了函式名,我們就可以在別處用ft(2,1)的形式來呼叫此函式;

函式體部分有三句:

第一句,定義乙個整形變數temp

第二句,計算temp的值

第三句,函式結束,返**用點,以temp的值作為本函式返回值。

此函式也可以簡寫為:int ft(int x,int y)

二、函式型別與型別符

函式型別就是函式返回值(運算結果)的型別,與自定義變數型別差不多

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

還有一種函式是以函式執行為目的,執行結束後不需要返回值也沒有返回值的,則函式型別可以寫成void(無值型)

三、函式中如果定義了自定義變數,那麼此變數僅在本函式內部存在,函式執行結束時,自定義變數也就自動登出。

上例中,有x、y、temp三個自定義變數,在函式執行時建立,在函式執行結束時自動消失,僅在函式內部有效,與函式外部無關。

四、函式的呼叫

函式呼叫非常簡單,只要函式名正確、引數個數一致、型別相同就能正確呼叫

如我們前面建立了ft(x,y)函式,則別處我們可以用ft(4,5)等樣式來呼叫ft(x,y)函式求值。

呼叫時,傳遞引數值給ft(x,y)函式(按順序把4傳給x,把5傳給y),返回結果22後繼續執行主程式。

mt4程式設計入門(五):自定義陣列

一、陣列是一系列同型別變數的集合,可以同時儲存多個數值。

例:int aa[4]=;

這是乙個資料名為aa、包含了4個元素的整數型陣列(即陣列長度為4),可以同時儲存4個數值。

二、自定義陣列也必須「先建立,後使用」

建立(定義)時,必須設定型別和名稱。

建立(定義)時,陣列的元素個數也可以設定,也可以不設定

陣列中第乙個元素的編號為0,第二個為1,以此類推。編號使用方括號括起來

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

建立(定義)陣列的同時,可以賦初值,也可以不賦初值。

例:int bb; 建立陣列bb,不設定陣列元素個數

int cc[8]; 建立陣列cc,設定陣列元素為8個,不賦初值

int dd[3]=; 建立陣列dd,設定陣列元素為4個,並賦初值

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

int ee[9]=; 建立陣列ee,設定陣列元素為9個,但只給前4個元素賦初值

三、陣列使用時的賦值

陣列的賦值必須指定明確的賦值物件,除了新建陣列時可以批量賦值外,陣列元素必須乙個乙個賦值

例如:dd[2]=1;

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

在這裡,沒有整數型變數定義符int,

這樣,陣列dd原有三個值就變為

四、陣列的引用

陣列只是一系列變數的集合,所以每次只能使用陣列中的乙個元素。

陣列的引用必須指定明確的引用物件,一次只能引用乙個。如果需要使用整列陣列,則必須逐個使用。

例如:陣列aa[4]的值為

我們用aa來引用陣列aa中的值

當i=0時,aa[i]的值為4

當i=1時,aa[i]的值為3

當i=2時,aa[i]的值為2

當i=3時,aa[i]的值為1

mt4程式設計入門(六):市場資料取值

一、預定義陣列(mt4已經定義好的,可以直接使用)

MT4程式設計入門

mt4程式設計入門 一 mt4自定義指標的基本操作 mt4自定義指標的儲存目錄 指標編緝器與指標呼叫 一 mt4自定義指標儲存在c program files metatrader 4 experts indicators這個目錄中,該目錄中主要有二種型別的檔案,一種是mq4檔案,這是mt4自定義指...

4章選擇結構程式設計C語言入門習題

第四章選擇結構程式設計 一 選擇題 1 有以下程式 main 程式執行後的輸出結果是 a 123 b 234 c 223 d 233 2 以下程式段中與語句k a b?b c?1 0 0 功能等價的是 a if a b b c k 1 b if a b b c k 1 else k 0 c if a...

CSTL程式設計輕鬆入門

為c 標準不可缺少的一部分,stl應該是滲透在c 程式的角角落落裡的。stl不是實驗室裡的寵兒,也不是程式設計師桌上的擺設,她的激動人心並非曇花一現。本教程旨在傳播和普及stl的基礎知識,若能藉此機會為stl的推廣做些力所能及的事情,到也是件讓人愉快的事情。1 初識stl 解答一些疑問 1.1 乙個...