From 7aed1066e91e1807c7d4f6f28c6c649c01b31a29 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 03 六月 2024 23:25:44 +0800 Subject: [PATCH] 可转债回撤 --- main.py | 116 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 60 insertions(+), 56 deletions(-) diff --git a/main.py b/main.py index b87f50a..b4880ad 100644 --- a/main.py +++ b/main.py @@ -137,64 +137,68 @@ logger_debug.exception(e) send_response({"code": 1, "msg": str(e)}, client_id, request_id) elif type_ == "get_code_position_info": - # 鏌ヨ姝や粨 - code = data.get("code") - if code: - results = huaxin_trade_record_manager.PositionManager().list_by_day(tool.get_now_date_str("%Y%m%d"), code) - else: - results = huaxin_trade_record_manager.PositionManager().get_from_cache() - if constant.backtest_mode_info: - results.clear() - position_dict = backtest_trade.position_dict - for p in position_dict: - translation = position_dict[p] - underlying_code = p["SecurityID"] - p["buy_list"] = [{"price": str(translation['TradePrice']), - "tradeTime": l2_huaxin_util.convert_time(translation['OrderTime']), "volume": 10}] - cb_code = target_codes_manager.get_cb_code(underlying_code) + try: + # 鏌ヨ姝や粨 + code = data.get("code") + if code: + results = huaxin_trade_record_manager.PositionManager().list_by_day(tool.get_now_date_str("%Y%m%d"), code) + else: + results = huaxin_trade_record_manager.PositionManager().get_from_cache() + if constant.backtest_mode_info: + results.clear() + position_dict = backtest_trade.position_dict + for p in position_dict: + translation = position_dict[p] + underlying_code = p["SecurityID"] + p["buy_list"] = [{"price": str(translation['TradePrice']), + "tradeTime": l2_huaxin_util.convert_time(translation['OrderTime']), "volume": 10}] + cb_code = target_codes_manager.get_cb_code(underlying_code) + underlying_market = code_market_manager.get_market_info(underlying_code) + results.append( + {"securityID": cb_code, "securityName": gpcode_manager.CodesNameManager().get_code_name(cb_code), + "buy_list": p["buy_list"], "sell_list": [], "currentPosition": 10, "id": cb_code}) + + for r in results: + cb_code = r["securityID"] + underlying_code = target_codes_manager.get_underlying_code(cb_code) + cb_market = code_market_manager.get_market_info(cb_code) underlying_market = code_market_manager.get_market_info(underlying_code) - results.append( - {"securityID": cb_code, "securityName": gpcode_manager.CodesNameManager().get_code_name(cb_code), - "buy_list": p["buy_list"], "sell_list": [], "currentPosition": 10, "id": cb_code}) + if cb_market: + r["marketInfo"] = {"code": cb_market.code, "name": r["securityName"], + "rate": f"{round(cb_market.rate * 100, 2)}%", + "price": cb_market.price, "lastVolume": cb_market.total_bid_volume // 100, + "buy1Money": output_util.money_desc(cb_market.buy1_price * cb_market.buy1_volume), + "preClosePrice": cb_market.pre_close_price} + if underlying_market: + if not gpcode_manager.CodesNameManager().get_code_name(underlying_market.code): + # 寮傛璇锋眰鍚嶇О + threading.Thread( + target=lambda: gpcode_manager.CodesNameManager().request_code_name(underlying_market.code), + daemon=True).start() - for r in results: - cb_code = r["securityID"] - underlying_code = target_codes_manager.get_underlying_code(cb_code) - cb_market = code_market_manager.get_market_info(cb_code) - underlying_market = code_market_manager.get_market_info(underlying_code) - if cb_market: - r["marketInfo"] = {"code": cb_market.code, "name": r["securityName"], - "rate": f"{round(cb_market.rate * 100, 2)}%", - "price": cb_market.price, "lastVolume": cb_market.total_bid_volume // 100, - "buy1Money": output_util.money_desc(cb_market.buy1_price * cb_market.buy1_volume), - "preClosePrice": cb_market.pre_close_price} - if underlying_market: - if not gpcode_manager.CodesNameManager().get_code_name(underlying_market.code): - # 寮傛璇锋眰鍚嶇О - threading.Thread( - target=lambda: gpcode_manager.CodesNameManager().request_code_name(underlying_market.code), - daemon=True).start() - - r["underlyingMarketInfo"] = {"code": underlying_market.code, - "name": gpcode_manager.CodesNameManager().get_code_name( - underlying_market.code), - "rate": f"{round(underlying_market.rate * 100, 2)}%", - "price": underlying_market.price, - "lastVolume": underlying_market.total_bid_volume // 100, - "buy1Money": output_util.money_desc( - underlying_market.buy1_price * underlying_market.buy1_volume), - "preClosePrice": underlying_market.pre_close_price} - # 鑾峰彇涔扮偣涓庡崠鐐� - if "buy_list" not in r: - buys = huaxin_trade_record_manager.DealRecordManager().list_buy_by_code_cache(cb_code) - r["buy_list"] = [{"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": x["volume"]} for x in - buys] - if "sell_list" not in r: - sells = huaxin_trade_record_manager.DealRecordManager().list_sell_by_code_cache(cb_code) - r["sell_list"] = [{"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": x["volume"]} for x - in - sells] - send_response({"code": 0, "data": results}, client_id, request_id) + r["underlyingMarketInfo"] = {"code": underlying_market.code, + "name": gpcode_manager.CodesNameManager().get_code_name( + underlying_market.code), + "rate": f"{round(underlying_market.rate * 100, 2)}%", + "price": underlying_market.price, + "lastVolume": underlying_market.total_bid_volume // 100, + "buy1Money": output_util.money_desc( + underlying_market.buy1_price * underlying_market.buy1_volume), + "preClosePrice": underlying_market.pre_close_price} + # 鑾峰彇涔扮偣涓庡崠鐐� + if "buy_list" not in r: + buys = huaxin_trade_record_manager.DealRecordManager().list_buy_by_code_cache(cb_code) + r["buy_list"] = [{"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": x["volume"]} for x in + buys] + if "sell_list" not in r: + sells = huaxin_trade_record_manager.DealRecordManager().list_sell_by_code_cache(cb_code) + r["sell_list"] = [{"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": x["volume"]} for x + in + sells] + send_response({"code": 0, "data": results}, client_id, request_id) + except Exception as e: + logger_debug.exception(e) + send_response({"code": 1, "msg": str(e)}, client_id, request_id) elif type_ == "refresh_trade_data": # 鍒锋柊浜ゆ槗鏁版嵁 ctype = data.get("ctype") -- Gitblit v1.8.0