Path: blob/master/ invest-robot-contest_NeuroInvest-main/NeuroInvest/trade_moment.py
5929 views
from config import scanInterval, scanPeriod1from kalman import Kalman2from utility import currentTimestamp34class TradeMoment:5__lastMomentStart = None6__kalman = None7__tradeX = None8__tradeY = None9__predictionsX = None10__predictionsY = None1112def getMomentData(self, history, tradeModel):13now = currentTimestamp()14momentStart = now - scanPeriod1516if self.__lastMomentStart is None or self.__lastMomentStart < momentStart - scanInterval:17dayHistory = {valueTime: value for valueTime, value in history.items() if valueTime >= momentStart}1819if dayHistory is not None and len(dayHistory) > 0:20self.__kalman = Kalman(dayHistory)21self.__tradeX, self.__tradeY = zip(*dayHistory.items())2223if tradeModel is not None:24self.__updatePredictions(tradeModel, now)2526return {"tradeX": self.__tradeX, "tradeY": self.__tradeY, "smoothY": list(self.__kalman.getSmoothData()),27"predictionsX": self.__predictionsX, "predictionsY": self.__predictionsY}2829return None303132def __updatePredictions(self, tradeModel, nowTime):33predictions = tradeModel.tradePredict(list(self.__tradeY), nowTime)3435if predictions is not None:36self.__predictionsX, self.__predictionsY = zip(*predictions.items())3738self.__predictionsX = self.__tradeX[len(self.__tradeX) - 1:] + self.__predictionsX39self.__predictionsY = self.__tradeY[len(self.__tradeY) - 1:] + self.__predictionsY4041