示例#1
0
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,