| | |
| | | |
| | | # 交易撤销数据管理器 |
| | | import constant |
| | | from db.redis_manager import RedisUtils |
| | | from utils import global_util, tool |
| | | import l2_data_util |
| | | from db import redis_manager |
| | |
| | | @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: |
| | |
| | | @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 |
| | |
| | | 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) |
| | |
| | | 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) |
| | | |
| | |
| | | |
| | | 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: |
| | |
| | | # 保存跌价的时间 |
| | | 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: |
| | |
| | | # 清除所有的水下捞数据 |
| | | 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): |
| | | # 保存目前的代码涨幅 |
| | |
| | | # 获取涨幅前几的代码 |
| | | 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] |
| | |
| | | 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 |
| | |
| | | @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__": |