Type/to search
8
Follow
1375
Followers
2.12 _D( ) 函数 与 时间戳
Tutorials
Created 2016-12-29 16:28:35  Updated 2017-02-14 16:54:35
 2
 3600

_D( ) 函数 与 时间戳


  • JS 时间戳

    在写策略的时候,不免会遇到使用时间戳的问题,在JS中 时间戳 是个毫秒级别的数字。
    通常不是很直观,主要是用来在程序中判断时间先后顺序,计算时间差等等。
    在DEBUG或者调试的时候很不方便。为此,平台内置了一个函数 : _D()函数,用来把时间戳显示为字符串便于使用。
    同样有时候还需要把一个具体描述的时间转换为时间戳,那怎么处理呢?

    给出代码示例:

    function main(){ // example TimeString to TimeStamp //timeStr format: "2016.12.01 13:55:60"; var stamp = new Date("2014-07-10 10:21:12:500").getTime(); Log("stamp:", stamp,"_D(stamp)" ,_D(stamp) ,"srting : 2014-07-10 10:21:12"); //timeStr format: "2016.12.01 13:55:60:300"; var stamp2 = new Date("2014-07-10 10:21:12").getTime(); Log("stamp2:", stamp2,"_D(stamp)" ,_D(stamp2) ,"srting : 2014-07-10 10:21:12"); var nowTimeStamp = new Date().getTime(); var nowTimeStr = _D(nowTimeStamp); Log(new Date(nowTimeStr).getTime(), nowTimeStamp); }

    代码回测运行:

    img

  • Python 时间戳

    需要注意的是_D()函数在 Python 中用法是有些不一样的,我们也用代码测试一下。

    import time def main(): # example TimeString to TimeStamp # timeStr format: "2016.12.01 13:55:60"; # time.mktime(tupletime) # 接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。 stamp = time.mktime((2014, 7, 10, 10, 21, 12, 5, 0, 0)) Log("stamp:", stamp, "_D(stamp)", _D(stamp)," srting : 2014-07-10 10:21:12") stamp2 = time.mktime((2014, 7, 10, 10, 21, 12, 0, 0, 0)) Log("stamp2:", stamp2, "_D(stamp)", _D(stamp2), "srting : 2014-07-10 10:21:12") nowTimeStamp = time.time() nowTimeStr = _D(nowTimeStamp) Log("nowTimeStamp:", nowTimeStamp, "nowTimeStr:", nowTimeStr)

    回测显示:

    img

Related Recommendations
Comment
All comments (2)

    _D() 在 python平台上的时间单位是秒,和说明里的不一样。所以k线数据里的Time需要除以1000

    10 years ago

    哦 ~是的 ,感谢提醒 ,我增加 对 python 的解释说明 ^^ , 不过 python 的策略中 使用 _D 传入 的参数 直接用 Python time.time() 返回的值就可以(秒级别的 时间戳),
    K线数据 中的时间戳是 毫秒级别的,需要在Python 策略中做 除以 1000 的转换,用于对比time.time() 返回的秒级时间戳。

    10 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)