From 07af91d1cb4e317065b8dc1db09f337f2014e8c7 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 29 二月 2024 17:34:22 +0800 Subject: [PATCH] 添加外部接口 --- middle_api_server.py | 36 ++++++++++++----- utils/huaxin_trade_record_manager.py | 33 +++++++++++++--- 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/middle_api_server.py b/middle_api_server.py index 6eb1064..a83f3ce 100644 --- a/middle_api_server.py +++ b/middle_api_server.py @@ -90,15 +90,14 @@ if not volume: raise Exception("璇蜂笂浼爒olume") - if round(float(price), 2) <= 0: - prices = HistoryKDatasUtils.get_now_price([code]) - if not prices: - raise Exception("鐜颁环鑾峰彇澶辫触") - price = prices[0][1] + # if round(float(price), 2) <= 0: + # prices = HistoryKDatasUtils.get_now_price([code]) + # if not prices: + # raise Exception("鐜颁环鑾峰彇澶辫触") + # price = prices[0][1] # 涓嬪崟 result = hosting_api_util.trade_order(hosting_api_util.TRADE_DIRECTION_BUY, code, - volume, - round(float(price), 2)) + volume, price) if result: resultJSON = result print("涓嬪崟缁撴灉锛�", resultJSON) @@ -353,14 +352,29 @@ sk.sendall(socket_util.load_header(return_str.encode(encoding='utf-8'))) while True: try: - sk.recv(1024) + buf = sk.recv(1024) + print(f"鏀跺埌鏁版嵁锛歿buf.decode(encoding='utf-8')}") time.sleep(1) except: print("鏁版嵁鏂紑") break - - - + elif type_ == "get_latest_cancel_orders": + # 鑾峰彇鏈�杩戠殑鎾ゅ崟 + results = huaxin_trade_record_manager.DelegateRecordManager.list_latest_cancel_records(10) + fresults = [] + for result in results: + temp = {} + for key in result: + if key in ["securityID", "securityName", "direction", "orderSysID", "acceptTime", + "cancelTime", "limitPrice", "volume"]: + temp[key] = result[key] + # 杩囨护铏氭嫙鍗曚笌鍗栧崟 + if int(temp["volume"] <= 100): + continue + if int(temp["direction"] != 0): + continue + fresults.append(temp) + return_str = json.dumps(json.dumps({"code": 0, "data": fresults})) finally: log.request_info("middle_api_server", f"璇锋眰缁撴潫锛歿type_}") break diff --git a/utils/huaxin_trade_record_manager.py b/utils/huaxin_trade_record_manager.py index 53c8069..8400653 100644 --- a/utils/huaxin_trade_record_manager.py +++ b/utils/huaxin_trade_record_manager.py @@ -15,6 +15,10 @@ class DelegateRecordManager: + key_list = ["id", "orderLocalID", "securityID", "securityName", "direction", "orderSysID", "insertTime", + "insertDate", "acceptTime", "cancelTime", "limitPrice", "turnover", "volume", "volumeTraded", + "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime", "accountID"] + @classmethod def add(cls, datas): mysqldb = mysql_data.Mysqldb() @@ -82,9 +86,6 @@ results = mysqldb.select_all( f"select * from hx_trade_delegate_record r where {' and '.join(where_list)} order by createTime") # 杞琩ict - key_list = ["id", "orderLocalID", "securityID", "securityName", "direction", "orderSysID", "insertTime", - "insertDate", "acceptTime", "cancelTime", "limitPrice", "turnover", "volume", "volumeTraded", - "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime", "accountID"] fresults = [] max_update_time = None if results: @@ -96,13 +97,33 @@ temp = {} for i in range(len(r)): if type(r[i]) == datetime.datetime: - temp[key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S") + temp[cls.key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S") else: - temp[key_list[i]] = r[i] + temp[cls.key_list[i]] = r[i] fresults.append(temp) return fresults, max_update_time.strftime("%Y-%m-%d %H:%M:%S") if max_update_time else None finally: pass + + # 鑾峰彇鏈�杩戠殑鎾ゅ崟璁板綍 + @classmethod + def list_latest_cancel_records(cls, count, day=tool.get_now_date_str("%Y%m%d")): + mysqldb = mysql_data.Mysqldb() + where_list = [f"r.insertDate='{day}'", "r.cancelTime!=''"] + results = mysqldb.select_many( + f"select * from hx_trade_delegate_record r where {' and '.join(where_list)} order by r.cancelTime desc", + count) + fresults = [] + if results: + for r in results: + temp = {} + for i in range(len(r)): + if type(r[i]) == datetime.datetime: + temp[cls.key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S") + else: + temp[cls.key_list[i]] = r[i] + fresults.append(temp) + return fresults # 鎸佷粨璁板綍 @@ -316,5 +337,5 @@ if __name__ == "__main__": - results = DelegateRecordManager.list_by_day('20230704', '1970-01-01') + results = DelegateRecordManager.list_latest_cancel_records(10) print(results) -- Gitblit v1.8.0