導航:首頁 > 黃金交易 > mql5自定義指標

mql5自定義指標

發布時間:2021-06-23 07:45:32

① mql5 ea是綁定的什麼硬體信息

因為MQL5的交易方式改成 兩個結構參數的樣子,很多童鞋都會暈好久,對沒入門的童鞋來說就更難理解了。在這里,我們製作了類似MQL4的交易功能,用自定義函數實現的,只需要拷貝到你的EA里,然後按例子的樣子使用就行了

② 求個MT5上用的破趨勢線報警指標,謝謝!

可以去「MT5中文網」看看有沒有你要的指標!

③ 被mt5搞的頭暈了,它現在可以進行股票交易嗎,mt5怎樣寫入程序呢,

MetaTrader 5相比MetaTrader 4 ,交易的可能性更廣泛。
首先,MetaTrader 5終端可以使用的金融產品增多了,現在除了外匯期貨以外,它還可以應用於股票、期權等金融產品。
其次,MetaTrader 5在功能方面 也越來越強大了,新增的功能有:
■可以有21種時間段來分析行情
■ 內置38種分析指標
■ 內置39種圖像對象
■ 4種縮放模式
■ 17種顯示指標樣式
此外,歷史數據不會像mt4那麼大容量了,10年的m1數據才佔10MB(我記得mt4中要100多MB了。。。);
和MT5編程語言同步的MQL5編程語言,也比和MT4同步的MQL4編程語言有很大不同,具體有:
1、MQL5和C++的不同之處:
沒有地址運算
沒有goto語句
沒有類的多重繼承
定義枚舉類型時,必須有枚舉變數名
結構體和類的構造函數不能有參數
2、歷史測試可能是多線程的,可以同時測試多時間周期及多貨幣對同時交易;
另外提醒一點:MT5並不與MT4相兼容,換句話說就是: MQL4語言編寫的MT4指標或者MT4 EA 都不能在MT5環境中運行。
官方網站放出了MT5/MQL5的第一個例子Tetris,具體是在MT5的圖表上玩俄羅斯方塊,Orz…
從其附帶的mql5代碼,可以發現很多mql5的新特性,其中比較激動人心的有:
1、直接支持鍵盤消息的處理。這意味著mt5的ea和指標可以實現更多更復雜的功能了,
2、直接Timer機制,這說明不用像mt4那樣等待tick到來start才能執行一次了,可以精確的在某個時間執行某些動作。

④ 如何編寫簡單的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 中有個稱之為結構的新概念。結構將邏輯相關的數據結合在一起。

⑤ 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號碼

⑥ 想在金道貴金屬平台投資,我之前交易用的是MT4平台,聽說他們的MT5平台 不錯,有什麼特點嗎

這個平台支持國際多種金融業務的交易,認可度是很高的,它具有以下提點: (1) 快捷的執行速度和傑出的工作表現 (2) 大量技術分析工具:39種劃圖工具,38個內置指標,21個時間周期,4種縮放模式,17種自定義指標模式。 (3) 除了外匯、貴金屬外,還可以交易美指、原油等差價合約。 (4) 多種定單方式,包括市價單,掛單,止損單/止贏單。 (5) 先進而易懂的MQL5編程語言,自主編寫EA和自定義指標。 (6) 增強了基本面分析方法,包括定期經濟數據和財經新聞的發布。 MT5 支持在Android和IPhone移動設備上使用。

⑦ 外匯EA的EA的開發

外匯EA在MT4平台上進行開發,採用MQL4語言編寫交易策略,EA的文件形式回是mq4文件或ex4文件,其中答mq4文件是源碼文件。 這種語言可以創建你自己的智能交易,使自己的交易策略能夠完全自動地執行。而且,MQL4 還能自定義客戶指標,腳本和資料庫。內包含了大量可以分析當前及歷史報價所必須的函數,以及一些基本的運算和邏輯操作。並內置了一些基本的指標和操作命令。
打開MT4軟體的MetaEditor編輯器,選擇新建-智能交易系統,就可以開始開發自己的EA了。MQL4語言的基本語法類似於C語言,MetaEditor內含詳細的幫助文件,可以幫助開發者正確地使用各種交易函數和操作指令。開發完成後需要進行編譯和歷史回測,並對EA的參數設置等進行不斷優化,對EA的風險進行准確的評估之後再用於實盤賬戶運行。

⑧ 新版編譯器OnCalculate我這樣編寫,理解,對嗎

OnCalculate

OnCalculate()函數只在自定義指標中調用,通過Calculate計算指標值是必須的。通常在接到指標計算的交易品種新訂單號時發生。這個指標不需要附在交易品種的價格圖表上。

OnCalculate() 函數有個返回值int。有兩個可能定義。一個指標中不可以有兩個函數版本。

一種是用於單數據緩沖中計算的指標。例如,自定義移動平均數指標。

int OnCalculate (const int rates_total, // 價格[] 數組的大小
const int prev_calculated, // 前一次調用處理的柱
const int begin, // 有效數據起始位置
const double& price[] // 計算的數組
);
價格[]數組中,可以傳送時間序列和計算的一些指標緩沖。ArrayGetAsSeries()函數確定價格[] 數組索引方向。為了不依賴默認值,需要無條件的調用ArraySetAsSeries()函數用於工作的數組。

價格[]數組中,在「參數」標簽啟動指標時,選擇適當的時間序列或者指標。所以,需要在「應用於」欄位的下拉列表中指定必要的項目。

Selecting timeseries to calculate an indicator

從其他mql5程序中接收自定義指標值,要使用iCustom()函數,返回嵌入指標處理程序。可以指定適當的價格[]數組或者另一個指標處理程序。這個參數在自定義指標輸入變數列表中最後傳送。
示例:

void OnStart()
{
//---
string terminal_path=TerminalInfoString(STATUS_TERMINAL_PATH);
int handle_customMA=iCustom(Symbol(),PERIOD_CURRENT, "Custom Moving Average",13,0, MODE_EMA,PRICE_TYPICAL);
if(handle_customMA>0)
Print("handle_customMA = ",handle_customMA);
else
Print("Cannot open or not EX5 file '"+terminal_path+"\\MQL5\\Indicators\\"+"Custom Moving Average.ex5'");
}
這個示例中,通過的最後參數是PRICE_TYPICAL值(從ENUM_APPLIED_PRICE計數開始),指出自定義指標可以用獲得的典型價格建立(高價+低價+平倉)/3。如果沒有確定這個參數,指標基於PRICE_CLOSE 值建立,例如每欄平倉價。

另一個示例顯示依照指定價格[]數組的最後一個參數傳送指標處理程序,由函數iCustom()所描述。

另一種形式意在所有其他指標,計算更多的時間序列。

int OnCalculate (const int rates_total, // 輸入時間序列大小
const int prev_calculated, // 前一次調用處理的柱
const datetime& time[], // 時間
const double& open[], // 開盤價
const double& high[], // 最高價
const double& low[], // 最低價
const double& close[], // 收盤價
const long& tick_volume[], // 訂單交易量
const long& volume[], // 真實交易量
const int& spread[] // 點差
);
開盤價[],最高價[],最低價[]和收盤價[]參數由當前時間表的開盤價,最高和最低價和收盤價數組組成。時間參數[]包括開盤時間值數組,擴展參數[]有一個數組包括擴展歷史記錄(如果為交易安全提供擴展)。volume[] 和tick_volume[] 參數分別包括交易和交易量歷史記錄。

確定時間[]索引方向, 開盤價[], 最高價[], 最低價[], 收盤價[], 交易量[], 交易量[] 和 擴展[],需要調用ArrayGetAsSeries()函數。若不想依賴默認值,需要無條件的調用函數ArraySetAsSeries()用於工作的數組。

首先rates_total 參數包括欄的數量,可用來計算指標,與圖表中現存的欄數一致。

需要注意OnCalculate() 返回值和第二輸入參數prev_calculated的連接。調用函數時,prev_calculated 參數包括上次調用時OnCalculate() 返回值。這就允許用經濟演算法計算自定義指標,避免重復計算。

返回rates_total參數值足夠了,包括當前調用函數的欄數。如果自從上次調用函數OnCalculate(),價格數據更改了(下載深度歷史記錄或者填滿歷史空白期),輸入參數prev_calculated 值由終端機設置為零。

註:如果OnCalculate返回零,那麼指標值不能顯示在客戶端的數據窗口。

為更好的理解,啟動附加以下代碼的指標很有用。

指標示例:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//---- 圖的線
#property indicator_label1 "Line"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrDarkBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- 指標緩沖區
double LineBuffer[];
//+------------------------------------------------------------------+
//| 自定義指標初始化函數 |
//+------------------------------------------------------------------+
int OnInit()
{
//--- 指標緩沖區繪圖
SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 自定義指標重復函數 |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//--- 獲得當前交易品種和圖表周期的有效柱數
int bars=Bars(Symbol(),0);
Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
//--- 為下次調用返回prev_calculated值
return(rates_total);
}
//+------------------------------------------------------------------+

⑨ 如何編寫簡單的EA 交易和自定義指標

要編寫程序,您可以啟動 MetaTrader 5 客戶端,從 Tools(工具)菜單選擇MetaQuotes 語言編輯器,或按 F4 鍵。在 MetaEditor 5 窗口中,從 File菜單選擇 New(新建),或按 Ctrl+N。在 MQL5 Wizard窗口中選擇您想要創建的程序類型。

閱讀全文

與mql5自定義指標相關的資料

熱點內容
小米貸款取現收費嗎 瀏覽:423
南寧信託大廈 瀏覽:642
明股實債信託 瀏覽:789
遺產信託基金 瀏覽:67
安徽和生投資 瀏覽:823
股指期貨對應基金 瀏覽:89
股票里做t是什麼意思 瀏覽:968
玩股票資金怎麼籌 瀏覽:49
銀行貸款日利息怎麼算 瀏覽:211
什麼是互聯網基金產品 瀏覽:688
私募基金的主要策略 瀏覽:211
外匯Ham 瀏覽:178
錢吧理財 瀏覽:684
中郵穩定收益A基金 瀏覽:851
企業投資管理辦法 瀏覽:388
外匯什麼指標最准 瀏覽:291
招商銀行滬深300理財怎麼樣 瀏覽:967
投融資會上的講話 瀏覽:45
富國互聯科技股票基金封閉期 瀏覽:120
bf一款神奇的游戲理財 瀏覽:11