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