Administrator
2023-08-02 a3c05bddc4c61d63b804ee541cf6dd01717ba94d
trade/trade_data_manager.py
@@ -7,6 +7,7 @@
# 交易撤销数据管理器
import constant
from db.redis_manager import RedisUtils
from utils import global_util, tool
import l2_data_util
from db import redis_manager
@@ -61,14 +62,14 @@
    @classmethod
    def set_buy_position_info(cls, code, capture_time, trade_time, last_data, last_data_index):
        redis = cls.redisManager.getRedis()
        redis.setex("buy_position_info-{}".format(code), tool.get_expire(),
                    json.dumps((capture_time, trade_time, last_data, last_data_index)))
        RedisUtils.setex(redis, "buy_position_info-{}".format(code), tool.get_expire(),
                         json.dumps((capture_time, trade_time, last_data, last_data_index)))
    # 获取买入点信息
    @classmethod
    def get_buy_position_info(cls, code):
        redis = cls.redisManager.getRedis()
        val_str = redis.get("buy_position_info-{}".format(code))
        val_str = RedisUtils.get(redis,"buy_position_info-{}".format(code))
        if val_str is None:
            return None, None, None, None
        else:
@@ -79,7 +80,7 @@
    @classmethod
    def remove_buy_position_info(cls, code):
        redis = cls.redisManager.getRedis()
        redis.delete("buy_position_info-{}".format(code))
        RedisUtils.delete( redis,"buy_position_info-{}".format(code))
    # 设置买入确认点信息
    @classmethod
@@ -87,7 +88,7 @@
        logger_trade.debug("买入确认点信息: code:{} index:{} data:{}", code, index, data)
        redis = cls.redisManager.getRedis()
        key = "buy_sure_position-{}".format(code)
        redis.setex(key, tool.get_expire(), json.dumps((index, data)))
        RedisUtils.setex(redis, key, tool.get_expire(), json.dumps((index, data)))
        cls.buy_sure_position_dict[code] = (index, data)
        # 移除下单信号的详细信息
        cls.remove_buy_position_info(code)
@@ -97,7 +98,7 @@
    def __clear_buy_sure_position(cls, code):
        redis = cls.redisManager.getRedis()
        key = "buy_sure_position-{}".format(code)
        redis.delete(key)
        RedisUtils.delete(redis, key)
        if code in cls.buy_sure_position_dict:
            cls.buy_sure_position_dict.pop(code)
@@ -110,7 +111,7 @@
        redis = cls.redisManager.getRedis()
        key = "buy_sure_position-{}".format(code)
        val = redis.get(key)
        val = RedisUtils.get(redis, key)
        if val is None:
            return None, None
        else:
@@ -168,25 +169,25 @@
    # 保存跌价的时间
    def __save_down_price_time(self, code, time_str):
        key = "under_water_last_time-{}".format(code)
        self.__get_redis().setex(key, tool.get_expire(), time_str)
        RedisUtils.setex(self.__get_redis(),key, tool.get_expire(), time_str)
    def __remove_down_price_time(self, code):
        key = "under_water_last_time-{}".format(code)
        self.__get_redis().delete(key)
        RedisUtils.delete( self.__get_redis(), key)
    def __get_last_down_price_time(self, code):
        key = "under_water_last_time-{}".format(code)
        return self.__get_redis().get(key)
        return RedisUtils.get(self.__get_redis(), key)
    def __increment_down_price_time(self, code, seconds):
        key = "under_water_seconds-{}".format(code)
        self.__get_redis().incrby(key, seconds)
        # 设置个失效时间
        self.__get_redis().expire(key, tool.get_expire())
        RedisUtils.expire(self.__get_redis(), key, tool.get_expire())
    def __get_down_price_time_as_seconds(self, code):
        key = "under_water_seconds-{}".format(code)
        val = self.__get_redis().get(key)
        val = RedisUtils.get(self.__get_redis(), key)
        if val is None:
            return None
        else:
@@ -195,35 +196,34 @@
    # 清除所有的水下捞数据
    def clear_under_water_data(self):
        key = "under_water_*"
        keys = self.__get_redis().keys(key)
        keys = RedisUtils.keys(self.__get_redis(), key)
        for k in keys:
            self.__get_redis().delete(k)
            RedisUtils.delete(self.__get_redis(), k)
    def __save_current_price_codes_count(self, count):
        key = "current_price_codes_count"
        self.__get_redis().setex(key, 10, count)
        RedisUtils.setex(self.__get_redis(),key, 10, count)
    def __get_current_price_codes_count(self):
        key = "current_price_codes_count"
        count = self.__get_redis().get(key)
        count = RedisUtils.get(self.__get_redis(),key)
        return 0 if count is None else count
    # 保存当前涨幅
    def __save_current_rate(self, code, rate):
        key = "code_current_rate-{}".format(code)
        self.__get_redis().setex(key, tool.get_expire(), rate)
        RedisUtils.setex(self.__get_redis(),key, tool.get_expire(), rate)
    # 获取当前涨幅
    def __get_current_rate(self, code):
        key = "code_current_rate-{}".format(code)
        rate = self.__get_redis().get(key)
        rate = RedisUtils.get(self.__get_redis(), key)
        if rate is not None:
            return float(rate)
        return None
    def get_current_rate(self, code):
        return self.__get_current_rate(code)
    def process_rate(self, code, rate, time_str):
        # 保存目前的代码涨幅
@@ -287,7 +287,7 @@
    # 获取涨幅前几的代码
    def get_top_rate_codes(self, top_n):
        keys = "code_current_rate-*"
        keys = self.__get_redis().keys(keys)
        keys = RedisUtils.keys(self.__get_redis(), keys)
        infos = []
        for k in keys:
            code = k.split("-")[1]
@@ -314,12 +314,12 @@
    def __incre_place_order_count(cls, code):
        key = "place_order_count-{}".format(code)
        cls.__get_redis().incrby(key, 1)
        cls.__get_redis().expire(key, tool.get_expire())
        RedisUtils.expire(cls.__get_redis(), key, tool.get_expire())
    @classmethod
    def __get_place_order_count(cls, code):
        key = "place_order_count-{}".format(code)
        count = cls.__get_redis().get(key)
        count = RedisUtils.get(cls.__get_redis(), key)
        if count is not None:
            return int(count)
        return 0
@@ -335,7 +335,7 @@
    @classmethod
    def clear_place_order_count(cls, code):
        key = "place_order_count-{}".format(code)
        cls.__get_redis().delete(key)
        RedisUtils.delete(cls.__get_redis(), key)
if __name__ == "__main__":