近期我的半自动化交易系统有了两项功能升级:一是扩展了 Telegram 的功能,可以直接在通知消息中通过标签实现买卖操作;二是集成了 LLM(大语言模型)工具,用于分析持仓和仓位变动。

在 Telegram 中直接执行买卖操作

以往的半自动化模式是:程序检测到股票价格变化后,自动发送通知到 Telegram,我再根据提醒去券商软件下单。

最近我对这一流程进行了优化,现在可以直接在 Telegram 的通知消息上通过打标签来实现买卖操作,大大提升了效率和便捷性。

1755357194553.png

实现原理

核心逻辑如下:后端会检查消息的发送者是否为管理员,并判断标签(icon)是否符合要求,只有都满足条件才会继续执行买卖操作。下面是部分实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
async def conv_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
app_logger.info(f"Update: {update}, Context: {context.__dict__}")

if str(update.message_reaction.user.id) not in admin_user_ids:
app_logger.warning(f"User {update.message_reaction.user.id} is not an admin")
return

act = update.message_reaction.new_reaction
if not act or not act[0]:
app_logger.warning("No reaction found in the update.")
return

emoji_data = act[0].to_dict()
if emoji_data['emoji'] != '👏':
app_logger.warning(f"Reaction {act} is not supported")
return
# ... buy or sell logic

if __name__ == "__main__":
application = Application.builder().token(token).build()
application.add_handler(MessageReactionHandler(conv_command))

通过这种方式,用户只需在 Telegram 消息上添加指定标签(如“👏”),系统就会自动完成买卖操作,无需手动切换到券商软件。

利用 LLM 工具分析持仓与仓位调整

我参考了 TauricResearch/TradingAgents 项目。虽然它主要支持 OpenAI 并且是终端交互,但我借鉴了其中的 prompt 设计,并在自己的系统中集成了 LLM 分析工具。现在,自动化代码生成和模型调用都非常高效,能够快速完成分析任务。

1755392398699.png

TradingAgents 的功能亮点

TradingAgents 利用 OpenAI 的函数调用能力(Function Calling),可以自动获取股票行情、检查新闻,并通过多轮交互生成分析报告。 整个过程类似如下:

1755360355504.png

这种方式让模型能够主动调用后端函数,自动完成数据抓取和分析,极大提升了智能化水平。

我的实际应用

我没有 OpenAI 的 API,但之前充值了 DeepSeek 的,所以直接用它来做持仓分析。目前项目中的 LLM 交互流程比较简洁: 系统会整理最近的持仓数据,上传给 DeepSeek 进行分析,模型会给出仓位变动建议和操作意见。

1755400172041.png

目前我每周查看一次模型生成的报告,已经能够满足日常的持仓管理和策略调整需求。

image.png