iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
SideProject30

從零開始的外匯自動程式交易系列 第 9

DAY9 MQL5的資料類型與應用

  • 分享至 

  • xImage
  •  

今天是這周唯一的放假日,我們就來聊點比較輕鬆的話題好了。通常在講資料類型前都會先花一點篇幅介紹何謂變數,但其實MQL5的變數宣告跟其他語言差不多,下一篇我們再來就比較複雜的全域變數跟本地變數討論。

1.整數類型(Integer Type)

在MQL4的語言中,只有一個int類型,而MQL5就與其他語言相近了點,可以根據不同的情況使用不同的整數類型(signed integer),每個類型可容納的整數範圍不同。

  • char 範圍從-128 ~ 127。
  • short 範圍從-32768 ~ 32767。
  • int 範圍從-2147483648 ~ 2147483647。
  • long 範圍從-9223372036854775808 ~ 9223372036854775807。

而這些類型中,我們最常使用的便是int long這兩個類型。另外,也有不允許負數的整數類型(unsigned integer type)。

  • uchar 範圍從0 ~ 255。
  • ushort 範圍從0 ~ 65535。
  • uint 範圍從0 ~ 4294967295。
  • ulong 範圍從0 ~ 18446744073709551615。

相對於前面的signed integer,這些類型很少被使用。

2.實數類型(Real Type)

實數類型用於儲存數職的小數部分,像是價格、手數。

  • float 精確值:7位有效數字。
  • double 精確值:15位有效數字。

在我們編寫程式時,double type會是最常使用的,雖然float可用於處理大陣列的實數以節省記憶體,但因為他不被使用在大多MQL5函數,所以出場率極低。

3.字串類型(String Type)

用於儲存文本的字串類型,字串必須放在雙引號內("")
例如:

string newString = "Hello MT5";

如果想要再輸出的字串裡使用雙引號,可使用跳脫字元(即一個反斜線)
例如:

string newString = " Today's weather is \"blazing\" "; //OUTPUT:Today's weather is "blazing"

另外,如果要連接多個字串,除了使用+以外,還可以使用StringConcatenate()函數,實際用法如下。

string firstName = "Shini";
string lastName = "Chicken";
string fullName;

StringConcatenate(fullName, firstName, " ", lastName);

Print("Full Name: ", fullName);

//OUTPUT: Full Name: Shini Chicken

4.布林類型(Boolean Type)

布林類型用於儲存真/假值(true/false)
若一開始沒有定義布林值為True,則預設值為0或false,而任何布林變數中非零的值為True
例子:

bool newBoolean; // 此時newBoolean為false
newBoolean = 56948; //賦值
Print(newBoolean); OUTPUT: true

5.顏色類型(Color Type)

用於儲存色彩資訊的類型通常用RGB值或十六進位值表示,可以在以下地方查看顏色常量的全套數值:
MQL5 Reference > Constants, Enumerations and Structures > Objects Constants > Web Colors。
https://www.mql5.com/en/docs/constants/objectconstants/webcolors
例子:

color lineColor = clrPurple; 
color lineColor = C'128,0,128'; //RGB值
color lineColor = 0x800080; // 0x(16進位值)
//第一行為MQL5預設顏色常量
//二三行可使用自定義顏色

我使用的色碼轉換器:https://www.peko-step.com/zhtw/tool/tfcolor.html
https://ithelp.ithome.com.tw/upload/images/20230924/20163114tCTIloZYjQ.png


上一篇
DAY8 MQL5的前置處理指示詞
下一篇
DAY10 變數的介紹
系列文
從零開始的外匯自動程式交易30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言