From 6e71fbcb119e7068ba35380edaa5cc66e7c71f1b Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 27 十月 2022 16:21:05 +0800 Subject: [PATCH] 交易体系完善 --- trade_manager.py | 67 ++++++++------------------------- 1 files changed, 17 insertions(+), 50 deletions(-) diff --git a/trade_manager.py b/trade_manager.py index 615145d..1e40def 100644 --- a/trade_manager.py +++ b/trade_manager.py @@ -3,16 +3,16 @@ 瀵逛竴绯诲垪鐨勪唬鐮佷氦鏄撳彉閲忥紝涓嬪崟锛屾挙鍗曡繘琛岀鐞� """ # 浜ゆ槗绠$悊鍣� -import datetime import json import time import gpcode_manager -import l2_code_operate +import l2_trade_util import mysql_data import tool from trade_data_manager import TradeBuyDataManager -from trade_gui import THSGuiTrade, async_call +from trade_gui import THSGuiTrade, THSBuyWinManagerNew + import time as t import l2_data_manager @@ -34,6 +34,8 @@ TRADE_STATE_BUY_CANCEL_SUCCESS = 14 # 涔版垚鍔� TRADE_STATE_BUY_SUCCESS = 12 + + guiTrade = THSGuiTrade() @@ -102,8 +104,10 @@ data["trade_num"], data["type"], data["day"], round(t.time() * 1000))) else: mysqldb.execute( - "update ths_trade_success_record set money=%s, num=%s, price=%s,time=%s,trade_num=%s,type=%s where _id=%s",( - data["money"], data["num"], data["price"], data["time"], data["trade_num"], data["type"],data["_id"])) + "update ths_trade_success_record set money=%s, num=%s, price=%s,time=%s,trade_num=%s,type=%s where _id=%s", + ( + data["money"], data["num"], data["price"], data["time"], data["trade_num"], data["type"], + data["_id"])) # 淇濆瓨浜ゆ槗濮旀墭鏁版嵁 @@ -118,10 +122,10 @@ counts = mysqldb.select_one("select count(*) from ths_trade_delegate_record where _id='{}'".format(data["_id"])) if counts[0] < 1: mysqldb.execute( - "insert into ths_trade_delegate_record(_id,code,num,price,time,trade_num,trade_price,type,day,create_time) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%d)", + "insert into ths_trade_delegate_record(_id,code,num,price,time,trade_num,trade_price,type,day,create_time) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", ( - data["_id"], data["code"], data["num"], data["price"], data["time"], - data["trade_num"],data["trade_price"], data["type"], data["day"], round(t.time() * 1000))) + data["_id"], data["code"], data["num"], data["price"], data["time"], + data["trade_num"], data["trade_price"], data["type"], data["day"], round(t.time() * 1000))) # 淇濆瓨鏈�鏂扮殑濮旀墭鏁版嵁 redis = __redis_manager.getRedis() @@ -155,50 +159,11 @@ return json.loads(result), time_str -# 鍒濆鍖栫姝氦鏄撲唬鐮佸簱 -def init_forbidden_trade_codes(): - key = "forbidden-trade-codes" - redis = __redis_manager.getRedis() - count = redis.scard(key) - if count > 0: - redis.delete(key) - redis.sadd(key, "000000") - redis.expire(key, tool.get_expire()) - - -# 绉婚櫎绂佹浜ゆ槗浠g爜 -def remove_from_forbidden_trade_codes(code): - key = "forbidden-trade-codes" - redis = __redis_manager.getRedis() - redis.srem(key, code) - - -# 娣诲姞浠g爜鍒扮姝氦鏄� -def add_to_forbidden_trade_codes(code): - key = "forbidden-trade-codes" - redis = __redis_manager.getRedis() - redis.sadd(key, code) - redis.expire(key, tool.get_expire()) - - -# 绂佹浠g爜浜ゆ槗 -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, "绂佹浠g爜浜ゆ槗") - - -# 鏄惁鍦ㄧ姝氦鏄撲唬鐮佷腑 -def is_in_forbidden_trade_codes(code): - key = "forbidden-trade-codes" - redis = __redis_manager.getRedis() - return redis.sismember(key, code) - # 寮�濮嬩氦鏄� def start_buy(code, capture_timestamp, last_data, last_data_index): # 鏄惁绂佹浜ゆ槗 - if is_in_forbidden_trade_codes(code): + if l2_trade_util.is_in_forbidden_trade_codes(code): raise Exception("绂佹浜ゆ槗") trade_state = get_trade_state(code) if trade_state != TRADE_STATE_NOT_TRADE and trade_state != TRADE_STATE_BUY_CANCEL_SUCCESS and trade_state != TRADE_STATE_BUY_CANCEL_ING: @@ -220,7 +185,7 @@ # 璐拱 -@async_call +@tool.async_call def __buy(code, price, trade_state, capture_timestamp, last_data, last_data_index): try: guiTrade.buy(code, price) @@ -290,7 +255,7 @@ if _time == "00:00:00": continue if code is not None and int(data["type"]) == 0: - forbidden_trade(code) + l2_trade_util.forbidden_trade(code) state = get_trade_state(code) if state != TRADE_STATE_BUY_SUCCESS: set_trade_state(code, TRADE_STATE_BUY_SUCCESS) @@ -298,6 +263,8 @@ l2_data_manager.TradePointManager.delete_compute_info_for_cancel_buy(code) l2_data_manager.TradePointManager.delete_buy_cancel_point(code) l2_data_manager.TradePointManager.delete_buy_point(code) + # 绉婚櫎浜ゆ槗绐楀彛鍒嗛厤 + THSBuyWinManagerNew.cancel_distribute_win_for_code(code) # 澶勭悊濮旀墭鎴愬姛鏁版嵁 -- Gitblit v1.8.0