关闭@1x
香港:2025-03-27 00:10:25
  • 紐約:2025-03-26 11:10:25
  • 倫敦:2025-03-26 16:10:25
  • 東京:2025-03-27 01:10:25
  • 悉尼:2025-03-27 02:10:25
  • 香港:2025-03-27 00:10:25
  • 新加坡:2025-03-27 00:10:25
首頁> 資訊> 最新 >正文

【0基礎學MQL4 EA編程2-6】數據轉換

William 2024-05-21 17:14:13 關注
熟悉MQL4中熱門的的數據類型轉換函數和數學計算函數。

文章來源:123财經導航

作者:William

本章節内容很簡單,主要讓大家認識一下EA編程中經常遇到的一些數據轉換函數。在MQL4中,數據類型轉換是指将一種數據類型的值轉換爲另一個數據類型的過程。這種轉換可以用于執行不同類型之間的操作或将值從一種類型轉換爲另一種類型以滿足特定的需求。下圖爲常見的幾種用于數據類型轉換的函數。

類型轉換

  • 函數轉換:使用特定函數對數據進行轉換時,是一種标準的數據轉換方式,這種方式的好處是可以指定轉換過程中的精度或者形态。在下列圖示中,使用DoubleToStr()函數将3.14159轉換爲保留2位精度的字符串值,轉換後的值将根據設定截斷顯示結果。
  • 強制轉換:當将一個浮點數強制轉換爲整數類型(int)時,小數部分将被截斷,隻保留整數部分。強制轉換的時候需要注意,在一些複雜運算中可能會造成數據精度丢失或者計算出錯。
    例如有一個 double 類型的變量 a,其值爲 3.14。通過将其強制轉換爲 int 類型,小數部分将被丢棄,隻保留整數部分:

類型轉換函數應用

每個函數都有特定的使用格式,可以根據需求在編寫邏輯時自由切換,在MQL4中,雖然在不轉換格式時也能使用,但這樣做出現黃标報錯,大概率會導緻計算的結果出現偏差。所以,規範化使用數據轉換函數,正确使用數據參與計算是一種良好的編程習慣。

下列爲使用頻率最高的一些轉換函數:
1、NormalizeDouble():将浮點數四舍五入到指定的精度。

2、StringFormat(): 根據預設格式将數字轉換爲字符串。

3、IntegerToString(): 将整數轉換爲字符串。

4、DoubleToString()/DoubleToStr(): 将double類型浮點數轉換爲字符串。

5、StringToDouble()/StrToDouble(): 将數字的字符串轉換爲double類型。

6、StringToTime()/StrToTime(): 将格式爲“yyyy.mm.dd hh:mi”的字符串轉換爲日期時間類型

7、TimeToString()/TimeToStr(): 将日期時間類型的值轉換爲“yyyy.mm.dd hh:mi”格式的字符串。

數學函數

數學函數也可以視爲另一種數據轉換方式,但數學計算函數(例如求絕對值、取整、計算平方根等)和前面提到的類型轉換函數在MQL4中具有一些區别,用于參與特定的數學運算。雖然很多數學運算都可以直接使用表達式運算完成,但是通過數學函數直接返回會大大提升效率。
以下是一些常見的數學計算函數示例:
1、 MathAbs():計算絕對值。

2、MathRound():将浮點數四舍五入爲最接近的整數。

3、 MathMin()/MathMax():返回兩個數中的最小值/最大值。

4、MathSqrt():計算平方根。

5、MathPow():計算給定基數的指定幂次。

函數結構解讀

以上函數都是MQL4官方的預定義函數,每一個函數都具有特定的傳入參數,在上一期的自定義函數中我們也了解到參數傳遞與返回的概念,在這些函數中就是一個很好帶返回參數的例子,可以直接傳入指定參數然後返回你想要的值。爲了方便我們認識這些函數的結構,我們以DoubleToString()爲例:

當然,MQL4中的這些預定義函數有的具有多樣化的使用場景,傳入的參數數量也是根據實際需求而定的,比如IntegerToString()函數,這個函數在官方文檔中可以傳入3個參數,每個參數的位置和功能是固定的,但通常情況下我們很少用到剩餘的兩個參數,了解即可。

【免責聲明】123财經導航所發布的信息内容僅供交易投資者參考,并不構成投資建議“據此操作,風險自擔”。網站上部分信息内容及圖片來自于網絡/注冊作者/投稿人,版權歸原作者所有,如有侵權,請您與我們聯系關閉,郵箱:938123@qq.com。
hhhhhhh
热门评论
最新评论
还没有评论快来抢沙发吧!
第三方賬号登錄
第三方賬号登錄
第三方賬号登錄
  • *站點:
  • *網址:
  • 類型:
  • 聯系方式:
  • 簡介:

  • RRH123歡迎您的加入!如有問題請添加咨詢管理員【微信号:938123】
  • *類型:
  • *問題:
  • 圖片說明:
  • 聯系方式:

  • RRH123感謝您的反饋!如有問題請添加咨詢管理員【微信号:938123】