callTickToKline method

dynamic callTickToKline(
  1. dynamic startt,
  2. dynamic tickTime,
  3. dynamic interval
)

Implementation

callTickToKline(startt, tickTime, interval) {
  var jzt = startt, stopt = 0; //周期结束时间
  if (tickTime >= startt && startt > 0) {
    if (interval == 'fs' || Tools.isNumber(interval)) {
      //日k以内
      if (interval == 'fs') {
        interval = 1000;
      } else {
        interval = int.parse(interval) * 1000; //转换成毫秒值
      }
      stopt = startt + interval;
      if (tickTime < stopt) {
        jzt = startt;
      } else {
        jzt = stopt;
        while (true) {
          if (tickTime > jzt + interval) {
            stopt = jzt + interval;
            jzt = stopt;
          } else {
            break;
          }
        }
      }
      if (jzt == startt) {
        return {'type': 0, 'not': startt};
      } else {
        if (jzt > startt) {
          return {'type': 1, 'not': jzt};
        } else {
          return {'type': -1};
        }
      }
    } else {
      var result = Tools.getIntervalStartEndTime(interval, startt);
      var d1Start = result['startT'];
      var d1End = result['stopt'];
      if (d1Start <= tickTime && tickTime < d1End) {
        // 修改K线
        return {'type': 0, 'not': d1Start};
      } else {
        var tickerTime = Tools.getRiStartTime(interval, tickTime);
        if (timeUTC == TimeUtcType.utc8) {
          tickerTime += 28800000; //加8小时
        }
        // 新增K线
        return {'type': 1, 'not': tickerTime};
      }
    }
  }
  return {'type': -1};
}