过滤当天更新的指数并计算天和周cci

This commit is contained in:
2025-10-30 21:56:02 +08:00
parent f0205ec146
commit b84cfc6b02
3 changed files with 27 additions and 128 deletions

View File

@@ -70,6 +70,10 @@ def main_calc_process():
continue
# 将 'date' 列转换为 datetime 类型,并设置为索引
df["date"] = pd.to_datetime(df["date"])
# 判断最新日期是否为今天,如果不是则跳过
today_str = datetime.now().strftime("%Y-%m-%d")
if df["date"].max().strftime("%Y-%m-%d") != today_str:
continue
df = df.sort_values("date")
df.set_index("date", inplace=True)
@@ -93,23 +97,40 @@ def main_calc_process():
timeperiod=14,
)
df_weekly = df_weekly.tail(1)
cci = df_weekly["cci"].values[0]
logger.info(f"{i}/{len(code_list)}: {code} cci: {cci}")
week_cci = df_weekly["cci"].values[0]
df["cci"] = ta.CCI(
high=df["high"],
low=df["low"],
close=df["close"],
timeperiod=14,
)
cci = df["cci"].tail(1).values[0]
logger.info(f"{i}/{len(code_list)}: {code} week_cci: {week_cci} day_cci: {cci}")
if cci < -100:
signal_list.append(
{"code": code, "name": code_info["指数名称"], "cci": cci}
{
"code": code,
"name": code_info["指数名称"],
"天cci": cci,
"周cci": week_cci,
}
)
# break
signal_df = pd.DataFrame(signal_list)
# dingtalk.send_markdown(
# f"CCI信号", signal_df.to_markdown(tablefmt="simple", index=False)
# )
dingtalk.send_text(
tabulate(signal_df, tablefmt="plain", headers="keys", showindex=False)
)
if len(signal_list) > 0:
dingtalk.send_text(
tabulate(signal_df, tablefmt="plain", headers="keys", showindex=False)
)
else:
logger.info("无信号")
if __name__ == "__main__":
# main_calc_process()
...
# main()
# logger.info(datetime.now())