예제 #1
0
    def __init__(self,
                 pcontracts,
                 dt_start="1980-1-1",
                 dt_end="2100-1-1",
                 n=None,
                 spec_date={}):  # 'symbol':[,]
        """
        Args:
            pcontracts (list): list of pcontracts(string)

            dt_start (datetime/str): start time of all pcontracts

            dt_end (datetime/str): end time of all pcontracts

            n (int): last n bars

            spec_date (dict): time range for specific pcontracts
        """
        self.finished_data = []
        pcontracts = map(lambda x: x.upper(), pcontracts)
        self.pcontracts = pcontracts
        self._combs = []
        self._data_manager = DataManager()
        # str(PContract): DataWrapper
        if settings['source'] == 'csv':
            self.pcontracts = self._parse_pcontracts(self.pcontracts)
        self._default_pcontract = self.pcontracts[0]
        self._all_data, self._max_window = self._load_data(
            self.pcontracts, dt_start, dt_end, n, spec_date)
        self.context = Context(self._all_data, self._max_window)
예제 #2
0
    def __init__(self):
        log.info("Init Backend..")
        self._dm = DataManager()
        self._engine = ZMQEventEngine('Backend')
        self._engine.start()

        self._shell_srv = EventRPCServer(self._engine, self.SERVER_FOR_SHELL)
        self._ui_srv = EventRPCServer(self._engine, self.SERVER_FOR_UI)
        self.register_functions(self._shell_srv)
        self.register_functions(self._ui_srv)
예제 #3
0
 def __init__(self, pcontracts, window_size=0, dt_start=datetime(1980,1,1),
         dt_end=datetime(2100,1,1), spec_date = { }): # 'symbol':[,]
     series.g_rolling = False if window_size == 0 else True
     series.g_window = window_size
     self.all_data = OrderedDict()     # str(PContract): DataWrapper
     self.finished_data = []
     pcontracts = map(lambda x: x.upper(), pcontracts)
     self.pcontracts = pcontracts
     self._combs = []
     self._window_size = window_size + 1
     self._data_manager = DataManager()
     for pcon in pcontracts:
         if pcon in spec_date:
             dt_start = spec_date[pcon][0]
             dt_end = spec_date[pcon][1]
         assert(dt_start < dt_end)
         self.load_data(pcon, dt_start, dt_end)
     self.context = Context(self.all_data)
예제 #4
0
 def test_csv_source(self):
     source_bak = ConfigUtil.get('source')
     logger.info('***** 数据测试开始 *****')
     ConfigUtil.set(source='csv')
     data_manager = DataManager()
     target = data_manager.get_bars('BB.TEST-1.Minute', _DT_START,
                                    _DT_END).data
     fname = os.path.join(os.getcwd(), 'data', '1MINUTE', 'TEST', 'CC.csv')
     source = pd.read_csv(fname,
                          parse_dates='datetime',
                          index_col='datetime')
     self.assertFalse(source.equals(target), '本地数据接口负测试失败!')
     fname = os.path.join(os.getcwd(), 'data', '1MINUTE', 'TEST', 'BB.csv')
     source = pd.read_csv(fname,
                          parse_dates='datetime',
                          index_col='datetime')
     self.assertTrue(source.equals(target), '本地数据接口正测试失败!')
     logger.info('-- 本地数据接口测试成功 --')
     ConfigUtil.set(source=source_bak)
     logger.info('***** 数据测试结束 *****\n')
예제 #5
0
 def get_pcontract(self, str_pcontract):
     dm = DataManager()
     da = dm.get_bars(str_pcontract)
     return serialize_pcontract_bars(str_pcontract, da.data)