示例#1
0
    def __init__(self, strategy_engine: StrategyEngine, strategy_name: str,
                 vt_symbols: List[str], setting: dict):
        """"""
        super().__init__(strategy_engine, strategy_name, vt_symbols, setting)

        # self.y_symbol = (self.vt_symbols[0].split('.'))[0]
        # self.x_symbol = (self.vt_symbols[1].split('.'))[1]
        self.y_symbol = self.vt_symbols[0]
        self.x_symbol = self.vt_symbols[1]

        self.x_fixed_size = int(np.abs(self.fixed_size * self.x_multiplier))
        self.y_fixed_size = int(np.abs(self.fixed_size * self.y_multiplier))

        self.open_direction_dict['x_symbol'] = 0
        self.open_direction_dict['y_symbol'] = 0

        self.close_direction_dict['x_symbol'] = 0
        self.close_direction_dict['y_symbol'] = 0

        self.ams: Dict = {}
        self.ams[self.y_symbol] = ArrayManager(size=self.hedge_ratio_window +
                                               50)
        self.ams[self.x_symbol] = ArrayManager(size=self.hedge_ratio_window +
                                               50)
        self.sam = SpreadArrayManager(
            size=max(self.std_window, self.mean_window) + 50)
示例#2
0
    def __init__(
        self,
        strategy_engine: StrategyEngine,
        strategy_name: str,
        vt_symbols: List[str],
        setting: dict
    ):
        """"""
        super().__init__(strategy_engine, strategy_name, vt_symbols, setting)
        
        self.last_tick_time: datetime = None
        self.ams:Dict[str, ArrayManager] = {}
        self.bgs: Dict[str, BarGenerator] = {}

        # 策略内动态调整OLS相关参数,小数参数会被int()


       
        self.short_entry_multiplier = abs(self.entry_multiplier)
        self.short_exit_multiplier = 0
        self.long_entry_multiplier =  -abs(self.entry_multiplier)
        self.long_exit_multiplier = 0

        self.mean_window = int(self.std_window * self.std_mean_window_ratio)

        

        self.y_symbol = self.vt_symbols[0]
        self.x_symbol = self.vt_symbols[1]


        self.x_fixed_size = np.abs(self.fixed_size * 1)
        self.y_fixed_size = np.abs(self.fixed_size * 1)

        self.x_pos_target = 0
        self.y_pos_target = 0




        # 实例化缓存期货品种价格序列容器
        for vt_symbol in self.vt_symbols:

            self.ams[vt_symbol] =  ArrayManager(size=max(self.std_window,self.mean_window)+50)

        #实例化bg容器
        

        for vt_symbol in self.vt_symbols:

            def on_bar(bar: BarData):
                """"""
                pass

            self.bgs[vt_symbol] = BarGenerator(on_bar)


        # 实例化缓存价差价格序列容器
        self.sam = SpreadArrayManager(size=max(self.std_window,self.mean_window)+50)
示例#3
0
    def __init__(self, strategy_engine: StrategyEngine, strategy_name: str,
                 vt_symbols: List[str], setting: dict):
        """"""
        super().__init__(strategy_engine, strategy_name, vt_symbols, setting)

        # self.y_symbol = (self.vt_symbols[0].split('.'))[0]
        # self.x_symbol = (self.vt_symbols[1].split('.'))[1]
        self.y_symbol = self.vt_symbols[0]
        self.x_symbol = self.vt_symbols[1]

        self.x_fixed_size = int(np.abs(self.fixed_size * self.x_multiplier))
        self.y_fixed_size = int(np.abs(self.fixed_size * self.y_multiplier))

        self.open_direction_dict['x_symbol'] = 0
        self.open_direction_dict['y_symbol'] = 0

        self.close_direction_dict['x_symbol'] = 0
        self.close_direction_dict['y_symbol'] = 0

        self.sam = SpreadArrayManager()
    def __init__(self, strategy_engine: StrategyEngine, strategy_name: str,
                 vt_symbols: List[str], setting: dict):
        """"""
        super().__init__(strategy_engine, strategy_name, vt_symbols, setting)

        self.short_entry_multiplier = abs(self.entry_multiplier)
        self.short_exit_multiplier = 0

        self.long_entry_multiplier = -abs(self.entry_multiplier)
        self.long_exit_multiplier = 0

        self.mean_window = self.std_window

        # self.difference_exit_num = self.difference_filter_num / 2

        self.y_symbol = self.vt_symbols[0]
        self.x_symbol = self.vt_symbols[1]

        self.x_fixed_size = int(np.abs(self.fixed_size * self.x_multiplier))
        self.y_fixed_size = int(np.abs(self.fixed_size * self.y_multiplier))

        self.open_direction_dict['x_symbol'] = 0
        self.open_direction_dict['y_symbol'] = 0

        self.close_direction_dict['x_symbol'] = 0
        self.close_direction_dict['y_symbol'] = 0

        # 实例化缓存期货品种价格序列容器
        self.ams: Dict = {}
        self.ams[self.y_symbol] = ArrayManager(size=self.hedge_ratio_window +
                                               50)
        self.ams[self.x_symbol] = ArrayManager(size=self.hedge_ratio_window +
                                               50)
        # 实例化缓存价差价格序列容器
        self.sam = SpreadArrayManager(
            size=max(self.std_window, self.mean_window) + 50)
        self.record_array = []
        self.record_boll_up = []
        self.record_boll_down = []
        self.record_mean = []