炒股最痛苦的不是亏钱,是时刻盯着盘面。这篇文章记录我用 WorkBuddy 搭建自动化盯盘系统的过程,解决"看不过来、反应慢、容易漏"的问题。
Pasted image 20260410141343.png
作为上班族,我没法时刻盯着行情软件,但持仓股票又需要关注。手动盯盘遇到几个问题:
需求很明确:需要一个自动化系统,帮我实时监控,关键时刻主动提醒。
问题:需要实时或准实时的股票数据,但:
思考:找低成本、稳定、合法的数据源。
问题:股票指标太多了,该监控哪些?
风险:监控太多会信息过载,监控太少又漏掉关键信号。
思考:先抓核心指标,根据实际效果迭代优化。
问题:预警太频繁会打扰,太宽松又失去意义。
思考:不同股票波动率不同,不能一刀切,需要个性化设置。
问题:预警信息要推送到哪里?
思考:优先选择免费、及时、不易遗漏的渠道。
方案:使用同花顺免费数据接口(ths-sdk)
原因:
关键代码:
from thsdk import THS
def get_stock_quote(stock_code):
"""获取股票实时行情"""
with THS() as ths:
# 转换股票代码格式
# 深市: 000725 → USZA000725
# 沪市: 600844 → USHA600844
data = ths.get_realtime_quotes(stock_code)
return {
'name': data['name'],
'price': data['price'],
'change_pct': data['change_percent'],
'volume': data['volume'],
'high': data['high'],
'low': data['low']
}效果:零成本获取准实时数据,满足监控需求。
策略:分层监控,抓大放小
层级 | 指标 | 优先级 | 说明 |
|---|---|---|---|
核心层 | 当前价、涨跌幅 | 高 | 必须实时监控 |
关注层 | 成交量、换手率 | 中 | 异常时提醒 |
参考层 | 技术指标、资金流向 | 低 | 定时汇总报告 |
第一版先实现核心层,保证基础功能可用。
监控逻辑:
def check_alert(stock, config):
"""检查是否触发预警"""
alerts = []
# 涨跌幅预警
if abs(stock['change_pct']) > config['change_threshold']:
alerts.append(f"涨跌幅异常: {stock['change_pct']:.2f}%")
# 价格预警(止损/止盈)
if stock['price'] <= config['stop_loss']:
alerts.append(f"触发止损: {stock['price']}")
elif stock['price'] >= config['take_profit']:
alerts.append(f"触发止盈: {stock['price']}")
return alerts方案:每只持仓股单独配置预警参数
配置文件示例:
{
"USHA600844": {
"name": "金煤科技",
"stop_loss": 3.65,
"take_profit_1": 4.50,
"take_profit_2": 5.50,
"take_profit_3": 6.50,
"change_threshold": 3.0,
"position": 1200
}
}阶梯止盈逻辑:
def check_take_profit(stock, config):
"""检查阶梯止盈条件"""
price = stock['price']
alerts = []
# 第一档止盈
if price >= config['take_profit_1'] and not config.get('tp1_triggered'):
alerts.append(f"达到第一档止盈 {config['take_profit_1']},建议卖出 1/3")
config['tp1_triggered'] = True
# 第二档止盈
elif price >= config['take_profit_2'] and not config.get('tp2_triggered'):
alerts.append(f"达到第二档止盈 {config['take_profit_2']},建议再卖 1/3")
config['tp2_triggered'] = True
return alerts效果:不同股票不同策略,避免一刀切。
方案:控制台输出 + 本地日志 + 可选邮件
原因:
通知函数:
import logging
from datetime import datetime
# 配置日志
logging.basicConfig(
filename='stock_alert.log',
level=logging.INFO,
format='%(asctime)s - %(message)s'
)
def send_alert(stock_name, alerts):
"""发送预警通知"""
timestamp = datetime.now().strftime('%H:%M:%S')
message = f"[{timestamp}] {stock_name}: {', '.join(alerts)}"
# 控制台输出
print(message)
# 写入日志
logging.info(message)
# 重要预警发邮件(可选)
if '止损' in str(alerts) or '止盈' in str(alerts):
send_email_alert(message)方案:用 WorkBuddy 的自动化功能,定时执行监控脚本
配置:
# automation.toml
name = "股票盯盘"
prompt = "运行股票监控脚本,检查持仓股是否触发预警条件"
schedule = "*/5 * * * *" # 每5分钟执行一次
cwd = "C:/Users/lzg/WorkBuddy/Claw"运行效果:
[09:30:00] 金煤科技: 开盘监控启动
[09:35:00] 金煤科技: 涨跌幅异常: 3.25%
[10:15:00] 金煤科技: 触发第一档止盈 4.50,建议卖出 1/3
[14:30:00] 金煤科技: 成交量放大,换手率 8.5%坑 | 解决方案 | 关键要点 |
|---|---|---|
数据源 | 同花顺免费接口 | 零成本、稳定、合法 |
监控指标 | 分层监控,先抓核心 | 避免信息过载 |
预警阈值 | 个性化配置 | 不同股票不同策略 |
通知渠道 | 控制台+日志+邮件 | 简单可靠,不依赖第三方 |
场景 | 手动盯盘 | 自动监控 | 提升 |
|---|---|---|---|
监控频率 | 偶尔看两眼 | 每5分钟自动检查 | 持续覆盖 |
反应速度 | 几分钟到几十分钟 | 实时预警 | 秒级响应 |
信息完整 | 容易遗漏 | 所有信号记录留痕 | 不遗漏 |
精力消耗 | 高(时刻牵挂) | 低(只看预警) | 解放精力 |
这个盯盘系统虽然简单,但解决了我的核心痛点:
WorkBuddy 的价值在于:把重复性监控工作自动化,让我能专注于决策本身,而不是被盘面牵着走。
当然,这个系统还可以继续优化:
如果你也有盯盘困扰,希望这些经验对你有帮助。
标签:#腾讯云OpenClaw玩虾大赛 #WorkBuddy #股票 #自动化 #量化交易 #Python
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。