Ejemplo n.º 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)
Ejemplo n.º 2
0
 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))
Ejemplo n.º 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)