Administrator
2023-08-02 a3c05bddc4c61d63b804ee541cf6dd01717ba94d
trade/trade_manager.py
@@ -9,6 +9,7 @@
import dask
from db import mysql_data, redis_manager
from db.redis_manager import RedisUtils
from output import kp_client_msg_manager
from trade import trade_data_manager, l2_trade_util, trade_juejin, trade_huaxin
@@ -52,12 +53,12 @@
    # 开启购买入口
    @classmethod
    def open_buy(cls):
        cls.__get_redis().setex("trade_buy_state", tool.get_expire(), 1)
        RedisUtils.setex(cls.__get_redis(),"trade_buy_state", tool.get_expire(), 1)
    # 关闭购买入口
    @classmethod
    def close_buy(cls):
        cls.__get_redis().setex("trade_buy_state", tool.get_expire(), 0)
        RedisUtils.setex(cls.__get_redis(), "trade_buy_state", tool.get_expire(), 0)
    # 是否可以下单
    @classmethod
@@ -90,7 +91,7 @@
    def set_mode(cls, mode):
        if mode != cls.MODE_ONLY_BUY_WANT_CODES and mode != cls.MODE_BUY_ALL:
            raise Exception("mode参数值错误")
        cls.__get_redis().setex("trade_buy_mode", tool.get_expire(), mode)
        RedisUtils.setex(cls.__get_redis(), "trade_buy_mode", tool.get_expire(), mode)
    # 是否可以下单
    @classmethod
@@ -113,7 +114,7 @@
    @classmethod
    def add_code(cls, code):
        cls.__get_redis().sadd(cls.__key, code)
        RedisUtils.sadd( cls.__get_redis(), cls.__key, code)
    @classmethod
    def remove_code(cls, code):
@@ -125,7 +126,7 @@
    @classmethod
    def clear(cls):
        cls.__get_redis().delete(cls.__key)
        RedisUtils.delete( cls.__get_redis(), cls.__key)
# 获取交易状态
@@ -141,12 +142,12 @@
def set_trade_state(code, state):
    logger_trade.info("set_trade_state {}-{}".format(code, state))
    redis = __redis_manager.getRedis()
    redis.setex("trade-state-{}".format(code), tool.get_expire(), state)
    RedisUtils.setex(redis, "trade-state-{}".format(code), tool.get_expire(), state)
def get_codes_by_trade_state(state):
    redis = __redis_manager.getRedis()
    keys = redis.keys("trade-state-*")
    keys = RedisUtils.keys(redis, "trade-state-*")
    codes = []
    if keys is not None:
        for key in keys:
@@ -157,7 +158,7 @@
def get_codes_by_trade_states(states):
    redis = __redis_manager.getRedis()
    keys = redis.keys("trade-state-*")
    keys = RedisUtils.keys(redis, "trade-state-*")
    codes = []
    if keys is not None:
        for key in keys:
@@ -185,7 +186,7 @@
def save_trade_success_data(datas, day=datetime.datetime.now().strftime("%Y%m%d")):
    redis = __redis_manager.getRedis()
    time_str = tool.get_now_time_str()
    redis.setex("trade-success-latest-time", tool.get_expire(), time_str)
    RedisUtils.setex(redis, "trade-success-latest-time", tool.get_expire(), time_str)
    mysqldb = mysql_data.Mysqldb()
    # 合并同一合同编号
    dict_ = {}
@@ -240,8 +241,8 @@
    # 保存最新的委托数据
    redis = __redis_manager.getRedis()
    redis.setex("trade-delegate-latest", tool.get_expire(), json.dumps(datas))
    redis.setex("trade-delegate-latest-time", tool.get_expire(), time_str)
    RedisUtils.setex(redis,"trade-delegate-latest", tool.get_expire(), json.dumps(datas))
    RedisUtils.setex(redis,"trade-delegate-latest-time", tool.get_expire(), time_str)
# 获取交易成功数据
@@ -516,30 +517,30 @@
def __clear_data(code):
    redis_l2 = redis_manager.RedisManager(1).getRedis()
    keys = redis_l2.keys("*{}*".format(code))
    keys = RedisUtils.keys(redis_l2, "*{}*".format(code))
    for k in keys:
        # if (k.find("l2-") is None or k.find("l2-") < 0) and (k.find("big_data-") is None or k.find("big_data-") < 0):
        redis_l2.delete(k)
        RedisUtils.delete(redis_l2, k)
    redis_trade = redis_manager.RedisManager(2).getRedis()
    redis_trade.delete("trade-state-{}".format(code))
    RedisUtils.delete(redis_trade, "trade-state-{}".format(code))
    redis_info = redis_manager.RedisManager(0).getRedis()
    keys = redis_info.keys("*{}*".format(code))
    keys = RedisUtils.keys(redis_info, "*{}*".format(code))
    for k in keys:
        if k.find("pre") is not None:
            continue
        if k.find("zyltgb") is not None:
            continue
        redis_info.delete(k)
        RedisUtils.delete(redis_info, k)
def __clear_big_data():
    redis_l2 = redis_manager.RedisManager(1).getRedis()
    keys = redis_l2.keys("big_data-*")
    keys = RedisUtils.keys(redis_l2, "big_data-*")
    for k in keys:
        redis_l2.delete(k)
        RedisUtils.delete( redis_l2, k)
if __name__ == "__main__":