欢迎光临散文网 会员登陆 & 注册

期货量化软件:赫兹量化中的处理时间---基础

2023-09-04 11:23 作者:大牛啊呢  | 我要投稿

宏替代

所有一切都在(附件)包含文件 里。 在这个文件的开头有各种宏替换。 首先,不同地区有一些时间偏移,如此您就不必一次再一次地推导或搜索它们: //--- defines #define TokyoShift   -32400 // always 9h #define NYShift      18000 // winter 17h=22h GMT: NYTime + NYshift = GMT #define LondonShift  0 // winter London offset #define SidneyShift  -39600 // winter Sidney offset #define FfmShift     -3600 // winter Frankfurt offset #define MoskwaShift  -10800 // winter Moscow offset #define FxOPEN       61200 // = NY 17:00 = 17*3600 #define FxCLOSE      61200 // = NY 17:00 = 17*3600 #define WeekInSec    604800 // 60sec*60min*24h*7d = 604800 => 1 Week 为了更好地理解,我们同意 GMT 是一个不可变的时间锚点,而不同的本地时间,如纽约、伦敦或莫斯科,每一个都有不同的(可变)时移。 同样,我们也将夏季或冬季时间的变更作为变量。 原因很简单。 可变时移的符号定义如下:                   可变时间 + 可变时移 = GMT 一些例子:                               莫斯科 (16h) + 莫斯科时移 (-3h)                                = GMT (13h)                   纽约时间 (16h) + 纽约时移 (+5h)                             = GMT (21h)                   纽约时间 (16h) + (纽约时移 (+5h) + DST_US(-1h))  = GMT (20h)                   法兰克福时间 (16h) + (法兰克福时移 (-1h) + DST_US(-1h))  = GMT (14h) 留心括号! 当根据 GMT 计算可变时间时,它们变得非常重要:                   纽约时间 (16h) =  GMT (20h) - (纽约时移 (+5h) + DST_US(-1h)) => 20 -(+5 + -1) = 20 - 5 +1 = 16h                   法兰克福时间 (16h) =  GMT (14h) - (法兰克福时移 (-1h) + DST_US(-1h)) => 14 -( -1 + -1) = 14 +1 +1 = 16h 相信我,这是标记错误和误解的永恒来源。 以这种形式中,MQL5 和 PC 也会处理时差,如 TimeGMTOffset(): TimeLocal() + TimeGMTOffset() = TimeGMT()) 或 TimeDaylightSavings(): TimeLocal() + TimeDaylightSavings() = 冬季或 PC 的标准本地时间。 作为本部分的最后一部分,诸如 FxOpen 和 FxClose 提供以秒为单位的整个星期的持续时间 WeekInSec,因为在为变量赋值时,这种设计比在代码中突兀加入数字(例如 604800)更容易理解。


期货量化软件:赫兹量化中的处理时间---基础的评论 (共 条)

分享到微博请遵守国家法律