MQL4数据类型转换函数详解
这一系列函数主要用于在不同数据格式之间进行转换,帮助交易者更灵活地处理各类数值与字符串。
其中,NormalizeDouble() 函数值得特别留意,它能够确保价格数值满足交易服务器的精度要求。在实际交易中,无论是德璞资本外汇平台还是其他主流平台,都不允许使用非标准的价格格式,即使价格小数位多出一位,超出服务器所规定的精度范围也是无法被接受的。
CharToStr() – 将ASCII码转换为字符串
DoubleToStr() – 将浮点型数据转换为字符串
NormalizeDouble() – 标准化双精度数值
StrToDouble() – 将字符串数据转换为浮点型
StrToInteger() – 将字符串数据转换为整型
StrToTime() – 将字符串数据转换为日期时间
TimeToStr() – 将日期时间数据转换为字符串
CharToStr() – ASCII码转字符串详解
string CharToStr(int char_code) 该函数接收一个整数类型的ASCII码,并返回对应的字符字符串。
参数说明:
char_code - 待转换的字符ASCII码。
示例:
string str="WORL" + CharToStr(44); // 44是'D'的ASCII码,因此str最终结果为"WORLD"。
DoubleToStr() – 浮点型转字符串详解
string DoubleToStr(double value, int digits) 该函数将双精度浮点数按指定的小数位数精度转换为字符串。
参数说明:
value - 需要转换的数值。
digits - 保留的小数位数(0-8)。
示例:
string value=DoubleToStr(1.28473418, 5); // 结果字符串为"1.28473"
NormalizeDouble() – 标准化双精度数值详解
double NormalizeDouble(double value, int digits) 该函数将浮点数值四舍五入到指定的小数位数,并返回标准化后的双精度数值。
在计算止损、止盈价位,设置挂单交易或执行即时交易时,都必须使用标准化后的价格,即小数位数不能超过交易服务器所要求的精度。这一精度要求可以通过预定义的Digits变量获取。例如在德璞资本外汇平台上进行自动化策略时,准确使用NormalizeDouble()可以有效避免因价格格式不符导致的订单拒绝。
参数说明:
value - 需要转换的数值。
digits - 保留的小数位数(0-8)。
示例:
double var1=0.123456789; Print(DoubleToStr(NormalizeDouble(var1,5),8)); // 输出结果为: 0.12346000
StrToDouble() – 字符串转浮点型详解
double StrToDouble(string value) 该函数将数字形式的字符串转换为双精度浮点数值。
参数说明:
value - 包含数字的字符串。
示例:
double var=StrToDouble("103.2812");
StrToInteger() – 字符串转整型详解
int StrToInteger(string value) 该函数将数字形式的字符串转换为整型数值。
参数说明:
value - 包含整数的字符串。
示例:
int var1=StrToInteger("1024");
StrToTime() – 字符串转日期时间详解
datetime StrToTime(string value) 该函数将格式为 "yyyy.mm.dd hh:mm" 的字符串转换为日期时间数据。
参数说明:
value - 符合 "yyyy.mm.dd hh:mm" 格式的字符串。
示例:
datetime var1; var1=StrToTime("2003.8.12 17:35"); var1=StrToTime("17:35"); // 返回当前日期搭配指定的时间 var1=StrToTime("2003.8.12"); // 返回日期时间为"2003.8.12 00:00"
TimeToStr() – 日期时间转字符串详解
string TimeToStr(datetime value, void mode) 该函数将从1970年1月1日00:00:00开始经过的秒数(时间戳)转换为 "yyyy.mm.dd hh:mm" 格式的字符串。
参数说明:
value - 从1970年1月1日00:00:00起经过的秒数。
mode - 输出格式组合,可包含以下标志:
TIME_DATE 结果格式为 "yyyy.mm.dd"
TIME_MINUTES 结果格式为 "hh:mm"
TIME_SECONDS 结果格式为 "hh:mm:ss"
示例:
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); // 返回当前日期和时间(含秒)
下一篇:暂无