自学内容网 自学内容网

【Python技术】利用akshare定时获取股票实时价,低于5日线钉钉通知报警

https://mmbiz.qpic.cn/mmbiz_png/8jtuxael8Qhjskn0ZEpd32wTdPmSqgyAos8NzqcUDOcJXDNv4LklZjcPRyjXib4maeD6VSnpKlXBHAiaHHKyXdIw/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

今天看了下大盘,临时有个想法,我想知道某个股票回踩5日线的价格,如果实时价格低于5日线通过钉钉报警通知我。

说干就干,临时撸了下简单的代码,仅做演示。

1、计算5日线思路

很多券商软件的MA5价格是近5个交易日收盘的平均价, 其实对我来说,没什么鸟用。我需要的是强势股回踩5日线提醒,我自己设计的公式思路,根据股票code获取最近4个交易日收盘价 +当日开盘价,除以5,计算5日线价格。

def get_5day_average(stock_code):
    try:
        end_date = datetime.now().strftime('%Y%m%d')
        start_date = (datetime.now() - pd.Timedelta(days=10)).strftime('%Y%m%d')
        df = ak.stock_zh_a_hist(symbol=stock_code, start_date=start_date, end_date=end_date, adjust="")

        if len(df) < 5:
            return None, f"Error: Not enough data available for {stock_code}. Only {len(df)} days found."

        latest_open = df.iloc[-1]['开盘']
        previous_closes = df.iloc[-5:-1]['收盘'].tolist()

        five_day_values = previous_closes + [latest_open]
        five_day_average = sum(five_day_values) / 5

        return five_day_average, None

    except Exception as e:
        return None, f"Error occurred for {stock_code}: {str(e)}"

2、交易时间判断,上午9点半-11点半, 下午1点-3点

def is_trading_time():
    now = datetime.now().time()
    morning_start = time(9, 30)
    morning_end = time(11, 30)
    afternoon_start = time(13, 0)
    afternoon_end = time(15, 0)
    
    return (morning_start <= now <= morning_end) or (afternoon_start <= now <= afternoon_end)

3、利用akshare获取实时价格, 为了保证接口的正常顺利调用, 最好换个数据源。

 real_time_data = ak.stock_zh_a_spot()

4、钉钉通知报警

钉钉机器人配置

DINGTALK_WEBHOOK = "https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN"

钉钉怎么玩,可以借助钉钉APP面对面建群,输入4个数字建一个单人群聊, 单人群里搞个 钉钉机器人就可以了。

完整代码见下方链接, csdn文章太容易被搬运了。有次刚写完一篇文章,转眼第二天我搜索资料,一模一样的文章就出现在其他地方了。

【Python技术】利用akshare定时获取股票实时价,低于5日线钉钉通知报警


原文地址:https://blog.csdn.net/xiaoliouc/article/details/142934763

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!