def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'sdiffer'
        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        self.be_run = 'stop'
        self.d_low_open = -100.0
        self.d_high_open = 100.0
        self.d_low_mail = -100.0
        self.d_high_mail = 100.0
        self.mailed_low = False
        self.mailed_high = False
        self.load_switch()

        self.stop = False
        self.basic_m0 = None
        self.basic_m1 = None
        self.cacl_vars()

        self.symbol_obj = None
        self.d_base_dict = {}

        Portfolio.__init__(self, Fut_SdifferSignal, engine, symbol_list,
                           signal_param)
Esempio n. 2
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'ic'

        assert len(symbol_list) == 2
        self.symbol_g = symbol_list[0]
        self.symbol_d = symbol_list[1]
        self.dual_name = self.symbol_g + '_' + self.symbol_d
        symbol_list.append(self.dual_name)
        self.direction_g = 'direction_g'
        self.num_g = 0
        self.direction_d = 'direction_d'
        self.num_d = 0
        self.got_dict = {}
        self.got_dict[self.symbol_g] = False
        self.got_dict[self.symbol_d] = False

        df = self.load_param()
        if df is not None:
            for i, row in df.iterrows():
                if row.symbol_g in symbol_list and row.symbol_d in symbol_list:
                    self.direction_g = row.symbol_g
                    self.num_g = row.direction_g
                    self.direction_d = row.num_g
                    self.num_d = row.num_d

        Portfolio.__init__(self, Fut_IcSignal, engine, symbol_list, signal_param)

        self.name_second = 'ic_' + self.dual_name
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'ratio'

        assert len(symbol_list) == 2
        self.symbol_c = symbol_list[0]
        self.symbol_p = symbol_list[1]
        self.dual_name = self.symbol_c + '_' + self.symbol_p

        self.got_dict = {}
        self.got_dict[self.symbol_c] = False
        self.got_dict[self.symbol_p] = False

        self.price_c = 0
        self.price_p = 0

        self.hold_c = 0
        self.hold_p = 0

        self.profit_c = 0
        self.profit_p = 0

        self.fixed_size = 1
        self.gap = 100
        self.profit = 100
        self.load_param(self.symbol_c, self.symbol_p)

        Portfolio.__init__(self, Fut_RatioSignal, engine, symbol_list,
                           signal_param)

        self.name_second = 'ratio_' + self.dual_name
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'turtle'
        self.multiplierDict = {}  # 按照波动幅度计算的委托量单位字典
        self.totalLong = 0  # 总的多头持仓
        self.totalShort = 0  # 总的空头持仓

        Portfolio.__init__(self, Fut_TurtleSignal, engine, symbol_list,
                           signal_param)
Esempio n. 5
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'dalicta'

        s_param = {}
        for symbol in symbol_list:
            s_param[symbol] = {'fixedSize': 6}
        Portfolio.__init__(self, Fut_DaLictaSignal, engine, symbol_list,
                           s_param)
Esempio n. 6
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'ratio'

        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        Portfolio.__init__(self, Fut_RatioSignal, engine, symbol_list,
                           signal_param)
Esempio n. 7
0
    def __init__(self, engine, name):
        Portfolio.__init__(self, engine)

        self.name = name
        self.vtSymbolList = []
        self.SIZE_DICT = {}
        self.PRICETICK_DICT = {}
        self.VARIABLE_COMMISSION_DICT = {}
        self.FIXED_COMMISSION_DICT = {}
        self.SLIPPAGE_DICT = {}
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'straddle'
        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        Portfolio.__init__(self, Fut_StraddleSignal, engine, symbol_list,
                           signal_param)
        self.promote = True
Esempio n. 9
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'skew_strd'
        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        # self.d_base_dict = {}

        Portfolio.__init__(self, Fut_Skew_StrdSignal, engine, symbol_list,
                           signal_param)
Esempio n. 10
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'short_put'
        self.open_dict = {}
        self.close_dict = {}
        for symbol in symbol_list:
            self.open_dict[self.symbol] = False
            self.close_dict[self.symbol] = False

        Portfolio.__init__(self, Opt_Short_PutSignal, engine, symbol_list,
                           signal_param)

        self.name_second = 'short_put_' + str(get_contract(symbol_list[0]).pz)
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'arbitrage'
        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        config = open(get_dss()+'fut/cfg/config.json')
        setting = json.load(config)
        symbols = setting['symbols_arbitrage']
        self.pz_list = symbols.split(',')                     # 进行套利监控的品种
        self.slice_dict = {}                                  # 每分种产生一个行情切片
        self.id = 100                                         # 唯一标识套利机会,便于后续手工下单

        Portfolio.__init__(self, Fut_ArbitrageSignal, engine, symbol_list, signal_param)
Esempio n. 12
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'spread'

        self.tm = '00:00:00'
        self.got_dict = {}
        for symbol in symbol_list:
            self.got_dict[symbol] = False

        self.spread_dict = {}
        self.process_dict = {}
        fn = get_dss() + 'fut/engine/spread/portfolio_spread_param.csv'
        df = pd.read_csv(fn)
        for i, row in df.iterrows():
            self.spread_dict[row.nm] = [row.s0, row.s1]
            self.process_dict[row.nm] = False

        Portfolio.__init__(self, Fut_SpreadSignal, engine, symbol_list,
                           signal_param)
Esempio n. 13
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'avenger'

        assert len(symbol_list) == 3
        self.symbol_o = symbol_list[0]
        self.symbol_c = symbol_list[1]
        self.symbol_p = symbol_list[2]

        self.got_dict = {}
        self.got_dict[self.symbol_o] = False
        self.got_dict[self.symbol_c] = False
        self.got_dict[self.symbol_p] = False

        self.price_o = 0
        self.price_o_high = 0
        self.price_o_low = 0

        self.price_c = 0
        self.price_p = 0

        self.hold_o = 0
        self.hold_c = 0
        self.hold_p = 0

        self.profit_o = 0
        self.profit_c = 0
        self.profit_p = 0

        self.switch_state = 'off'
        pz = str(get_contract(self.symbol_c).pz)
        fn = get_dss() + 'fut/engine/avenger/avenger_switch_' + pz + '.csv'
        if os.path.exists(fn):
            df = pd.read_csv(fn)
            if len(df) > 0:
                rec = df.iloc[-1, :]
                if rec.state == 'on':
                    self.switch_state = 'on'
                    rec.state = 'off'
                    df2 = pd.DataFrame([rec])
                    df2.to_csv(fn, index=False)  # 回写文件

        Portfolio.__init__(self, Fut_AvengerSignal, engine, symbol_list,
                           signal_param)
Esempio n. 14
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'follow'

        self.symbol_o = ''
        self.symbol_c = ''
        self.symbol_p = ''

        for symbol in symbol_list:
            if symbol[:2] == 'IF':
                self.symbol_o = symbol
                break

        self.got_dict = {}
        self.strike_high = 0
        self.strike_low = 0

        self.price_o = 0
        self.price_o_high = 0
        self.price_o_low = 0

        self.price_c = 0
        self.price_p = 0

        self.hold_o = 0
        self.hold_c = 0
        self.hold_p = 0

        self.profit_o = 0
        self.profit_c = 0
        self.profit_p = 0

        self.switch_state = 'off'
        fn = get_dss() + 'fut/engine/follow/follow_switch.csv'
        if os.path.exists(fn):
            df = pd.read_csv(fn)
            if len(df) > 0:
                rec = df.iloc[-1, :]
                if rec.state == 'on':
                    self.switch_state = 'on'

        Portfolio.__init__(self, Fut_FollowSignal, engine, symbol_list,
                           signal_param)
Esempio n. 15
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'yue'

        assert len(symbol_list) == 2
        self.symbol_a = symbol_list[0]
        self.symbol_b = symbol_list[1]
        self.dual_name = self.symbol_a + '_' + self.symbol_b
        symbol_list.append(self.dual_name)
        self.got_dict = {}
        self.got_dict[self.symbol_a] = False
        self.got_dict[self.symbol_b] = False

        df = self.load_param()
        if df is not None:
            for i, row in df.iterrows():
                if row.symbol_a in symbol_list and row.symbol_b in symbol_list:
                    pass

        Portfolio.__init__(self, Fut_YueSignal, engine, symbol_list,
                           signal_param)

        self.name_second = 'yue_' + self.dual_name
Esempio n. 16
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'follow'

        assert len(symbol_list) == 3
        self.symbol_o = symbol_list[0]
        self.symbol_c = symbol_list[1]
        self.symbol_p = symbol_list[2]

        if self.symbol_o[:2] == 'IF':
            self.symbol_future = 'IO' + self.symbol_o[2:]
        else:
            self.symbol_future = self.symbol_o
        self.dual_name = self.symbol_future

        self.got_dict = {}
        self.got_dict[self.symbol_o] = False
        self.got_dict[self.symbol_c] = False
        self.got_dict[self.symbol_p] = False

        self.price_o = 0
        self.price_o_high = 0
        self.price_o_low  = 0

        self.price_c = 0
        self.price_p = 0

        self.hold_o = 0
        self.hold_c = 0
        self.hold_p = 0

        self.profit_o = 0
        self.profit_c = 0
        self.profit_p = 0

        self.flag_c, self.flag_p, self.strike_high, self.strike_low, self.fixed_size, self.switch_state, self.percent, self.gap = self.load_param(self.symbol_c, self.symbol_p)

        Portfolio.__init__(self, Fut_FollowSignal, engine, symbol_list, signal_param)

        self.name_second = 'follow_' + self.dual_name
Esempio n. 17
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'ic'
        self.got_dict = {}
        self.dual_dict = {}

        df = self.load_param()
        if df is not None:
            for i, row in df.iterrows():
                if row.symbol_g in symbol_list and row.symbol_d in symbol_list:
                    symbol_list.append(row.symbol_dual)
                    self.dual_dict[row.symbol_dual] = {
                        'symbol_g': row.symbol_g,
                        'direction_g': row.direction_g,
                        'num_g': row.num_g,
                        'symbol_d': row.symbol_d,
                        'direction_d': row.direction_d,
                        'num_d': row.num_d,
                    }
            # 将品种对加入symbol_list
            symbol_list += self.dual_dict.keys()

        Portfolio.__init__(self, Fut_IcSignal, engine, symbol_list,
                           signal_param)
Esempio n. 18
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'swap'

        self.symbol_o = ''
        self.symbol_a = ''
        for symbol in symbol_list:
            if len(symbol) == 6:
                self.symbol_o = symbol
                break
        assert self.symbol_o != ''

        self.got_dict = {}

        self.price_o = 0
        self.price_a = 0

        self.hold_o = 0
        self.hold_a = 0

        self.profit_o = 0
        self.profit_a = 0

        self.can_duo = False
        self.can_kong = False

        self.switch_state = 'on'
        pz = str(get_contract(self.symbol_c).pz)
        fn = get_dss() + 'fut/engine/swap/swap_switch_' + pz + '.csv'
        if os.path.exists(fn):
            df = pd.read_csv(fn)
            if len(df) > 0:
                rec = df.iloc[-1, :]
                if rec.state == 'off':
                    self.switch_state = 'off'

        Portfolio.__init__(self, Fut_SwapSignal, engine, symbol_list,
                           signal_param)
Esempio n. 19
0
 def __init__(self, engine, symbol_list, signal_param={}):
     #Portfolio.__init__(self, Fut_AberrationSignal_Duo, engine, symbol_list, signal_param, Fut_AberrationSignal_Kong, signal_param)
     #Portfolio.__init__(self, Fut_AberrationSignal_Duo, engine, symbol_list, signal_param, None, None)
     Portfolio.__init__(self, Fut_AberrationSignal_Kong, engine,
                        symbol_list, signal_param, None, None)
     self.name = 'aberration'
Esempio n. 20
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'kama_raw'

        Portfolio.__init__(self, Fut_Kama_RawSignal_Duo, engine, symbol_list,
                           signal_param, Fut_Kama_RawSignal_Kong, signal_param)
Esempio n. 21
0
 def __init__(self, engine, symbol_list, signal_param={}):
     self.name = 'ma'
     Portfolio.__init__(self, Fut_MaSignal_Duo, engine, symbol_list,
                        signal_param, Fut_MaSignal_Kong, signal_param)
 def __init__(self, engine, symbol_list, signal_param={}):
     self.name = 'owl'
     Portfolio.__init__(self, Fut_OwlSignal, engine, symbol_list,
                        signal_param)
 def __init__(self, engine, symbol_list, signal_param={}):
     self.name = 'rsiboll'
     Portfolio.__init__(self, Fut_RsiBollSignal_Duo, engine, symbol_list, signal_param, Fut_RsiBollSignal_Kong, signal_param)
Esempio n. 24
0
 def __init__(self, engine, symbol_list, signal_param={}):
     self.name = 'donchian'
     Portfolio.__init__(self, Fut_DonchianSignal_Duo, engine, symbol_list,
                        signal_param, Fut_DonchianSignal_Kong, signal_param)
Esempio n. 25
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'dalicta'
        Portfolio.__init__(self, Fut_DaLictaSignal_Duo, engine, symbol_list,
                           signal_param, Fut_DaLictaSignal_Kong, signal_param)

        self.name_second = 'dalicta_' + str(get_contract(symbol_list[0]).pz)
Esempio n. 26
0
 def __init__(self, engine, symbol_list, signal_param={}):
     self.name = 'atrrsi'
     Portfolio.__init__(self, Fut_AtrRsiSignal, engine, symbol_list,
                        signal_param)
Esempio n. 27
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'cci_enhance'

        Portfolio.__init__(self, Fut_Cci_EnhanceSignal_Duo, engine,
                           symbol_list, signal_param,
                           Fut_Cci_EnhanceSignal_Kong, signal_param)
Esempio n. 28
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'aberration_raw'

        Portfolio.__init__(self, Fut_Aberration_RawSignal_Duo, engine,
                           symbol_list, signal_param,
                           Fut_Aberration_RawSignal_Kong, signal_param)
Esempio n. 29
0
    def __init__(self, engine, symbol_list, signal_param={}):
        self.name = 'dali'

        Portfolio.__init__(self, Fut_DaLiSignal, engine, symbol_list,
                           signal_param)
 def __init__(self, engine, symbol_list, signal_param={}):
     Portfolio.__init__(self, Fut_AberrationSignal, engine, symbol_list,
                        signal_param)
     self.name = 'aberration'