From b7000cbf5e67e90abe53e96a4ea931afbf906e24 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 16 九月 2022 18:51:47 +0800 Subject: [PATCH] l2数据计算优化 --- trade_manager.py | 62 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 16 deletions(-) diff --git a/trade_manager.py b/trade_manager.py index 71b3059..00d2836 100644 --- a/trade_manager.py +++ b/trade_manager.py @@ -4,7 +4,8 @@ import l2_code_operate import mongo_data import tool -from trade_gui import THSGuiTrade +from trade_data_manager import TradeBuyDataManager +from trade_gui import THSGuiTrade, async_call import time as t from l2_code_operate import * import l2_data_manager @@ -156,7 +157,7 @@ def forbidden_trade(code): add_to_forbidden_trade_codes(code) l2_data_manager.remove_from_l2_fixed_codes(code) - l2_code_operate.L2CodeOperate.get_instance().remove_l2_listen(code) + l2_code_operate.L2CodeOperate.get_instance().remove_l2_listen(code, "绂佹浠g爜浜ゆ槗") # 鏄惁鍦ㄧ姝氦鏄撲唬鐮佷腑 @@ -167,7 +168,7 @@ # 寮�濮嬩氦鏄� -def start_buy(code): +def start_buy(code, capture_timestamp,last_data,last_data_index): # 鏄惁绂佹浜ゆ槗 if is_in_forbidden_trade_codes(code): raise Exception("绂佹浜ゆ槗") @@ -183,21 +184,44 @@ # 涔颁竴鎵嬬殑璧勯噾鏄惁瓒冲 if price * 100 > money: raise Exception("璐︽埛鍙敤璧勯噾涓嶈冻") + + print("寮�濮嬩拱鍏�") + logger_trade.info("{}寮�濮嬩拱鍏�".format(code)) + set_trade_state(code, TRADE_STATE_BUY_PLACE_ORDER) + __buy(code, price, trade_state, capture_timestamp,last_data,last_data_index) + + +# 璐拱 +@async_call +def __buy(code, price, trade_state, capture_timestamp, last_data,last_data_index): try: - print("寮�濮嬩拱鍏�") - logger_trade.info("{}寮�濮嬩拱鍏�".format(code)) - set_trade_state(code, TRADE_STATE_BUY_PLACE_ORDER) guiTrade.buy(code, price) - # 涓嬪崟鎴愬姛锛屽姞鍏ュ浐瀹氫唬鐮佸簱 - l2_data_manager.add_to_l2_fixed_codes(code) - print("涔板叆缁撴潫") - logger_trade.info("{}涔板叆鎴愬姛".format(code)) + __place_order_success(code, capture_timestamp, last_data,last_data_index) except Exception as e: - print("涔板叆寮傚父") + __place_order_fail(code, trade_state) logger_trade.error("{}涔板叆寮傚父{}".format(code, str(e))) - # 鐘舵�佽繕鍘� - set_trade_state(code, trade_state) raise e + + +# 涓嬪崟鎴愬姛 +def __place_order_success(code, capture_timestamp, last_data,last_data_index): + # 涔板叆缁撴潫鐐� + use_time = round(time.time() * 1000) - capture_timestamp + logger_trade.info("{}-浠庢埅鍥惧埌涓嬪崟鎴愬姛鎬昏垂鏃讹細{}".format(code, use_time)) + # 涓嬪崟鎴愬姛锛屽姞鍏ュ浐瀹氫唬鐮佸簱 + l2_data_manager.add_to_l2_fixed_codes(code) + # 璁板綍涓嬪崟鐨勯偅涓�甯у浘鐗囩殑鎴浘鏃堕棿涓庝氦鏄撶敤鏃� + TradeBuyDataManager.set_buy_position_info(code, capture_timestamp, use_time, last_data,last_data_index) + + print("涔板叆缁撴潫") + logger_trade.info("{}涔板叆鎴愬姛".format(code)) + + +# 涓嬪崟澶辫触 +def __place_order_fail(code, trade_state): + print("涔板叆寮傚父") + # 鐘舵�佽繕鍘� + set_trade_state(code, trade_state) # 寮�濮嬪彇娑堜拱鍏� @@ -212,9 +236,7 @@ logger_trade.info("{}寮�濮嬫挙鍗�".format(code)) set_trade_state(code, TRADE_STATE_BUY_CANCEL_ING) guiTrade.cancel_buy(code) - # 涓嬪崟鎴愬姛锛屽姞鍏ュ浐瀹氫唬鐮佸簱 - l2_data_manager.remove_from_l2_fixed_codes(code) - logger_trade.info("{}鎾ゅ崟鎴愬姛".format(code)) + __cancel_success(code) except Exception as e: # 鐘舵�佽繕鍘� set_trade_state(code, trade_state) @@ -222,6 +244,14 @@ raise e +# 鍙栨秷濮旀墭鎴愬姛 +def __cancel_success(code): + TradeBuyDataManager.remove_buy_capture_time(code) + # 涓嬪崟鎴愬姛锛屽姞鍏ュ浐瀹氫唬鐮佸簱 + l2_data_manager.remove_from_l2_fixed_codes(code) + logger_trade.info("{}鎾ゅ崟鎴愬姛".format(code)) + + # 澶勭悊浜ゆ槗鎴愬姛鏁版嵁 def process_trade_success_data(datas): if datas is None: -- Gitblit v1.8.0