# 已废弃接口 from .extend import * from .util.mylog import spend_time def deprecated_func(new_func, old_func_name, new_func_name): def wrap_deprecated_func(func): def wrapfunc(*args, **kwarg): print( # 'Deprecated warning: "{}" will be deprecated, please use: "{}"'.format( '警告: "{}" 函数即将废弃,请使用 "{}" 代替'.format(old_func_name, new_func_name) ) return new_func(*args, **kwarg) return wrapfunc return wrap_deprecated_func def deprecated_attr(name_dict): """ name_dict: {'old_property_name': 'new_property_name'}""" def wrap_deprecated_attr(func): def wrapfunc(self, name): clzname = self.__class__.__name__ if name in name_dict: if name_dict[name] is None: # print('Removed warning: the {}.{} will be removed!'.format(clzname, name)) print('警告: "{}.{}" 接口已被删除!'.format(clzname, name)) else: print( # 'Deprecated warning: the "{}.{}" will be deprecated, please use: "{}.{}"'. '警告: "{}.{}" 即将被废弃,请使用 "{}.{}" 代替'.format(clzname, name, clzname, name_dict[name]) ) return func(self, name_dict[name]) if name not in dir(self): raise AttributeError("'{}' object has no attribute '{}'".format(clzname, name)) return func(self, name) return wrapfunc return wrap_deprecated_attr # -------------------------------------------------------------------- # # 待废弃函数 # # -------------------------------------------------------------------- @deprecated_func(get_version, 'getVersion', 'get_version') def getVersion(): pass @deprecated_func(get_stock, 'getStock', 'get_stock') def getStock(querystr): pass @deprecated_func(get_business_name, 'getBusinessName', 'get_business_name') def getBusinessName(querystr): pass @deprecated_func(get_system_part_name, 'getSystemPartName', 'get_system_part_name') def getSystemPartName(querystr): pass @deprecated_func(get_system_part_enum, 'getSystemPartEnum', 'get_system_part_enum') def getSystemPartEnum(querystr): pass @deprecated_func(Query, 'KQuery', 'Query') def KQuery(*args, **kwargs): pass @deprecated_func(Query, 'QueryByIndex', 'Query') def QueryByIndex(*args, **kwargs): pass @deprecated_func(Query, 'QueryByDate', 'Query') def QueryByDate(*args, **kwargs): pass @deprecated_func(get_date_range, 'getDateRange', 'get_date_range') def getDateRange(*args, **kwargs): pass @deprecated_func(SP_FixedPercent, 'SL_FixedPercent', 'SP_FixedPercent') def SL_FixedPercent(*args, **kwargs): pass @deprecated_func(SP_FixedValue, 'SL_FixedValue', 'SP_FixedValue') def SL_FixedValue(*args, **kwargs): pass # -------------------------------------------------------------------- # # 待废弃属性 # # -------------------------------------------------------------------- @deprecated_attr( { 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', '_allocateWeight': '_allocate_weight', } ) def AllocateFundsBase_getattr(self, name): return getattr(self, name) AllocateFundsBase.__getattr__ = AllocateFundsBase_getattr @deprecated_attr({'size': '__len__', 'get': '__getitem__'}) def Block_getattr(self, name): return getattr(self, name) Block.__getattr__ = Block_getattr @deprecated_attr( { 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'isValid': 'is_valid', '_add_valid': '_add_valid', 'setTO': 'to', 'getTO': 'to', 'setTM': 'tm', 'getTM': 'tm', 'setSG': 'sg', 'getSG': 'sg' } ) def ConditionBase_getattr(self, name): return getattr(self, name) ConditionBase.__getattr__ = ConditionBase_getattr @deprecated_attr( { 'isNull': 'is_null', 'dayOfWeek': 'day_of_week', 'dayOfYear': 'day_of_year', 'startOfDay': 'start_of_day', 'endOfDay': 'end_of_day', 'nextDay': 'next_day', 'nextWeek': 'next_week', 'nextMonth': 'next_month', 'nextQuarter': 'next_quarter', 'nextHalfyear': 'next_halfyear', 'nextYear': 'next_year', 'preDay': 'pre_day', 'preWeek': 'pre_week', 'preMonth': 'pre_month', 'preQuarter': 'pre_quarter', 'preHalfyear': 'pre_halfyear', 'preYear': 'pre_year', 'dateOfWeek': 'date_of_week', 'startOfWeek': 'start_of_week', 'endOfWeek': 'end_of_week', 'startOfMonth': 'start_of_month', 'endOfMonth': 'end_of_month', 'startOfQuarter': 'start_of_quarter', 'endOfQuarter': 'end_of_quarter', 'startOfHalfyear': 'start_of_halfyear', 'endOfHalfyear': 'end_of_halfyear', 'startOfYear': 'start_of_year', 'endOfYear': 'end_of_year' } ) def Datetime_getattr(self, name): return getattr(self, name) Datetime.__getattr__ = Datetime_getattr @deprecated_attr( { 'setQuery': 'query', 'getQuery': 'query', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'isValid': 'is_valid', '_addValid': '_add_valid' } ) def EnvironmentBase_getattr(self, name): return getattr(self, name) EnvironmentBase.__getattr__ = EnvironmentBase_getattr @deprecated_attr( { 'setDiscard': 'set_discard', 'size': '__len__', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'getResultNumber': 'get_result_num', 'getByDate': 'get_by_datetime', 'getPos': 'get_pos', 'getDatetime': 'get_datetime', 'getResult': 'get_result', 'getResultAsPriceList': 'get_result_as_price_list', 'getDatetimeList': 'get_datetime_list', 'getContext': 'get_context', 'setContext': 'set_context' } ) def Indicator_getattr(self, name): return getattr(self, name) Indicator.__getattr__ = Indicator_getattr @deprecated_attr( { 'getParameter': 'get_parameter', 'getParam': 'get_param', 'setParam': "set_param", 'setDiscard': 'set_discard', '_readyBuffer': '_ready_buffer', 'getResultNumber': 'get_result_num', 'getResultAsPriceList': 'get_result_as_price_list', 'isNeedContext': 'is_need_context' } ) def IndicatorImp_getattr(self, name): return getattr(self, name) IndicatorImp.__getattr__ = IndicatorImp_getattr @deprecated_attr( { 'startPos': 'start_pos', 'endPos': 'end_pos', 'lastPos': 'last_pos', 'getPos': 'get_pos', 'getDatetimeList': 'get_datetime_list', 'getByDatetime': 'get_by_datetime', 'getQuery': 'get_query', 'getStock': 'get_stock', } ) def KData_getattr(self, name): return getattr(self, name) KData.__getattr__ = KData_getattr @deprecated_attr( { 'openPrice': 'open', 'closePrice': 'close', 'highPrice': 'high', 'lowPrice': 'low', 'transAmount': 'amount', 'transCount': 'volume' } ) def KRecord_getattr(self, name): return getattr(self, name) KRecord.__getattr__ = KRecord_getattr @deprecated_attr({'lastDate': 'last_datetime'}) def MarketInfo_getattr(self, name): return getattr(self, name) MarketInfo.__getattr__ = MarketInfo_getattr @deprecated_attr( { 'setTM': 'tm', 'getTM': 'tm', 'setQuery': 'query', 'getQuery': 'query', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'buyNotify': 'buy_notify', 'sellNotify': 'sell_notify', 'getBuyNumber': 'get_buy_num', 'getSellNumber': 'get_sell_num', '_getBuyNumber': '_get_buy_num', '_getSellNumber': '_get_sell_num', } ) def MoneyManagerBase_getattr(self, name): return getattr(self, name) MoneyManagerBase.__getattr__ = MoneyManagerBase_getattr @deprecated_attr( { 'set': '__setitem__', 'get': '__getitem__', 'have': '__contains__', 'getNameList': 'get_name_list', 'getNameValueList': None } ) def Parameter_getattr(self, name): return getattr(self, name) Parameter.__getattr__ = Parameter_getattr @deprecated_attr({'get': '__getitem__'}) def Performance_getattr(self, name): return getattr(self, name) Performance.__getattr__ = Performance_getattr @deprecated_attr({'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param'}) def Portfolio_getattr(self, name): return getattr(self, name) Portfolio.__getattr__ = Portfolio_getattr @deprecated_attr( { 'takeDatetime': 'take_datetime', 'cleanDatetime': 'clean_datetime', 'goalPrice': 'goal_price', 'totalNumber': 'total_number', 'buyMoney': 'buy_money', 'totalCost': 'total_cost', 'totalRisk': 'total_risk', 'sellMoney': 'sell_money' } ) def PositionRecord_getattr(self, name): return getattr(self, name) PositionRecord.__getattr__ = PositionRecord_getattr @deprecated_attr( { 'getTM': 'tm', 'setTM': 'tm', 'getTO': 'to', 'setTO': 'to', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'buyNotify': 'buy_notify', 'sellNotify': 'sell_notify', 'getGoal': 'get_goal' } ) def ProfitGoalBase_getattr(self, name): return getattr(self, name) ProfitGoalBase.__getattr__ = ProfitGoalBase_getattr @deprecated_attr( { 'startDatetime': 'start_datetime', 'endDatetime': 'end_datetime', 'queryType': 'query_type', 'kType': 'ktype', 'recoverType': 'recover_type' } ) def Query_getattr(self, name): return getattr(self, name) Query.__getattr__ = Query_getattr @deprecated_attr( { 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'getSelectedSystemList': 'get_selected_system_list', 'addStock': 'add_stock', 'addStockList': 'add_stock_list', } ) def SelectorBase_getattr(self, name): return getattr(self, name) @deprecated_attr( { 'getTO': 'to', 'setTO': 'to', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'shouldBuy': 'should_buy', 'shouldSell': 'should_sell', 'getBuySignal': 'get_buy_signal', 'getSellSignal': 'get_sell_signal', '_addBuySignal': '_add_buy_signal', '_addSellSignal': '_add_sell_signal' } ) def SignalBase_getattr(self, name): return getattr(self, name) SignalBase.__getattr__ = SignalBase_getattr @deprecated_attr( { 'getTO': 'to', 'setTO': 'to', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'getRealBuyPrice': 'get_real_buy_price', 'getRealSellPrice': 'get_real_sell_price' } ) def SlippageBase_getattr(self, name): return getattr(self, name) SlippageBase.__getattr__ = SlippageBase_getattr @deprecated_attr( { 'startDatetime': 'start_datetime', 'lastDatetime': 'last_datetime', 'tickValue': 'tick_value', 'minTradeNumber': 'min_trade_number', 'maxTradeNumber': 'max_trade_number', 'isNull': 'is_null', 'isBuffer': 'is_buffer', 'getKData': 'get_kdata', 'getTimeLineList': 'get_timeline_list', 'getTransList': 'get_trans_list', 'getCount': 'get_count', 'getMarketValue': 'get_market_value', 'getKRecord': 'get_krecord', 'getKRecordByDate': 'get_krecord', 'getKRecordList': 'get_krecord_list', 'getDatetimeList': 'get_datetime_list', 'getFinanceInfo': 'get_finance_info', 'realtimeUpdate': 'realtime_update', 'getWeight': 'get_weight', 'loadKDataToBuffer': 'load_kdata_to_buffer', 'releaseKDataBuffer': 'release_kdata_buffer' } ) def Stock_getattr(self, name): return getattr(self, name) Stock.__getattr__ = Stock_getattr @deprecated_attr( { 'size': '__len__', 'setKDataDriver': None, 'getBaseInfoDriverParameter': 'get_base_info_parameter', 'getBlockDriverParameter': 'get_block_parameter', 'getKDataDriverParameter': 'get_kdata_parameter', 'getPreloadParameter': 'get_preload_parameter', 'getHikyuuParameter': 'get_hikyuu_parameter', 'getAllMarket': "get_market_list", 'getMarketInfo': 'get_market_info', 'getStockTypeInfo': 'get_stock_type_info', 'getStock': 'get_stock', 'getBlock': 'get_block', 'getBlockList': 'get_block_list', 'getTradingCalendar': 'get_trading_calendar', 'addTempCsvStock': 'add_temp_csv_stock', 'removeTempCsvStock': 'remove_temp_csv_stock' } ) def StockManager_getattr(self, name): return getattr(self, name) StockManager.__getattr__ = StockManager_getattr @deprecated_attr({ 'tickValue': 'tick_value', 'minTradeNumber': 'min_trade_num', 'maxTradeNumber': 'max_trade_num', }) def StockTypeInfo_getattr(self, name): return getattr(self, name) StockTypeInfo.__getattr__ = StockTypeInfo_getattr @deprecated_attr( { 'countAsGift': 'count_as_gift', 'countForSell': 'count_for_sell', 'priceForSell': 'price_for_sell', 'totalCount': 'total_count', 'freeCount': 'free_count', } ) def StockWeight_getattr(self, name): return getattr(self, name) StockWeight.__getattr__ = StockWeight_getattr @deprecated_attr( { 'getTO': 'to', 'setTO': 'to', 'getTM': 'tm', 'setTM': 'tm', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'getPrice': 'get_price' } ) def StoplossBase_getattr(self, name): return getattr(self, name) StoplossBase.__getattr__ = StoplossBase_getattr @deprecated_attr( { 'getTO': 'to', 'setTO': 'to', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'getStock': 'get_stock', 'getTradeRecordList': 'get_trade_record_list', 'getBuyTradeRequest': 'get_buy_trade_request', 'getSellTradeRequest': 'get_sell_trade_request' } ) def System_getattr(self, name): return getattr(self, name) System.__getattr__ = System_getattr @deprecated_attr( { 'getParam': 'get_param', 'setParam': 'set_param', 'getBuyCost': 'get_buy_cost', 'getSellCost': 'get_sell_cost', } ) def TradeCostBase_getattr(self, name): return getattr(self, name) TradeCostBase.__getattr__ = TradeCostBase_getattr @deprecated_attr( { 'initCash': 'init_cash', 'currentCash': 'current_cash', 'initDatetime': 'init_datetime', 'firstDatetime': 'first_datetime', 'lastDatetime': 'last_datetime', 'costFunc': 'cost_func', 'brokeLastDatetime': 'broker_last_datetime', 'getParam': 'get_param', 'setParam': 'set_param', 'haveParam': 'have_param', 'regBroker': 'reg_broker', 'clearBroker': 'clear_broker', 'getStockNumber': 'get_stock_num', 'getHoldNumber': 'get_hold_num', 'getTradeList': 'get_trade_list', 'getPositionList': 'get_position_list', 'getHistoryPositionList': 'get_history_position_list', 'getPosition': 'get_position', 'getBuyCost': 'get_buy_cost', 'getSellCost': 'get_sell_cost', 'getFunds': 'get_funds', 'getFundsCurve': 'get_funds_curve', 'getProfitCurve': 'get_profit_curve', 'addTradeRecord': 'add_trade_record' } ) def TradeManager_getattr(self, name): return getattr(self, name) TradeManager.__getattr__ = TradeManager_getattr @deprecated_attr({'planPrice': 'plan_price', 'realPrice': 'real_price', 'goalPrice': 'goal_price'}) def TradeRecord_getattr(self, name): return getattr(self, name) TradeRecord.__getattr__ = TradeRecord_getattr