📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    MQL4数据类型转换函数

    2013-08-13 · 4588 阅读
    本组函数提供从一种格式到另一种格式的数据转换功能。
    特别要注意 NormalizeDouble() 函数,它确保了表示价格所需的准确性。在交易过程中,MT4不可能使用非标准价格,即使价格的小数位数多出一位,超出了交易服务器的要求的精度也是不能接受的。
    • CharToStr() – ASCII码转换成字符串
    • DoubleToStr() – 浮点型数据转换成字符串
    • NormalizeDouble() – 标准化双精度型数值
    • StrToDouble() – 字符串型数据转换成浮点型
    • StrToInteger() – 字符串数据转换成整型数值
    • StrToTime() – 字符串数据转换成日期时间
    • TimeToStr() – 日期时间型数据转换成字符串

    CharToStr() – ASCII码转换成字符串[size=1em]
    1

    string CharToStr(int char_code)




    该函数将ASCII码转换成字符串。
    参数:
    char_code - 字符的ACSII码。
    示例:
    [size=1em]
    1

    2

    string str="WORL" + CharToStr(44); // 44 是 'D' 的ASCII码。

    // str的结果为WORLD




    Back to Top

    DoubleToStr() – 浮点型数据转换成字符串[size=1em]
    1

    string DoubleToStr(double value, int digits)




    该函数将双精度浮点型数值转换成指定精度(指定小数位数)的字符串。
    参数:
    value - 要转换的数值。digits - 精度要求,小数点后位数(0-8)
    示例:
    [size=1em]
    1

    2

    string value=DoubleToStr(1.28473418, 5);

    // 值为"1.28473"




    Back to Top

    NormalizeDouble() – 标准化双精度型数值[size=1em]
    1

    double NormalizeDouble(double value, int digits)




    浮点型数值四舍五入到指定的精度,返回标准化双精度型数值。
    计算止损值和赢利值,挂单交易,即时交易的价格都要求将价格标准化(即指定价格的小数位数不能超过服务器所要求的精度)。这个精度要求可以从预定义的 digits变量 中获得。
    注意:NormalizeDouble() 函数,它确保了表示价格所需的准确性。在交易过程中,MT4不可能使用非标准价格,即使价格的小数位数多出一位,超出了交易服务器的要求的精度也是不能接受的
    参数:
    value - 要转换的数值。digits - 精度要求,小数点后位数(0-8)
    示例:
    [size=1em]
    1

    2

    3

    double var1=0.123456789;

    Print(DoubleToStr(NormalizeDouble(var1,5),8));

    //  输出的信息为: 0.12346000




    Back to Top

    StrToDouble() – 字符串数据转换成浮点型数值[size=1em]
    1

    double StrToDouble(string value)




    该函数将数值形式的字符串转换成双精度型数值。
    参数:
    value - 数字形式的字符串。
    示例:
    [size=1em]
    1

    double var=StrToDouble("103.2812");




    Back to Top

    StrToInteger() – 字符串数据转换成整型数值[size=1em]
    1

    int StrToInteger(string value)




    该函数将数值形式的字符串转换成整型数值。
    参数:
    value - 数字形式的字符串。
    示例:
    [size=1em]
    1

    int var1=StrToInteger("1024");




    Back to Top

    StrToTime() – 字符串数据转换成日期时间[size=1em]
    1

    datetime StrToTime(string value)




    该函数将数值形式的字符串转换成日期时间数据,输入格式为 "yyyy.mm.dd hh:mm"。
    参数:
    value - "yyyy.mm.dd hh:mm" 形式的字符串。
    示例:
    [size=1em]
    1

    2

    3

    4

    datetime var1;

    var1=StrToTime("2003.8.12 17:35");

    var1=StrToTime("17:35");      // 返回当前日期,给指定的时间

    var1=StrToTime("2003.8.12");  // 返回日期时间为"2003.8.12 00:00"




    Back to Top

    TimeToStr() – 日期时间型数据转换成字符串[size=1em]
    1

    string TimeToStr(datetime value, void mode)




    该函数将日期时间型数据(从1970年1月1日起经过的秒数)转换为 "yyyy.mm.dd hh:mm" 形式的字符串。
    参数:
    value - 从1970年1月1}1 00:00所经过的秒数。mode - 数据输出形式可以是下列一个或者多个组合:       TIME_DATE 结果格式为 "yyyy. mm. dd",       TIME_MINUTES 结果格式为"hh:mm",       TIME_SECONDS 结果格式为“hh:mm:ss".
    示例:
    [size=1em]
    1

    string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);





    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 6 个

    forexea LV3

    发表于 2014-11-14 07:22:08 | 显示全部楼层

    想学EA,拜师,谁收了我吧

    du332167 LV3

    发表于 2014-11-24 06:30:37 | 显示全部楼层

    xiexiefenxiang

    tnfgzezj LV3

    发表于 2014-12-18 09:17:16 | 显示全部楼层

    找版主

    yixpenfoq LV3

    发表于 2015-1-6 16:27:05 | 显示全部楼层

    [s:145]

    liuxin_840 LV3

    发表于 2015-1-15 02:44:07 | 显示全部楼层


    呵呵
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服