From 96dc1a4cc38b588f39387b5a85b9677100e357f1 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 23 三月 2023 23:55:40 +0800 Subject: [PATCH] 首板买入打分机制 --- juejin.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 49 insertions(+), 4 deletions(-) diff --git a/juejin.py b/juejin.py index a252307..0740ea7 100644 --- a/juejin.py +++ b/juejin.py @@ -536,6 +536,12 @@ keys = redis.keys("juejin_listen_code-*") return len(keys) + @classmethod + def get_previous_trading_date(cls, date): + account_id, s_id, token = getAccountInfo() + gmapi.set_token(token) + return gmapi.get_previous_trading_date("SHSE", date) + def trade(code, volume): account_id, s_id, token = getAccountInfo() @@ -578,10 +584,15 @@ # 鑾峰彇杩�90澶╃殑鏈�澶ч噺涓庢渶杩戠殑閲� # 鑾峰彇鏈�杩戜竴娆℃定鍋�/娑ㄥ仠涓嬩竴涓氦鏄撴棩鐨勬渶澶у�� -def get_volumn(code) -> object: - datas = JueJinManager.get_history_tick_n(code, 60, "open,high,low,close,volume,pre_close,bob") +def get_volumns_by_code(code, count=60) -> object: + datas = JueJinManager.get_history_tick_n(code, count, "open,high,low,close,volume,pre_close,bob") # 璁$畻 datas.sort(key=lambda x: x["bob"], reverse=True) + return datas + + +# 瑙f瀽鏈�澶ч噺 +def parse_max_volume(datas): max_volume = 0 for i in range(len(datas)): # 鏌ヨ娑ㄥ仠 @@ -595,8 +606,40 @@ next_volume = 0 if i > 0: next_volume = datas[i - 1]["volume"] - return (max(volume, next_volume), max(volume, next_volume)) + volume = max(volume, next_volume) + return (volume, volume) return (max_volume, max_volume) + + +# 鏄惁鏈夋定鍋� +def is_have_limit_up(datas): + for i in range(len(datas)): + item = datas[i] + limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(item["pre_close"])) + if abs(limit_up_price - item["close"]) < 0.01: + return True + return False + + +# 棣栨澘娑ㄥ仠婧环鐜� +def get_limit_up_money_percent(datas): + datas.sort(key=lambda x: x["bob"]) + first_rate_list = [] + for i in range(0, len(datas)): + item = datas[i] + limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(item["pre_close"])) + if abs(limit_up_price - item["close"]) < 0.001 and abs( + limit_up_price - datas[i - 1]["close"]) >= 0.001 and 0 < i < len(datas) - 1: + # 棣栨澘娑ㄥ仠 + rate = (datas[i + 1]["high"] - datas[i + 1]["pre_close"]) / datas[i + 1]["pre_close"] + first_rate_list.append(rate) + if not first_rate_list: + return 1 + count = 0 + for rate in first_rate_list: + if rate >= 0.01: + count += 1 + return count / len(first_rate_list) # 鏍规嵁娑ㄥ箙楂樹綆鍒嗛厤浜ゆ槗绐楀彛 @@ -611,4 +654,6 @@ if __name__ == '__main__': - print(get_volumn("002291")) + datas=(get_volumns_by_code("603083", 150)) + print(datas) + print(get_limit_up_money_percent(datas)) -- Gitblit v1.8.0