资源加载中... loading...

2.12 _D( ) 函数 与 时间戳

Author: 发明者量化-小小梦, Created: 2016-12-29 16:28:35, Updated: 2017-02-14 16:54:35

_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);
  }

代码回测运行:

2.12 _D( ) 函数 与 时间戳

  • ### 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)

回测显示:

2.12 _D( ) 函数 与 时间戳


更多内容

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

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