def on_init(self, ctx):
     """初始化数据""" 
     ctx.ma3 = MA(ctx.close, 3)
     ctx.svar = NumberSeries()
     ctx.numseries = NumberSeries()
     ctx.dtseries = DateTimeSeries()
     ctx.dlist = []
     return
Beispiel #2
0
 def _init_main_data(self):
     # 预留了历史和当天的数据空间。
     self.open = NumberSeries(self, self._data.open, True)
     self.close = NumberSeries(self, self._data.close, True)
     self.high = NumberSeries(self, self._data.high, True)
     self.low = NumberSeries(self, self._data.low, True)
     self.volume = NumberSeries(self, self._data.volume, True)
     self.datetime = DateTimeSeries(self, self._data.index, True)
     self.curbar = 0
Beispiel #3
0
    def __init__(self, data: "dict((s_pcon, DataFrame))", name, settings,
                 strategy, max_window):
        TradingDelegator.__init__(self, name, settings)
        PlotterDelegator.__init__(self)

        self.dt_series = DateTimeSeries([MAX_DATETIME] * max_window,
                                        'universal_time')
        self.aligned_dt = datetime.datetime(2100, 1, 1)
        self.aligned_bar_index = 0
        self.strategy_name = name
        self.on_bar = False
        self.strategy = strategy
        self.data_ref = DataRef(data)
Beispiel #4
0
 def __init__(self, data, max_window):
     self.ctx_dt_series = DateTimeSeries([datetime.datetime(2100, 1, 1)] *
                                         max_window, 'universal_time')
     self.ctx_datetime = datetime.datetime(2100, 1, 1)
     self.on_bar = False
     self.step = 0
     self._data_contexts = {}  # str(PContract): DataContext
     for key, value in data.iteritems():
         self._data_contexts[key] = value
     self._cur_data_context = None
     self._strategy_contexts = []
     self._cur_strategy_context = None
     self._ticks = {}  # Contract: float
     self._bars = {}  # Contract: Bar
Beispiel #5
0
 def __init__(self, pcontract, raw_data):
     self.open = NumberSeries(raw_data.open.values, 'open')
     self.close = NumberSeries(raw_data.close.values, 'close')
     self.high = NumberSeries(raw_data.high.values, 'high')
     self.low = NumberSeries(raw_data.low.values, 'low')
     self.volume = NumberSeries(raw_data.volume.values, 'volume')
     self.datetime = DateTimeSeries(raw_data.index, 'datetime')
     self.bar = Bar(None, None, None, None, None, None)
     self.has_pending_data = False
     self.next_datetime = datetime.datetime(2100, 1, 1)
     self.size = len(raw_data.close)
     self.pcontract = pcontract
     self._curbar = -1
     self._helper = RollingHelper(len(raw_data))
     self._raw_data = raw_data
Beispiel #6
0
    def __init__(self, data, max_window):
        self.ctx_dt_series = DateTimeSeries([datetime.datetime(2100, 1, 1)] *
                                            max_window, 'universal_time')
        self.ctx_datetime = datetime.datetime(2100, 1, 1)
        self.ctx_curbar = 0  # update by ExecuteUnit

        self.on_bar = False  # pass to on_bar function or on_symbol function
        self._strategy_contexts = []
        self._cur_strategy_context = None
        self._cur_data_context = None
        self._data_contexts = {}  # str(PContract): DataContext
        for key, value in data.iteritems():
            self._data_contexts[key] = value
            self._data_contexts[key.split('-')[0]] = value
            self._data_contexts[key.split('.')[0]] = value
        # latest price data
        # Contract -> float
        # Contract -> Bar
        self._ticks = {}
        self._bars = {}
Beispiel #7
0
 def __init__(self, wrapper, window_size):
     """ window_size: 滚动窗口大小 """
     self.wrapper = wrapper
     self.series = [[{ }]]
     self.indicators = [[{ }]]
     self.variables = [[{ }]]
     data = self.wrapper.data
     self.window_size = window_size
     self.open = NumberSeries(data.open.values, self.window_size, 'open')
     self.close = NumberSeries(data.close.values, self.window_size, 'close')
     self.high = NumberSeries(data.high.values, self.window_size, 'high')
     self.low = NumberSeries(data.low.values, self.window_size, 'low')
     self.volume = NumberSeries(data.volume.values, self.window_size, 'volume')
     self.datetime = DateTimeSeries(data.index, self.window_size, 'datetime')
     self.i = -1   # 第i个组合
     self.j = -1   # 第j个策略
     self._curbar = -1
     self.bar = Bar(None, None, None, None, None, None)
     self.last_row = []
     self.last_date = datetime.datetime(2100,1,1)
Beispiel #8
0
    def __init__(self, wrapper):
        data = wrapper.data
        self.open = NumberSeries(data.open.values, 'open')
        self.close = NumberSeries(data.close.values, 'close')
        self.high = NumberSeries(data.high.values, 'high')
        self.low = NumberSeries(data.low.values, 'low')
        self.volume = NumberSeries(data.volume.values, 'volume')
        self.datetime = DateTimeSeries(data.index, 'datetime')
        self.i = -1  # 第i个组合
        self.j = -1  # 第j个策略
        self.bar = Bar(None, None, None, None, None, None)
        self.last_row = []
        self.last_date = datetime.datetime(2100, 1, 1)
        self.indicators = [[{}]]

        self._curbar = -1
        self._wrapper = wrapper
        self._series = [[{}]]
        self._variables = [[{}]]
        self._all_variables = [[{}]]
        self._size = len(data.close)
    def __init__(self, Helper):
        data = Helper.data
        self.open = NumberSeries(data.open.values, 'open')
        self.close = NumberSeries(data.close.values, 'close')
        self.high = NumberSeries(data.high.values, 'high')
        self.low = NumberSeries(data.low.values, 'low')
        self.volume = NumberSeries(data.volume.values, 'volume')
        self.datetime = DateTimeSeries(data.index, 'datetime')
        self.ith_comb = -1  # 第i个组合
        self.ith_strategy = -1  # 第j个策略
        self.bar = Bar(None, None, None, None, None, None)
        self.new_row = False
        self.next_datetime = datetime.datetime(2100, 1, 1)
        self.technicals = [[{}]]

        self._curbar = -1
        self._Helper = Helper
        self._series = [[{}]]
        self._variables = [[{}]]
        self._all_variables = [[{}]]
        self._size = len(data.close)