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)
def add_strategies(self, settings): for setting in settings: strategy = setting['strategy'] ctx = Context(self._all_data, strategy.name, setting, strategy, self._max_window) ctx.data_ref.default_pcontract = self.pcontracts[0] self._contexts.append(ctx) yield (Profile(ctx.marks, ctx.blotter, ctx.data_ref))
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)