From 1e9634f5b69c72914b6a46d2f1330df2cf69046b Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 23 五月 2024 11:19:54 +0800
Subject: [PATCH] 可转债增加交易刷新

---
 utils/hosting_api_util.py |  107 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 101 insertions(+), 6 deletions(-)

diff --git a/utils/hosting_api_util.py b/utils/hosting_api_util.py
index 4d65ac5..7d73a28 100644
--- a/utils/hosting_api_util.py
+++ b/utils/hosting_api_util.py
@@ -97,6 +97,12 @@
                     raise Exception(f"璇诲彇鍐呭瓒呮椂: request_id={request_id}")
         finally:
             pass
+    else:
+        try:
+            # 濡傛灉涓嶆槸闃诲璇锋眰闇�瑕侀噴鏀惧鎴风
+            ClientSocketManager.release_client(client[0])
+        except:
+            pass
 
     return None
 
@@ -230,8 +236,8 @@
 
 
 #  鍒锋柊浜ゆ槗鏁版嵁
-def refresh_trade_data(type, blocking=True):
-    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_COMMON,
+def refresh_trade_data(type, blocking=True, client_type=ClientSocketManager.CLIENT_TYPE_COMMON):
+    request_id, client = __request(client_type,
                                    {"type": API_TYPE_REFRESH_TRADE_DATA, "ctype": type,
                                     "sinfo": f"cb_{API_TYPE_REFRESH_TRADE_DATA}_{round(time.time() * 1000)}"})
     return __read_response(client, request_id, blocking)
@@ -325,16 +331,105 @@
     return __read_response(client, request_id, blocking)
 
 
-def common_request(params={}, blocking=True):
+def common_request(params={}, blocking=True, client_type=ClientSocketManager.CLIENT_TYPE_COMMON):
     data = {"type": API_TYPE_COMMON_REQUEST,
             "sinfo": f"cb_{API_TYPE_COMMON_REQUEST}_{round(time.time() * 1000)}"}
     if params:
         for k in params:
             data[k] = params[k]
-    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_COMMON, data)
+    request_id, client = __request(client_type, data)
+    return __read_response(client, request_id, blocking, timeout=10)
+
+
+###############鍙浆鍊�#################
+def trade_order_for_cb(direction, code, volume, price, price_type=2, blocking=True):
+    """
+    浜ゆ槗
+    :param direction: 1-涔� 2-鍗�
+    :param code: 浠g爜
+    :param volume: 閲�
+    :param price: 浠锋牸
+    :param price_type: 浠锋牸绫诲瀷
+    :param blocking: 鏄惁闃诲
+    :return:
+    """
+    request_id, client = __request(
+        ClientSocketManager.CLIENT_TYPE_TRADE_CB,
+        {"type": API_TYPE_TRADE, "trade_type": 1,
+         "direction": direction,
+         "code": code,
+         "volume": volume,
+         "price_type": price_type,
+         "price": price, "sinfo": f"order_{code}_{round(time.time() * 1000)}"})
+
+    return __read_response(client, request_id, blocking)
+
+
+def get_position_for_cb(code=None, blocking=True):
+    """
+    鑾峰彇鎸佷粨
+    :param code:
+    :param blocking:
+    :return:
+    """
+    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_TRADE_CB,
+                                   {"type": API_TYPE_GET_CODE_POSITION_INFO, "code": code,
+                                    "sinfo": f"cb_{API_TYPE_GET_CODE_POSITION_INFO}_{round(time.time() * 1000)}"})
+    return __read_response(client, request_id, blocking)
+
+
+def refresh_trade_data_for_cb(refresh_type, blocking=True):
+    """
+    鍒锋柊浜ゆ槗鏁版嵁
+    :param refresh_type:
+    :param blocking:
+    :return:
+    """
+
+    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_TRADE_CB,
+                                   {"type": API_TYPE_REFRESH_TRADE_DATA, "ctype": refresh_type,
+                                    "sinfo": f"cb_{API_TYPE_REFRESH_TRADE_DATA}_{round(time.time() * 1000)}"})
+    return __read_response(client, request_id, blocking)
+
+
+def get_account_money_for_cb(blocking=True):
+    """
+    鑾峰彇璐︽埛璧勯噾鎯呭喌
+    :param code:
+    :param blocking:
+    :return:
+    """
+    return common_request_for_cb({"ctype": "get_account_money"}, blocking)
+
+
+def refresh_trade_data_for_cb(type_, blocking=True):
+    """
+    鍒锋柊鍙浆鍊轰氦鏄撴暟鎹�
+    :param code:
+    :param blocking:
+    :return:
+    """
+    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_TRADE_CB,
+                                   {"type": API_TYPE_REFRESH_TRADE_DATA, "ctype": type_,
+                                    "sinfo": f"cb_{API_TYPE_REFRESH_TRADE_DATA}_{round(time.time() * 1000)}"})
+    return __read_response(client, request_id, blocking)
+
+
+def common_request_for_cb(params, blocking=True):
+    """
+    閫氱敤璇锋眰
+    :param params:
+    :param blocking:
+    :return:
+    """
+    data = {"type": API_TYPE_COMMON_REQUEST,
+            "sinfo": f"cb_{API_TYPE_COMMON_REQUEST}_{round(time.time() * 1000)}"}
+    if params:
+        for k in params:
+            data[k] = params[k]
+    request_id, client = __request(ClientSocketManager.CLIENT_TYPE_TRADE_CB, data)
     return __read_response(client, request_id, blocking, timeout=10)
 
 
 if __name__ == "__main__":
-    d = {"id": "123123"}
-    print(d.pop("id"))
+    pass

--
Gitblit v1.8.0