一江山水的随笔

当前位置:首页 - 技术 - 正文

Enjoy life!

先说效果:AI智能体自动盯盘,触发条件就微信提醒,完全零成本

作为一个老股民,我经常遇到这种情况:盯盘盯得眼酸,一不留神就错过了买卖点。后来我琢磨着,能不能让AI帮我自动监控股价?说干就干,我用Python脚本结合AI生成代码,搞了个零成本的股价监控智能体。现在,它每天定时抓取我关注的股票数据,一旦价格达到我设定的条件(比如跌破支撑位或突破阻力位),就自动通过微信或邮件给我发提醒。我再也不用傻傻盯着屏幕了,省心又省力。

实现思路:Python脚本定时运行 + AI辅助写代码 + 免费推送服务

整个方案的核心很简单:

  • 数据获取:用Python脚本定时从免费数据源(比如新浪财经、雅虎财经)抓取股价。
  • 条件判断:脚本里设置监控条件,比如“股价低于10元”或“涨幅超过5%”。
  • 消息推送:触发条件时,通过微信(用Server酱)或邮件(用SMTP)发送提醒。
  • 自动化运行:把脚本部署到免费云服务器(比如PythonAnywhere)或本地用任务计划定时执行。

关键点是,很多代码我让AI(比如ChatGPT)帮我生成,省去了大量查文档的时间。下面我一步步拆解。

步骤一:准备环境,安装必要的Python库

首先,确保你电脑上装了Python 3.6以上版本。然后,用pip安装几个库:

pip install requests pandas schedule
  • requests:用来发送HTTP请求抓取数据。
  • pandas:处理数据,方便计算涨跌幅。
  • schedule:定时执行任务(可选,如果你用云服务器或系统任务计划,可以不用)。

我习惯用虚拟环境,避免库冲突,但如果你只是简单用用,直接装也行。

步骤二:抓取股价数据,我用新浪财经接口

网上有很多免费数据源,我试了一圈,新浪财经的接口比较稳定,而且不需要API key。下面是一个简单的抓取函数:

import requests
import pandas as pd

def get_stock_price(stock_code):
    """
    获取股票实时价格
    stock_code: 股票代码,比如 'sh600000' 或 'sz000001'
    返回: 当前价格(float)
    """
    url = f'http://hq.sinajs.cn/list={stock_code}'
    try:
        response = requests.get(url)
        data = response.text.split('=')[1].strip('"').split(',')
        current_price = float(data[3])  # 当前价格在返回数据的第4个位置
        return current_price
    except Exception as e:
        print(f"获取数据失败: {e}")
        return None

# 示例:获取浦发银行(sh600000)的股价
price = get_stock_price('sh600000')
if price:
    print(f"当前价格: {price}")

这个函数返回的是实时价格。如果你需要更多数据(比如开盘价、最高价等),可以解析data列表的其他字段。我让AI帮我写了这个函数,稍微调整了一下错误处理。

步骤三:设置监控条件,比如价格阈值或涨跌幅

监控条件可以根据你的策略来定。我常用的是价格阈值,比如:

def check_condition(current_price, threshold_price, condition_type='below'):
    """
    检查是否触发条件
    current_price: 当前价格
    threshold_price: 阈值价格
    condition_type: 'below'(低于阈值)或 'above'(高于阈值)
    返回: True(触发)或 False(未触发)
    """
    if condition_type == 'below' and current_price < threshold_price:
        return True
    elif condition_type == 'above' and current_price > threshold_price:
        return True
    return False

# 示例:监控股价是否低于10元
if check_condition(price, 10.0, 'below'):
    print("触发提醒: 股价低于10元!")

你也可以监控涨跌幅,用pandas计算一下。比如,监控当日涨幅超过5%:

def check_increase(current_price, open_price, threshold_percent=5):
    """
    检查涨幅是否超过阈值
    threshold_percent: 阈值百分比,默认5%
    返回: True(触发)或 False(未触发)
    """
    increase = (current_price - open_price) / open_price * 100
    if increase > threshold_percent:
        return True
    return False

这些条件函数很简单,但很实用。你可以根据需求扩展,比如结合多个条件。

步骤四:触发时发送提醒,我用微信推送

提醒方式我推荐微信,因为更及时。这里用Server酱(免费版每天最多发5条消息,够用了):

import requests

def send_wechat_message(title, content, sckey):
    """
    通过Server酱发送微信提醒
    sckey: 你的Server酱SCKEY,在官网注册获取
    """
    url = f'https://sctapi.ftqq.com/{sckey}.send'
    data = {
        'title': title,
        'desp': content
    }
    try:
        response = requests.post(url, data=data)
        if response.json().get('code') == 0:
            print("微信提醒发送成功")
        else:
            print(f"发送失败: {response.text}")
    except Exception as e:
        print(f"发送失败: {e}")

# 示例:发送提醒
send_wechat_message("股价提醒", f"浦发银行当前价格: {price},已低于10元!", "你的SCKEY")

Server酱的注册很简单,去官网(sct.ftqq.com)用GitHub登录,就能拿到SCKEY。把提醒内容填好,触发时调用这个函数就行。

如果你更喜欢邮件,可以用SMTP,代码稍微复杂点,但AI也能帮你生成。这里给个简单示例:

import smtplib
from email.mime.text import MIMEText

def send_email(subject, body, to_email, from_email, password):
    """
    发送邮件提醒
    使用QQ邮箱SMTP(需要开启SMTP服务并获取授权码)
    """
    msg = MIMEText(body, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = from_email
    msg['To'] = to_email
    
    try:
        server = smtplib.SMTP_SSL('smtp.qq.com', 465)
        server.login(from_email, password)
        server.sendmail(from_email, [to_email], msg.as_string())
        server.quit()
        print("邮件发送成功")
    except Exception as e:
        print(f"邮件发送失败: {e}")

步骤五:整合代码,定时运行

把上面的函数组合起来,写个主程序。我用schedule库做定时,每5分钟运行一次:

import schedule
import time

def monitor_stock():
    stock_code = 'sh600000'  # 监控的股票代码
    threshold_price = 10.0   # 阈值价格
    sckey = '你的SCKEY'      # Server酱的SCKEY
    
    price = get_stock_price(stock_code)
    if price is None:
        return
    
    if check_condition(price, threshold_price, 'below'):
        message = f"股票 {stock_code} 当前价格 {price},已低于阈值 {threshold_price}!"
        send_wechat_message("股价提醒", message, sckey)

# 每5分钟运行一次
schedule.every(5).minutes.do(monitor_stock)

print("开始监控股价...")
while True:
    schedule.run_pending()
    time.sleep(1)

如果你不想一直运行脚本,可以部署到免费云服务器,比如PythonAnywhere,设置定时任务。或者,在Windows上用任务计划程序,在Linux/Mac上用cron job。

注意事项和优化建议

  • 数据源稳定性:免费接口可能不稳定,建议加个重试机制,或者备用数据源(比如雅虎财经)。
  • 频率控制:抓取太频繁可能被屏蔽,一般5-10分钟一次就够了。Server酱免费版每天限5条消息,别超了。
  • 隐私安全:SCKEY和邮箱密码别硬编码在代码里,可以用环境变量或配置文件。
  • 扩展功能:你可以监控多只股票,或者加入更复杂的策略(比如技术指标)。AI生成代码时,描述清楚需求就行。
  • 测试:先手动跑几次,确保提醒能正常收到,再部署自动化。

总结

这个股价监控智能体,我用下来效果不错,零成本实现了自动化盯盘。核心就是Python脚本加AI辅助写代码,抓数据、判条件、发提醒,一气呵成。对于散户来说,完全够用,再也不用担心错过行情了。如果你有编程基础,跟着步骤做,一两个小时就能搞定。如果没基础,多让AI帮帮忙,它现在写这种脚本挺溜的。

当然,这只是一个基础版本,你可以根据自己的需求定制。比如,加入邮件推送、监控更多股票、或者集成到Discord/Telegram。关键是动手试试,自动化之后,炒股会轻松很多。

本文来源:一江山水的随笔

本文地址:https://blog.298.name/post/190.html

主要内容:零成本让AI智能体自动监控股价,触发条件就微信提醒你

版权声明:如无特别注明,转载请注明本文地址!

下一篇

博主有点懒,啥也没写!
想找什么搜索会更快哦!
站点信息
  • 文章总数:171
  • 页面总数:1
  • 分类总数:4
  • 标签总数:170
  • 评论总数:61
  • 浏览总数:1643341
控制面板
您好,欢迎到访网站!
  查看权限
Top