『壹』 請問在mt4中怎麼把自定義指標加在EA程序里,就是啟動EA後窗口上會顯示相應的自定義指標。
指標先加入成功,可以手動用的時候,再添加到EA里,就跟已有指標的使用是一樣了。
『貳』 外匯mt4里自定義指標能不能弄成EA
你好:
自定義指標是可以寫成EA的,不過這需就要較好的編程能力,因為寫EA本身就不容易,把較復雜的指標寫入有一定難度。
希望可以幫到你
『叄』 對mt4的三個自定義指標進行綜合EA編程
double
icustom(
string
symbol,
int
timeframe,
string
name,
...,
int
mode,
int
shift)
關鍵是將引用指標的名稱寫正確,放在這個參數的位置string
name.
name後面需要把指標中的參數,按順序寫完.
後面的mode指的是引用指標裡面的第幾畫線數組,一般是0-7,最多有8個.具體每個數組代表的意義,需要從引用指標裡面找到.
『肆』 如何編寫簡單的EA 交易和自定義指標
要編寫程序(「EA 交易」、「指標」或「腳本」),您可以啟動 MetaTrader 5 客戶端,從 Tools(工具)菜單選擇MetaQuotes Language Editor(MetaQuotes 語言編輯器),或按 F4 鍵。
在 MetaEditor 5 窗口中,從 File(文件)菜單選擇 New(新建),或按 Ctrl+N。
在 MQL5 Wizard(MQL5 向導)窗口中選擇您想要創建的程序類型:
接下來您可以指定程序名稱、作者信息,以及在啟動程序後向用戶要求的參數。
隨後,系統將創建程序模板(「EA 交易」、「指標」或「腳本」),您可以對其進行編輯或填入代碼:
程序就緒後,必須對其進行編譯。要編譯程序,從 File(文件)菜單選擇 Compile(編譯),或按 F7 鍵:
如果程序代碼沒有錯誤,系統將創建擴展名為 .ex5 的文件。之後,您可以將此新的「EA 交易」、「指標」或「腳本」附加至 MetaTrader 5 客戶端的圖表進行執行。
MQL5 程序是一個運算符序列。每個運算符以分號 ";" 結束。為您方便起見,您可以為代碼添加註釋,注釋位於符號 "/*" 和 "*/" 之中,或在代碼行末尾的 "//" 後。MQL5 是「面向事件」的編程語言。這表示當特定事件(程序啟動或終止、新的報價到來等)發生時,客戶端啟動用戶編寫的相應函數(子程序),以執行指定的操作。客戶端具有以下預定義事件:
Start 事件在「腳本」運行時發生(僅用於「腳本」)。它將會引起 OnStart 函數的執行。MQL4 對應物 -「腳本」中的 start 函數。
Init 事件在「EA 交易」或「指標」啟動時發生。它將會引起 OnInit 函數的執行。MQL4 等價物 - init 函數。
Deinit 事件在「EA 交易」或「指標」終止時發生(例如,從圖表分離後、關閉客戶端等)。它將會引起OnDeinit 函數的執行。MQL4 等價物 - deinit 函數。
NewTick 事件在當前金融工具有新的報價到來時發生(僅用於「EA 交易」)。它將會引起 OnTick 函數的執行。MQL4 對應物 -「EA 交易」中的 start 函數。
Calculate 事件在指標啟動(在 OnInit 函數執行後)以及當前金融工具有新報價到來時發生(僅用於「指標」)。它將會引起 OnCalculate 函數的執行。MQL4 對應物 -「指標」中的 start 函數。
Trade 事件在訂單執行、修改或刪除,以及在開倉、持倉修改或平倉時發生(僅用於「EA 交易」)。它將會引起 OnTrade 函數的執行。MQL4 中沒有該事件和函數的對應物。
BookEvent 事件在「市場深度」改變時發生(僅用於「EA 交易」)。它將會引起 OnBookEvent 函數的執行。MQL4 中沒有該事件和函數以及「市場深度」的對應物。
ChartEvent 事件在用戶使用圖表時發生:在圖表窗口處於焦點狀態時點擊滑鼠和按下按鍵。該事件也會在創建、移動或刪除圖形對象等時發生(用於「EA 交易」和「指標」)。它將會引起 OnChartEvent 函數的執行。MQL4 中沒有該事件和函數的對應物。
Timer 事件在計時器觸發時定期發生,如果計時器已使用 EventSetTimer 函數激活的話。它將會引起OnTimer 函數的執行。MQL4 中沒有該事件和函數以及計時器的對應物。
使用變數前,必須指定每個變數的數據類型。相比 MQL4,MQL 5 支持更多的數據類型:
bool 用於存儲邏輯值(true 或 false)。該數據類型佔用 1 位元組內存。
char 用於存儲從 -128 到 127 的整數值。該數據類型佔用 1 位元組內存。
uchar 用於存儲從 0 到 255 的無符號整數值。該數據類型佔用 1 位元組內存。
short 用於存儲從 -32,768 到 32,767 的整數值。該數據類型佔用 2 位元組內存。
ushort 用於存儲從 0 到 65,535 的無符號整數值。該數據類型佔用 2 位元組內存。
int 用於存儲從 -2,147,483,648 到 2,147,483,647 的整數值。該數據類型佔用 4 位元組內存。
uint 用於存儲從 0 到 4,294,967,295 的無符號整數值。該數據類型佔用 4 位元組內存。
long 用於存儲從 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整數值。該數據類型佔用 8 位元組內存。
ulong 用於存儲從 0 到 18,446,744,073,709,551,615 的無符號整數值。該數據類型佔用 8 位元組內存。
float 用於存儲浮點值。該數據類型佔用 4 位元組內存。
double 用於存儲浮點值,通常為價格數據。該數據類型佔用 8 位元組內存。
datetime 用於存儲日期和時間值,它是從 01.01.1970 00:00:00 開始流逝的秒數。該數據類型佔用 8 位元組內存。
color 用於存儲顏色信息,它包含三種顏色分量的特性 - 紅色、綠色和藍色。該數據類型佔用 4 位元組內存。
enum 代表枚舉。它允許指定某種限制類型的數據集。該數據類型佔用 4 位元組內存。
string 用於存儲文本字元串。它的內部表示為 8 位元組結構,包括含字元串的緩沖區大小以及指向該緩沖區的指針。
選擇合適的數據類型對於獲得最佳性能及合理的內存使用十分必要。在 MQL5 中有個稱之為結構的新概念。結構將邏輯相關的數據結合在一起。
『伍』 請教如何在EA里調用自己寫的指標
自己寫的指標可以用自定調用函數在EA里調用,具體的函數是
int iCustom(
string symbol, // 交易品種名稱
ENUM_TIMEFRAMES period, // 周期
string name // 文件夾/自定義指標_名稱
... // 指標輸入參量列表
);
比如用這個函數調用21日MA均線指標做個列子
double MA_handle=iCustom(NULL,0,"Moving Average",
21,
0,
MODE_SMA,
PRICE_CLOSE // 使用收盤價
);
『陸』 如何讓EA讀取自定義指標
一、MT4自定義指標保存在C:\Program Files\MetaTrader 4\experts\indicators這個目錄中,
該目錄中主要有二種類型的文件,
一種是mq4文件,這是MT4自定義指標的源碼文件,是一種高級語言文件,可以人工編寫修改,機器不能直接執行,但能在MT4啟動時自動編譯為ex4可執行文件。
另一種就是ex4文件,這是MT4自定義指標的可執行文件,由mq4文件編譯得到。
mq4文件必須編譯為ex4文件才能被MT4執行。
但ex4文件是機器碼文件,人工不可修改
另外還有一個文件是mqlcache.dat,它用來保存目錄中的文件信息,如果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 ea編程中如何引用自定義指標具體怎麼做
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
關鍵是將引用指標的名稱寫正確,放在這個參數的位置string name.
name後面需要把指標中的參數,按順序寫完.
後面的mode指的是引用指標裡面的第幾畫線數組,一般是0-7,最多有8個.具體每個數組代表的意義,需要從引用指標裡面找到.
『捌』 MQL5學習手記:EA基本交易功能-自定義函數集合
因為MQL5的交易方式改成 兩個結構參數的樣子,很多童鞋都會暈好久,對沒入門的童鞋來說就更難理解了。在這里,我們製作了類似MQL4的交易功能,用自定義函數實現的,只需要拷貝到你的EA里,然後按例子的樣子使用就行了。前提:以下自定義函數都需要用到幾個公共的結構,所以先要把下面的公共定義部分拷貝在程序的頭部。然後在拷貝後面的自定義指標。程序頭部的交易結構定義:自定義函數一:市價單入場函數調用舉例:按市場價賣出當前貨幣0.1手,無止損止盈。 PositionOpen(ORDER_TYPE_SELL,0.1,0,0,10,MagicHere,"Test");自定義函數二:按市價平倉當前貨幣持倉單調用舉例:按市價單平倉 滑點可接受5點內 PositionClose(Symbol(),5);自定義函數三:修改當前貨幣持倉單的止盈止損調用舉例:設置新的止盈止損 PositionModify(Symbol(),NewStop,NewTarget);自定義指標四:當前貨幣持倉單的手數總和自定義指標五:發出當前貨幣的掛單自定義指標六:修改當前指定Ticket的掛單的止盈止損數值自定義指標七:刪除當前指定Ticket的掛單自定義指標八:獲得當前最新入場的掛單的Ticket號碼
『玖』 在EA中如何調用已有的自己編寫的指標
在EA中可以用iCustom函數調用,具體用法,參看裡面的字典就可以了
『拾』 如何編寫簡單的EA 交易和自定義指標
要編寫程序,您可以啟動 MetaTrader 5 客戶端,從 Tools(工具)菜單選擇MetaQuotes 語言編輯器,或按 F4 鍵。在 MetaEditor 5 窗口中,從 File菜單選擇 New(新建),或按 Ctrl+N。在 MQL5 Wizard窗口中選擇您想要創建的程序類型。