def get_signal(signal, aum, balance, EndDate, close_dict): signal['symbol'] = signal.index symbol_lst = signal.symbol.tolist() porfolio = Future() main_contract_dict = porfolio.get_main_symbol(product=symbol_lst, date=EndDate) main_contract = pd.DataFrame(main_contract_dict).T[['main_contract']] contract_lst = main_contract.main_contract.tolist() ExchangeID_dict = porfolio.get_ExchangeID(contract_lst=contract_lst) ExchangeInstID_dict = porfolio.get_ExchangeInstID( contract_lst=contract_lst) VolumeMultiple_dict = porfolio.get_VolumeMultiple(contract_lst) main_contract['symbol'] = main_contract.index signal_dict = {} for symbol in symbol_lst: main_contract = main_contract_dict[symbol]['main_contract'] trading_code = ExchangeID_dict[main_contract][ 'ExchangeID'] + '.' + ExchangeInstID_dict[main_contract][ 'ExchangeInstID'] signal_dict[symbol] = { 'symbol': symbol, 'trading_code': trading_code, 'weight': signal.loc[symbol]['weight'], 'last_price': close_dict[symbol], 'VolumeMultiple': VolumeMultiple_dict[main_contract]['VolumeMultiple'] } trading_info = pd.DataFrame(signal_dict).T trading_info['position'] = aum * balance / len(symbol_lst) * trading_info[ 'weight'] / trading_info['last_price'] / trading_info['VolumeMultiple'] # trading_info['position'] = trading_info['position'].apply(lambda x: int(np.around(x, 0))) print(trading_info) return trading_info
print(today) # close_dict = {} # for index_code in symbol_lst: # code = code_dic[index_code] # index_hq = stock_price(code, hq_last_date, hq_last_date, 'daily') # close_dict[index_code] = index_hq.close.tolist()[-1] # print(close_dict) porfolio = Future() main_contract_dict = porfolio.get_main_symbol(product=symbol_lst, date=hq_last_date) main_contract = pd.DataFrame(main_contract_dict).T[['main_contract']] print(main_contract) PriceTick_dict = porfolio.get_PriceTick(symbol_lst) contract_lst = main_contract.main_contract.tolist() ExchangeID_dict = porfolio.get_ExchangeID(contract_lst=contract_lst) ExchangeInstID_dict = porfolio.get_ExchangeInstID(contract_lst=contract_lst) VolumeMultiple_dict = porfolio.get_VolumeMultiple(contract_lst) LongMarginRatio_dict = porfolio.get_LongMarginRatio(contract_lst) ShortMarginRatio_dict = porfolio.get_ShortMarginRatio(contract_lst) main_contract['symbol'] = main_contract.index print(main_contract) signal_dict = {} for symbol in symbol_lst: main_contract = main_contract_dict[symbol]['main_contract'] price_tick = PriceTick_dict[symbol]['PriceTick'] trading_code = ExchangeID_dict[main_contract]['ExchangeID'] + '.' + ExchangeInstID_dict[main_contract][ 'ExchangeInstID'] signal_dict[symbol] = { 'symbol': symbol, 'trading_code': trading_code, 'price_tick': price_tick, 'last_price': api.get_quote(trading_code).pre_close,