close

MT4升級到Build600了

昨天下午打開MT4,發現有個升級提示,確定後發現界面有些變化,一看版本號原來升級到600了,這次升級的變化還是比較大的。

在MetaTrader
4客戶端以前的版本(509及更早),所有MQL4應用程序都存儲在<terminal_installation_folder> \\experts\\根目錄的以下子目錄中:

\experts - EA交易(自動交易),

\experts\indicators - 自定義指標,

\experts\scripts - 腳本(在圖表上運行一次的MQL4應用程序),

\include - 實施到其他程序的源代碼MQH和MQ4文件,

\libraries - MQ4源代碼以及從中編譯的EX4可執行文件的格式的程序庫。它們被用於其他MQL4程序包含的函數的動態調用,

\files - 特殊的“文件沙箱”。 MQL4應用程序允許只在這個目錄執行文件操作。

在MQL4新版本,用於存儲源代碼的文件結構已經改變。現在,所有的MQL4應用程序應該都位於<data_folder> \\ MQL4
\\目錄的適當文件夾:

\experts - EA交易(自動交易),

\Indicators - 自定義指標,

\Scr​​ipts - 腳本(在圖表上運行一次的MQL4應用程序),

\include - 實施到其他程序的源代碼MQH和MQ4文件,

\libraries - MQ4源代碼以及從中編譯的EX4可執行文件的格式的程序庫。它們被用於其他MQL4程序包含的函數的動態調用,

\Images -資源中使用的圖像文件,

\files - 特殊的“文件沙箱”。 MQL4應用程序允許只在這個目錄執行文件操作。

當MetaTrader 4程序端從build
509更新到較新版本時,來自之前版本標準根目錄的所有MQ4,MQH和EX4文件都會自動複製並搬遷到相應的文件夾。由用戶另外創建的子文件夾,以及其中包含的文件則不被處理。如有需要,他們應該手動搬遷到新的地方。

沒有任何文件或文件夾在更新過程中會被刪除!所有文件複製操作,包括使用的文件路徑在升級過程中都會固定​​在程序端日誌。

在更新過程中不會執行自動重新編譯舊版EX4文件到新版本。用戶可以自由地決定哪些源代碼必須被編譯成新的EX4版本。所有舊版EX4將工作在新的MetaTrader
4程序端。通過新編譯器編譯的EX4庫只能從也已經在新版本編譯的EX4程序調用。

在某些情況下,您可能需要為源文件中的包含文件在#property
include編輯路徑(如果相對路徑發生了變化)。需要注意的是MetaEditor的根目錄現在是<data_folder>\MQL4\。所有的程序應設在正確的子目錄。

您可以通過程序端菜單或MetaEditor:文件- 打開數據文件夾,為您計算機上的MetaTrader
4程序端的每個副本找到數據文件夾(<data_folder>)

MetaTrader 4 客戶端


程序端:編程交易策略的MQL4語言已經大幅修訂,其功能更加接近MQL5。添加了類和結構並且語言語法已經擴展到С+ +級別,允許開發者實現所有面向對象編程的優勢。這意味著自動交易和技術指標現在可以更容易和更快地創建,而EA交易開發人員在一個單獨的MetaEditor開發環境獲得新的機會- 調試,分析,代碼完成等。在MQL5單獨的MetaEditor
文章部分了解更多的新特性。

提升了MQL4應用程序的運算速度;提供DLL和Visual Studio的內置支持,實現訪問MQL5 存儲等等。

程序端:新增市場標籤,用於購買和下載來自MetaTrader 4
市場的收費和免費的EA交易,信號和腳本。現在,任何MQL4開發人員都可以成為賣家和提供產品給數以百萬計的使用MetaTrader4的交易者。

您可以下載一個試用版或從程序端上直接購買MetaTrader
4市場的全功能付費的MQL4應用程序。每次購買都是完全安全的,允許用戶最多在5台不同的電腦上進行激活,對工作時間,帳戶類型或經紀人沒有限制。每個付費指標或EA交易在購買前都可以在可視化模式下在MetaTrader
4策略測試​​器上推出,以評估該產品。

程序端:改變了程序端的數據結構和存儲位置- 現在,每個已安裝的程序端的數據被存儲在一個獨立的終端數據文件夾。


自從2005年 MetaTrader
4平台的發布,選定的程序端安裝目錄也是所有必要工作數據(程序端日誌,模板,配置文件,報價等)已被存儲的地方。但隨著2008年Windows
Vista的發布,微軟所有的操作系​​統都實施用戶權限的嚴重局限性,以保護他們免受惡意程序騷擾和防止一個用戶帳戶下的應用程序改變或損壞另一個用戶帳戶的相同程序的必要數據。

在Windows
Vista中,引進了用戶帳戶控制(啟動UAC) 機制。實施該機制的主要思想是,存儲在安裝目錄的應用程序的不變數據應該在它的操作過程中從這個應用程序修改的用戶數據分離開。因此,每個用戶的所有數據應該被存儲在單獨的文件夾中。您可以在Windows幫助或維基百科文章找到有關UAC的詳細信息。

在新版中,某個用戶的來自獨立安裝目錄的MetaTrader
4程序端所有數據都存儲在程序端數據文件夾。此文件夾可沿著以下路徑在系統盤(安裝Windows操作系統的磁盤)找到

C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id

其中:

С: - 系統盤的名稱;

User_account_name - Windows工作的用戶帳戶;

Instance_id - 存儲使用MetaTrader 4客戶端某些副本的所有用戶數據的文件夾的唯一名稱。

打開數據文件夾”命令已被添加到程序端文件菜單用於搜索和打開數據文件夾。

每個程序端的數據文件夾的根目錄下還包含
origin.txt文件,在這裡您可以找到這些數據所涉及的程序端安裝文件夾的路徑。這允許用戶反向匹配每個程序端的數據文件夾和某個程序端的安裝目錄,例如,當由用戶安裝幾個MetaTrader
4程序端的副本的情況。當數據文件夾從安裝文件夾分離時,這種程序端工作類型被稱為主模式並且出於安全原因被強烈建議。

該程序端還可以在所謂的便攜模式下啟動(如以前的MetaTrader
4版本)。在該模式中,數據被存儲並記錄在安裝文件夾。要做到這一點,使用 "/portable"
key。為了更加方便,您可以在桌面上以相應的名稱創建一個額外的程序端發布快捷方式,並直接添加關鍵字到快捷方式:

程序端:改變了發出交易請求的算法。在以前的版本中,當發出交易請求時已經創建了一個額外的網絡連接。最後的交易請求被發送後,此連接保持活動狀態一段時間,以提供快速發送大量的交易請求。

現在,將發出交易請求時,所有請求都通過與交易服務器的主要連接進行傳遞。因此,處理該交易請求(尤其是第一個)的時間已大大減少,因為沒有必要再等待連接交易服務器被確立為了使新的處理算法可操作,交易服務器也應該更新- 請求仍然設置在舊交易服務器的單獨連接中。

由於過渡到請求處理的新模式,取消服務器尚未接受的交易請求的功能(交易請求狀態對話框的取消按鈕)已被禁用。

程序端:在MetaTrader
4客戶端和MQL4.com加入了全局搜索。在程序端的搜索,您可以快速查找客戶端, 代碼庫,以及MQL4.com和MQL5.com網站,所有部分的信息。

已經使用關於俄語和英語形態的逐字搜索。搜索是通過用戶在設置中指定的部分來進行:

搜索結果選項卡的快捷菜單中包含根據結果類型的額外命令:

程序端:在工作部分,新增了下MQL4應用程序開發的即時訂單的命令。現在,每個交易者不僅可以從免費庫中下載任何代碼,還可以找到能夠根據用戶算法開發的一個必要指標或自動交易的程序員。訂單執行過程在文章中描述如何訂購EA交易和獲取想要結果並為雙方提供保護- 開發者和客戶。

程序端:新增發送客戶帳戶發生交易的推送通知的能力:下單,更改和刪除訂單,激活掛單和SL-TP,追加預付款和強行平倉的事件推送通知發送到安裝在iOS和Android操作設備的移動程序端,不取決於電話號碼,並且如果網絡連接可用,即可交付使用。在文章中了解詳細信息
MetaTrader移動程序端中的MetaQuotes ID。

程序端:新增圖表的警報顯示。該警報可以通過拖放來管理。此外,設置警報過期時間的功能已經得到落實。

當圖表交易水平的管理被允許,警報的價格值可以通過其拖動到一個新的價格水平被改變。警報可以被禁用,或在適當的圖表級上使用上下文菜單進行刪除。

程序端:新增在模擬賬戶打開窗口通過公司的名字搜索服務器。

只要輸入公司名稱(或服務器名稱的片段),程序端將會自動添加公司的所有服務器(包含在其名稱中指定行的服務器)到列表中:

程序端:在導航器窗口增加顯示子文件夾和EA交易,腳本和指標的結構。

程序端:提高開立訂單和持倉,交易歷史記錄和交易報告的列表中顯示的交易訂單和持倉的開盤與收盤時間的精確度- 已添加秒數計數。

程序端:提高市場報價和彈出價格窗口顯示的最後報價時間的精確度- 最後報價時間顯示到秒(而不是分鐘)。

程序端:添加更改界面語言後自動重啟程序端的請求。客戶端應該重新啟動,以便使更改生效。以前,用戶必須自己關閉並啟動程序端。現在,改變界面語言後,用戶會立即被提示重新啟動程序端- 它可以單擊關閉並重新啟動。

程序端:修正了使用單獨子窗口的指標存在於圖表上的情況下交易水平的工具提示。當把鼠標光標懸在圖表上的止損或獲利水平上時,如果水平激活被顯示那麼將收到帶有利潤/虧損的工具提示(以點或貨幣)。以前,如果單獨子窗口工作的指標(例如,標準MACD)顯示在圖表上,有時不會顯示提示工具。

程序端:新增客戶端內置用戶指南文件的自動更新,其類似於MetaTrader
5中實施的一項更新。現在,幫助文件不包含在程序端的安裝以及減少交易量的實時更新包中。用戶第一次打開它就會下載用戶指南。在所有後續情況下,系統會檢查是否有新的版本出現。如果有新版本可用,用戶會提示更新:

使用幫助文件的新系統也會減少交易消耗,因為所下載的用戶指南的語言版本只與客戶端界面指定的語言相符(不會下載多餘的語言版本)。不管客戶端是否更新,該系統也提供了用戶指南的定期更新。

程序端:新增MQL5.community的快速註冊對話框,以防用戶沒有賬戶。現在,無需離開該程序端就可創建一個MQL5.community的帳戶。

在註冊窗口中指定登錄名和電子郵件地址。點擊註冊後,一封激活MQL5.community帳戶的電子郵件會發送到指定的地址。

MQL5.community賬戶允許交易者使用附加功能強大的服務:

MetaTrader 4 AppStore - 用戶可以買到MetaTrader 4的應用程序,或直接從程序端免費下載它們。 MetaTrader 4
AppStore 提供數百種不同的應用程序並且該數字還在不斷的增長。

信號服務- 用戶可以訂閱專業交易者提供的交易信號並獲取利潤。交易操作從提供者賬戶自動複製到訂閱人賬戶。此服務也允許銷售您自己的交易信號。只需幾次點擊交易賬戶就可以連接到監控系統。

程序端:交易賬戶現在可以方便地顯示在導航窗口:

根據它們適當的交易服務器將賬戶分組。

如果賬戶訂閱交易信號,帶有信號名稱的圖標會顯示在附近。當鼠標光標懸在信號上時,會顯示訂閱到期日期。

程序端:如果當前交易賬戶訂閱信號,相應的圖標會顯示在交易品種窗口的交易標籤中。當鼠標光標懸在圖標上時,會顯示信號數據。還有交易者們忘記他們的賬戶訂閱信號的情況。那可能會發生在,例如,當進行訂閱來檢查服務操作時。訂閱圖標使得信號工作更加便捷。

程序端:增加了新的圖形對象:按鈕,位圖,位圖標籤,長方形標籤。這些對像不能手動安裝在圖表上,是專為組織MQL5應用程序的用戶界面而設計:EA交易,腳本和指標。

程序端:提高客戶端日誌中顯示的時間精確度- 毫秒已被添加。

程序端:修正了開立訂單和持倉(通過點擊十字按鈕)列表中一鍵關閉持倉- 來自交易設置可接受的價格漲幅偏離值現在已用在即時交易模式中。

程序端:增加公司標籤上複製到剪貼板的能力。

程序端:修正了命令安排圖表窗口。

程序端:修正了在全屏圖表之間切換時保存配置文件。

程序端:修正了使用日文界面時的一些對話框顯示。

程序端:為了高效運行以及高性能,所有的客戶端組件需要支持通過PC處理器設置的SSE2指令。

程序端:優化掃描最佳接入點。

程序端:修正了使用UAC時提升權限拒絕情況下,更新過程中出現的循環錯誤。

程序端:修正了新聞標題和內容的顯示,以及使用UTF-8編碼的內部電子郵件。

程序端:修正了一個錯誤,其在某些情況下可能會導致開立訂單和持倉列表中的預付款和可用預付款字段的不正確顯示。當用戶拒絕接受“一鍵交易”的協議,可能會發生此錯誤。

程序端:當開立模擬賬戶時在相應的對話框更新國家列表。

程序端:更新和增強瑞典語,匈牙利語,日語,意大利語和保加利亞語的界面翻譯。

信號:有關交易信號的擴展信息:

增加了有關最近交易日期和上週交易數量的信息。

增加了交易信號源帳戶的淨值圖。

添加分佈圖用於顯示交易品種的交易活動。

信號:增加了對信號源和用戶帳戶之間的無條件持倉同步的選項。如果啟用,無需用戶的額外確認即可執行用戶和信號源賬戶(包括與信號不相關的平倉)的同步。

在VPS(虛擬專用服務器)上使用信號時,此選項是必要的。當使用已選擇的信號進行工作時,它也可以被用來提高同步的可靠性。

信號:新增信號選項卡上近3天提交的新交易信號數量的顯示。

信號:在交易持倉初始同步過程中,增加最小允許交易量和最小交易量步驟的考慮。如果本地持倉的大小小於信號方的預估量,增加本地持倉不被執行,因為將必須要重新持倉。這可能導致點差損耗。

信號:當門檻訂單量值被超過時,修正了立即執行改為請求執行的執行類型的交易品種的持倉和平倉。

信號:當信號源和用戶的交易品種進行比較,並且大量適當的交易品種在用戶方被發現時,現在會考慮它們的交易許可。

信號:增加交易信號信息的歷史與評論標籤。

信號:在信號列表增加了信號的評級欄。

信號:從交易信號信息刪除信號訂單和持倉票據的顯示。

信號:修正交易信號同步的錯誤,其偶爾發生在大量的具有相同交易量的單向持倉的情況下。

信號:增加了交易品種的自動轉換GOLD <=> XAUUSD和SILVER <=> XAGUSD。

信號:添加禁止訂閱兼容NFA FIFO規則的賬戶的交易信號。

信號:修正Wine(Linux和Mac)下工作時訂閱信號。

信號:從交易品種窗口的信號選項卡移除“顯示信號全部列表”的選項。如果該選項禁用,只有同一個經紀商賬戶提供的信號會顯示在程序端的信號顯示欄。現在,所有信號都顯示在顯示欄,無論來自那家經紀商。因此,交易者們始終可以廣泛選擇可供訂閱的信號,允許他們選擇最佳供應。

測試器:修正使用訂單緩存優化時,考慮測試參數中設置的訂單點差。

MQL4:修正了MQL4應用程序偶然阻止交易平倉和持倉的錯誤。該錯誤可能發生在發送大交易量訂單時處理市場執行類型交易品種的時候。

修正了論壇和崩潰日誌中報告的錯誤。

MetaTrader 4 MultiTerminal

修正了它們遷移後,訂單列表中偶爾出現的不正確更新。

修正了賬戶當前浮盈的顯示- 利潤價值不包括在持倉的累積庫存費。

提高市場報價和彈出價格窗口中顯示的最後報價時間的精確度。

修正了新聞標題和內容顯示,以及使用UTF-8編碼的內部電子郵件。

提高程序端日誌中顯示的時間精確度- 毫秒已被添加。

修正了崩潰日誌中報告的錯誤。

MQL4的新功能

MQL4編程語言已經被徹底修改達到MQL5的水平- 現在您可以用MQL4 /
5使用統一的MetaEditor開發環境,單一的風格,程序庫和調試工具,開發自動交易。

由於易學性和大量的多年使用MetaTrader
4客戶端生成的代碼,MQL4深受自動化系統開發者的歡迎。然而,該語言也有其主要優點所產生的一些缺點- 一個簡單的編程語言不允許開發複雜的系統,阻礙了從高級語言調試庫的移植。因此,我們決定在最大可能數量的MQL5語言功能和特點下實施它完全保留MQL4的功能。換句話說,所有強大的MQL5功能,包括ООP和本機代碼編譯器,也將在MQL4變得可用。

要做到這一點,我們已經開發了統一的編譯器,可以自動支持MQL4和MQL5語言。 MetaEditor也將成為MetaTrader 4和MetaTrader
5兩個平台的統一的應用。因此,將有可能從任何版本編譯MQL4和MQL5。 MQL5存儲也可用於工作。

MQL4應用保護上升到MQL5水平。新EX4/EX5文件提供了一個嚴格和徹底的修改保護。這意味著安全的EX4應用市場也提供給MetaTrader
4客戶。

此外,MQL4現在採用新圖形對象和新功能進行圖表工作。 MQL5標準庫將被移植到MQL4為開發者提供了創造自己的圖形界面和交易庫的新可能性。現在,您可以在MetaTrader
4使用資源創建完全成熟的應用程序。

MQL4語言的變化

添加新char, short, long, uchar, ushort, uint, ulong和double(雙精度)數據類型。這將允許從其他類似C
+ +語言轉移代碼。各種類型的數據以不同的速率進行處理。整型數據是處理的最快的一個。一個特殊的協作處理器被用來處理雙精度數據。然而,由於浮點數據的內部表徵的複雜性,它被處理得比整型慢。類型轉換也被實施。

字符串現在以Unicode格式表示,雖然他們之前都是以ANSI格式(單字節的)表示。如果程序使用DL​​L並傳遞字符串變量給他們則應該被考慮。

預定義卷變量現在是ulong類型。用於訪問卷的時間序列也由ulong類型數組組成。建議在舊版MQL4程序中使用數據的<a3>顯式轉換</a3>將該類型轉至目標類型,以避免類型氾濫的錯誤。

允許對象接收自身引用的結構和類,對象指針, void類型和this關鍵字已被添加。支持所有面向對象的編程標準:

類型的封裝和擴展

繼承權

多態性

超載

虛函數

ООP允許使用類來開發程序。這有利於調試和開發大型應用程序,以及通過繼承權提供重複多次使用先前生成的代碼的能力。然而,這並不意味著您不能像以前那樣以面向程序的風格生成您的MQL4代碼。如果您不需要新的功能,您可以如您過去一樣,開發您的程序。

init(), deinit() 和start() 的預定義函數一直保持著兼容性,但是,現在使用OnInit(), OnDeinit(),
OnStart(), OnCalculate() 和 OnTick()來代替。此外,已經實施新的預定義OnTimer(),
OnChartEvent() 和OnTester() 處理函數。在之前的MQL4中,預定義函數可以有任何參數和任何返回類型。這些函數可以通過自己的名字進行調用,而無需簽名。在新版MQL4中,所有預定義函數應完全匹配他們的簽名。換句話說,他們應該清晰地定義設置參數和返回類型。

現在,變量名稱不能包含特殊字符和標點,並且新版MQL4語言的關鍵字不能用作名稱。舊版MQL4程序可以使用新的編譯器重新編譯,以便跟隨編譯器信息時可以輕鬆地糾正所有這些錯誤。

該優先規則現在符合C語言的標準。如果您不確定,您可以在舊版MQL4應用中插入括號,以清楚地表明優先級別以便增加可靠性。

縮減的條件檢查現在用於邏輯運算,與舊版MQL4計算所有的表達式不同,該檢查是後來執行。假設檢查邏輯AND使用的兩個條件

 
if(condition1 && condition2)

   
{

    
// some block of operations

   
}


如果condition1 表達式是false,condition2 表達式的計算不能執行,因為false && true
的結果等同於false。

ArrayCopyRates() 也改變了自己的行為。代替虛擬複製到double[][6] 數組,它現在執行虛擬複製到MqlRates[]數組。複製到double[][6]數組為了兼容性一直保持不變,然而,該複製是真實的,不是虛擬的。


在文件操作中,同時打開的文件數現在可以達到64,而舊版的MQL4可能只有不到32。直到最近,文件可以始終以FILE_SHARE_READ或FILE_SHARE_WRITE模式打開。現在,所需的開放模式應該明確指定。

通過使用函數,局部數組的變量和內存釋放的作用域也有所改變。由於變化的數目足夠巨大,新#property
strict屬性已被引進以提供與之前開發MQL4程序的方法的最大兼容性。當使用MQL嚮導創建新MQL4應用程序時,這個屬性會始終添加到模板。下表包含MQL4,無需使用strict的新版MQL4和指定strict編譯模式的新版MQL4之間的差異

#property strict

編譯器之間的差異表:



* 請特別注意“越界數組”的錯誤- 在圖表上啟動時許多舊版的自定義指標將在新編譯器的strict
模式下顯示此錯誤。建議查找原因並排除它。

** 在新版MQL4和MQL5中,FILE_SHARE_READ和FILE_SHARE_WRITE標誌是負責共享使用模式的文件。舊版MQL4中沒有這樣的文件。

 

 

arrow
arrow
    文章標籤
    mt4 外匯交易平台
    全站熱搜
    創作者介紹
    創作者 外匯教學小天王 的頭像
    外匯教學小天王

    免費外匯教學補給站

    外匯教學小天王 發表在 痞客邦 留言(0) 人氣()