| | |
| | | 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 |
| | | |
| | |
| | | # 开启购买入口 |
| | | @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 |
| | |
| | | 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 |
| | |
| | | |
| | | @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): |
| | |
| | | |
| | | @classmethod |
| | | def clear(cls): |
| | | cls.__get_redis().delete(cls.__key) |
| | | RedisUtils.delete( cls.__get_redis(), cls.__key) |
| | | |
| | | |
| | | # 获取交易状态 |
| | |
| | | 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: |
| | |
| | | |
| | | 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: |
| | |
| | | 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_ = {} |
| | |
| | | |
| | | # 保存最新的委托数据 |
| | | 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) |
| | | |
| | | |
| | | # 获取交易成功数据 |
| | |
| | | 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__": |