From 045a5aa6434da6e83c3d850b17e7e58cd7b55ef5 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 15 五月 2023 15:46:32 +0800 Subject: [PATCH] 开盘啦板块影响交易逻辑 --- code_data_util.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 53 insertions(+), 3 deletions(-) diff --git a/code_data_util.py b/code_data_util.py index 911417d..2e64bd9 100644 --- a/code_data_util.py +++ b/code_data_util.py @@ -1,7 +1,29 @@ +""" +鑲$エ鏁版嵁宸ュ叿 +""" + # 鑲$エ浠g爜鐩稿叧鐨勫弬鏁� -import redis_manager +import decimal +import time + +import gpcode_manager +from db import mysql_data, redis_manager +import tool _redisManager = redis_manager.RedisManager(0) + + +# 浠g爜瀵瑰簲鐨勪环鏍兼槸鍚︽纭� +def is_same_code_with_price(code, price): + if code == '600066': + print('杩涘叆璋冭瘯') + # 鏄ㄦ棩鏀剁洏浠� + price_close = gpcode_manager.get_price_pre(code) + max_price = tool.to_price(decimal.Decimal(str(price_close)) * decimal.Decimal("1.1")) + min_price = tool.to_price(decimal.Decimal(str(price_close)) * decimal.Decimal("0.9")) + if min_price <= decimal.Decimal(str(price)) <= max_price: + return True + return False # 鑷敱娴侀�氳偂鏈伐鍏风被 @@ -9,14 +31,42 @@ @classmethod def save(cls, code, val, unit): redis = _redisManager.getRedis() - redis.setex("zyltgb-{}".format(code), 60 * 60 * 24 * 10, + redis.setex("zyltgb-{}".format(code), tool.get_expire(), round(float(val) * 100000000) if int(unit) == 0 else round( float(val) * 10000)) @classmethod def get(cls, code): redis = _redisManager.getRedis() - val = redis.get(code) + val = redis.get("zyltgb-{}".format(code)) if val is not None: return int(val) return None + + @classmethod + def save_list(self, datasList): + # 淇濆瓨鑷敱娴侀�氬競鍊� + mysqldb = mysql_data.Mysqldb() + for data in datasList: + # 淇濆瓨 + _dict = {"_id": data["code"], "zyltgb": data["zyltgb"], "zyltgb_unit": data["zyltgb_unit"], + "update_time": int(round(time.time() * 1000))} + if float(data["zyltgb"]) > 0: + # 淇濆瓨10澶� + ZYLTGBUtil.save(data["code"], data["zyltgb"], data["zyltgb_unit"]) + result = mysqldb.select_one("select * from ths_zylt where _id='{}'".format(data["code"])) + if result is None: + mysqldb.execute( + "insert into ths_zylt(_id,zyltgb,zyltgb_unit,update_time) values ('{}','{}',{},{})".format( + data["code"], data["zyltgb"], data["zyltgb_unit"], round(time.time() * 1000))) + else: + mysqldb.execute( + "update ths_zylt set zyltgb='{}',zyltgb_unit={},update_time={} where _id='{}'".format( + data["zyltgb"], data["zyltgb_unit"], round(time.time() * 1000), data["code"])) + + +if __name__ == "__main__": + redis = _redisManager.getRedis() + keys = redis.keys("zyltgb-*") + for key in keys: + redis.delete(key) -- Gitblit v1.8.0