您现在的位置: 比特财富网 >> 财经 >  >> 外匯
外匯智能交易MQL4語言教程(一)
外_匯_邦 WaiHuiBang.com

什麼是智能交易系統?它是一個用特殊的MetaQuotes 語言 4 (MQL 4)編寫的自動交易系統(ATS),和特定的圖表聯系在一起。www.emoneybtc.com智能交易系統不僅能通知交易商交易機會,而且還能自動執行交易賬戶上的交易,直接發送到交易服務器。和許多的IT系統一樣,智能交易系統系統支持歷史數據戰略測試,圖表上表示的登入/登出點。而且,智能交易系統的可執行碼分別存儲於源文件和加密的執行文件中-這種安排保證了交易商所使用的邏輯隱藏(如有必要的話),而不會洩密。

MetaTrader4 軟件將智能交易系統在程序的根目錄/Experts 子目錄裡保存為*.MQ4(source text) 和 *.EX4 (可執行碼)文件。交易商可以無限量地保存智能交易系統數據,這些數據可以通過導航條窗口容易地加以管理。

創建自定義智能交易系統數據的程序以及將數據和交易終端連接在MetaTrader4 用戶指南裡有詳細的描述。

 

MetaQuotes 4 語言是用來編寫自定義智能交易系統軟件,以便使交易程序管理自動化以及執行交易商自己的交易策略。MetaQuotes 4 語言易學、易用、易創建。MetaQuotes 4 語言包括相當數量的變量,用來控制當前和前期的報價、主要的算術和邏輯運算和特征,主要的內置指標和用來開啟和控制頭寸的命令。在語法上,該語言和由TradeStation 技術有限公司開發的簡易語言相似,但是它有其自身的一些具體特征。

 

程序代碼是用MetaEditor4編輯器編寫的,它能夠用不同的色彩集中反映MQL 4語言的不同結構,因此,有助於用戶熟悉專家系統的文本。 注解開始於//符號(雙斜線)。注解也可以用“斜線-星號”-“星號-斜線”組合(/*[注解]*/, 就像在 "C"編程語言一樣)。

 

設定和控制操作戰略,交易商保存一份日志文件,存儲產生的信號信息、變量輸出和已執行交易的結果。智能交易系統日志保存在MetaTrader4 目錄下/logs/YYYYMMDD.log 文件裡。當前的日志可以從下方的“終端”窗口(日志標簽)直接進入。

 

進入MQL 4語言的目錄系統,要麼按目錄按鈕或從工具菜單打開MetaQuotes語言詞典窗口操作。這個教程包含分類、運算、存儲詞語等功能,使得用戶對該語言所用到的每個元素都有所了解。

 

1. 主要語言結構

 

像其他任何語言一樣,MQL4有一套構成基本結構的主要組成元素。這些組成元素以一種特殊的方式組合排列的,以便代表適當的陳述和表達。

 

語言的主要對象就是數據,包括三種類型:數字、邏輯和排列。 所有的數值均采用雙格式,邏輯數據可能包括真值和假值。排列就是用省略號標注的一系列字符。字符串也叫做文本串。數據可以包含在適當類型的變量之中,或直接由程序的源文本表現出來。

 

一個MetaQuotes 語言陳述指一個完整的用法說明。陳述可以包括保留字、運算符號、數據、變量、表達式或標點符號,而且總是以分號結尾。

 

保留字指具有特定或特別意義的預先設定的詞語。 

運算符號指在數據、變量和(或)表達式中特定的具體運算符號。

變量是用來限制數字、排列或邏輯數據的。

表達式指保留字、變量、數據和運算符號的組合,因為它們具有語言的3中類型(保留字、變量、數據)中的任一價值。

標點符號用來代表表達式,界定參數,區分詞語或重新排列計算順序。

 

2. 標點符號

字符

名稱

描述

;

分號

結束MetaQuotes 4語言指令

( )

圓括號

對表達式的值進行分組,改變計算順序。
標注函數參數並啟動變量描述表達式
標注變量的初始值並在變量描述區排列組合

,

逗號

提取函數值時,對參數進行區分
在變量描述區對變量進行區分
在描述排列長度時對數字進行區分
區分進入排列元素的指標

:

冒號

用在變量描述區,啟動變量列表

" "

引號

標注一個文本(字)串。

[ ]

方括號

標注數字,確定排列長度
標注進入某個特殊排列元素的數字(指數)
標注進入歷史數據的期間數字

{ }

波形括號

充當運算括號。可以用來代替 begin...end。將指令系列隔離成塊。

/* */

注解括號

標注注解

//

雙斜線

明確說明單串注解的開始

 

 

3. 運算符號

 

運算符號分成5 組:分配符號、字串符號、數學運算符號、相關符號和邏輯符號。

 

3.1. 分配符號

 

分配符號’=’(等號)是用來將具體數值(數字、排列或邏輯,視變量類型而定)分配到變量中。分配值可以是表達式的結果。比如:
變量: Counter(0);
...
Counter = Counter + 1;結果,反向變量取值為1。變量值也可以分配來對元素進行排列。

 

3.2. 字串符號

 

操作文本串,只有一個運算符可以用上: ’+’ (加號)。 它是用來連接兩個字串的。比如:

變量: 字串(" ");
...
字串 = "some_" + "text";
結果,字串變量包含“some_text”這樣的文本串,允許將字串與數字和邏輯值結合起來。在後面的這個例子裡,數字及或邏輯值在結合前,應轉化為字串類型。比如:
String = "string" + 1;
因此,字串變量將包含"string1"的文本串。
操作數不僅可以是數值,也可以是相應的含有這樣數值類型的變量,以及表達式,經執行後,便產生這樣的數值。

 

3.3. 數學符號

4種主要的數學運算:加法- ’+’ (加號)、減法-’-’ (減號)、乘法-’*’ (星號)、除法-’/’ (斜線),都用在計算數值的數學表達式裡。

數學表達式的例子:( Ask + Bid ) / 2 , High[1] + 20 * Point

 

3.4. 相關符號

相關符號用來對同種類型的兩個數值進行比較。 第一個數值和第二個數值進行比較,產生邏輯值“真值”或“假值”, “小於”-’<’ (左小於號), “大於”-’>’ (右小於號);“等於”-’=’ (等號);“不等於”-’<>’; “小於或等於”-’<=’; “大於或等於”-’>=’。由相關表達式而取得的邏輯值用在MetaQuotes  II語言的控制結構裡。比如:

 

 if FreeMargin < 1000 then exit; 這個字串按詞典順序進行比較,即,"aaa" 字串被認為小於字串 "zzz"。當邏輯值進行比較時,我們應該牢記:“True”的邏輯值的數值為1,而“False”的邏輯值的數值為“0”。

 

3.5. 邏輯符號

邏輯符號使用戶能夠將邏輯值結合起來。邏輯OR - ’|’ (垂直線或豎槓);邏輯AND-’&’ (“和”符號)。邏輯符號有相應的保留字OR, AND, NOT。 比如:


If FreeMargin > 100 and FreeMargin < 1000 then print( "Free margin is ", FreeMargin );注意:當OR 和 AND運算符號是雙值時,即它們有兩個值進行運算,NOT運算符號是單值,即它之適用於單值。比如:
Variable: Condition1( True );
...
Condition1 = FreeMargin >= 1000;
If not Condition1 then exit;

 

下面是邏輯運算符號的結果表:

 

Value1

Value2

Value1 OR Value2

True

True

True

True

False

True

False

True

True

False

False

False

Value1

Value2

Value1 AND Value2

True

True

True

True

False

False

False

True

False

False

False

False

Value1

 

NOT Value1

True

 

False

False

 

True

外_匯_邦 WaiHuiBang.com
  • 銀行結售匯綜合頭寸

    什麼是銀行結售匯綜合頭寸   銀行結售匯綜合頭寸是指經營外匯業務的銀行持有的因人民幣與外幣間交易而形成的外匯頭寸,由銀行辦理符合

  • 寫出自己精心研究的交易系統

    外_匯_邦 WaiHuiBang.com 因為每個人對市場的理解是不一樣的,所以道不同不相為謀,你們隨意拍,

  • 哪類股票易成莊股

       吸籌階段即是莊家進駐過程。證券投資和商業經營雖然有很大程度的差異,但其趨利性是一致的,而且形式上都有買和賣,通過低

  • 用了好享貸還能申請好現貸嗎?

    最佳答案: 可以申請的。1、好享貸是交行消費分期產品,好現貸是現金分期產品,兩個產品的性質不同,不會

  • 興盛優選怎麼入駐商品?

    最佳答案: 只要符合條件,就可以申請加盟興盛優選,成為平台的供貨商,直接在微信小程序提交申請,上傳申

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com