Ejemplo n.º 1
0
double DecoTimer::getCurrentTime(void)
{
	if (m_isPaused)
	{
	  return timeDiffInSecond(m_pauseTime, m_startTime);
	} else {

	  gettimeofday(&m_nowTime, NULL);
	  return timeDiffInSecond(m_nowTime, m_startTime);
	}

}
Ejemplo n.º 2
0
int StockProcessor::priceAnomaly(MarketUpdate &mkdt) {
  DataBundle data;
  data.ts = std::chrono::system_clock::now();
  data.mkdt = mkdt;

  dataBuf.push_back(data);
  if (dataBuf.size() < initBufSize)
    return 0;

  DataBundle curData = dataBuf[0];
  DataBundle preData = dataBuf[1];

  double tsDiff =  timeDiffInSecond(curData.ts, preData.ts);
  double curPrice = weightedPrice(curData.mkdt);
  double prePrice = weightedPrice(preData.mkdt);
  double prctDiff = (curPrice - prePrice) * 100 / curPrice;

  if (tsDiff > 1e-6) {
    double prcAcc = prctDiff / tsDiff;

    //LOG(INFO) << "prctDiff " << prctDiff << " tsDiff " << tsDiff;

    if (prcAcc > priceAnomalyThreshold) {
      LOG(INFO) << "Ticker " << code << " speed increase change alert";
    } else if (prcAcc < -priceAnomalyThreshold) {
      LOG(INFO) << "Ticker " << code << " speed decrease change alert";
    }
  }

  return 0;
}