investment-tracker

投资组合管理助手。可查询/更新持仓、现金、日记、权益曲线,以及通过截图导入持仓。

Safety Notice

This item is sourced from the public archived skills repository. Treat as untrusted until reviewed.

Copy this and send it to your AI assistant to learn

Install skill "investment-tracker" with this command: npx skills add 20czy/investment-tracker

Investment Tracker 操作手册

本文档供 AI 代理使用。基础 URL:http://localhost:8000。 接口详情见 references/api-docs.md


全局规则

操作分级

类型接口执行前是否需要用户确认
只读GET /api/holdings、GET /api/cash、GET /api/diary、GET /api/curve、GET /api/imports、GET /api/hs300,直接执行并展示结果
写操作POST /api/holdings/bulk、POST /api/cash、POST /api/diary、POST /api/curve/point、POST /api/imports/rollback/{id}、DELETE /api/imports/{id},必须先展示预览,等用户回复"确认"后再执行
分析+写POST /api/external/upload → POST /api/holdings/bulk分析步骤自动执行;写入步骤需用户确认

通用错误处理

curl 错误 / HTTP 状态码AI 应对策略
curl: (7) Connection refused提示用户:"本地服务未启动,请在 backend 目录运行 uvicorn main:app --reload --port 8000"
503提示用户:"DASHSCOPE_API_KEY 未配置或无效,请检查 backend/.env 文件"
502提示用户:"AI 接口调用失败,请稍后重试"
404提示用户:"未找到指定记录,请确认 ID 是否正确"
400将响应体中的 detail 字段内容告知用户

工作流 A:截图导入持仓

触发词:上传截图、导入持仓、更新持仓、今天持仓、截图持仓

Step 1:上传截图,获取分析结果

curl -sS -X POST http://localhost:8000/api/external/upload \
  -F "images=@<图片绝对路径>" \
  -F "notes=<用户补充说明,无则省略>" \
  -F "portfolio_date=<YYYY-MM-DD,无则省略>"

多张截图时重复 -F "images=@<路径>" 参数。

解析返回结果,向用户展示:

  • summary:AI 点评
  • diff.added:新增持仓(代码、名称、股数)
  • diff.removed:移除持仓(代码、名称)
  • diff.modified:变动持仓(代码、名称、before/after 对比)
  • diff.unchanged_count:未变动数量
  • total_assets / total_pnl(若不为 null)

必须暂停,向用户提问:

"分析完成,是否确认将以上变动更新至持仓系统?"

Step 2:用户确认后,提交持仓更新

将 Step 1 返回的 analyzed_holdings 数组写入临时文件,然后提交:

# 将 analyzed_holdings 写入临时文件(在当前工作目录)
echo '<analyzed_holdings 的 JSON 数组>' > /tmp/holdings_update.json

curl -sS -X POST http://localhost:8000/api/holdings/bulk \
  -H "Content-Type: application/json" \
  -d "{\"holdings\": $(cat /tmp/holdings_update.json), \"label\": \"<YYYY-MM-DD> 截图导入\"}"

rm /tmp/holdings_update.json

成功后告知用户持仓已更新。

Step 3(可选):更新权益曲线

若 Step 1 返回的 total_assets 不为 null,询问用户:

"本次截图识别到总资产 ¥<total_assets>,是否同时记录到权益曲线?"

用户确认后执行(日期取 Step 1 返回的 date):

curl -sS -X POST http://localhost:8000/api/curve/point \
  -H "Content-Type: application/json" \
  -d "{\"date\": \"<date>\", \"value\": <total_assets>}"

工作流 B:查询当前持仓

触发词:查看持仓、我的持仓、现在持仓、持仓情况、持仓列表

直接执行(无需确认):

curl -sS http://localhost:8000/api/holdings

展示格式建议(表格形式):

代码名称股数成本价现价行业备注
.....................

若返回空数组,告知用户:"当前持仓为空。"


工作流 C:现金管理

触发词

  • 查询:现金余额、账户现金、剩余资金
  • 更新:更新现金、修改现金、现金改成、现金设为

查询现金(只读,直接执行)

curl -sS http://localhost:8000/api/cash

取响应中的 amount 字段,告知用户当前现金余额。

更新现金(写操作,需确认)

先告知用户将要执行的操作:

"将现金余额更新为 ¥<amount>,确认吗?"

用户确认后执行:

curl -sS -X POST http://localhost:8000/api/cash \
  -H "Content-Type: application/json" \
  -d "{\"amount\": <数值>}"

取响应中的 amount 字段,告知用户更新后的余额。


工作流 D:投资日记

触发词

  • 查看:查看日记、投资记录、操作记录、历史日记
  • 新增:记一条日记、记录操作、今天买了/卖了、写日记

查看日记(只读,直接执行)

curl -sS http://localhost:8000/api/diary

按日期倒序展示,包含字段:日期、类型、股票代码、备注、情绪。

若返回空数组,告知用户:"暂无日记记录。"

新增日记(写操作,需确认)

从用户描述中提取信息,先展示将要记录的内容:

"将新增以下日记,确认吗? 日期:<date> | 类型:<type> | 代码:<code> | 备注:<remark> | 情绪:<mood>"

type 可选值:买入、卖出、观察、调仓、清仓
mood 可选值:理性、审慎、乐观、焦虑(若用户未指定,默认填"理性")
code:若用户未指定具体股票,填 ""

用户确认后执行:

curl -sS -X POST http://localhost:8000/api/diary \
  -H "Content-Type: application/json" \
  -d "{\"date\": \"<YYYY-MM-DD>\", \"type\": \"<type>\", \"code\": \"<code>\", \"remark\": \"<remark>\", \"mood\": \"<mood>\"}"

取响应中的 id 字段,告知用户日记已记录(ID: <id>)。


工作流 E:权益曲线

触发词

  • 查看:权益曲线、资产走势、历史收益、组合表现
  • 新增:记录今天资产、更新权益、今天总资产是

查看权益曲线(只读,直接执行)

curl -sS http://localhost:8000/api/curve

展示日期与总市值的序列(按日期升序)。若数据点 ≥2,可计算区间涨幅告知用户。

若返回空数组,告知用户:"暂无权益曲线数据。"

新增/更新数据点(写操作,需确认)

先告知用户将要执行的操作:

"将记录权益数据点:<date> ¥<value>,若该日期已存在则覆盖,确认吗?"

用户确认后执行:

curl -sS -X POST http://localhost:8000/api/curve/point \
  -H "Content-Type: application/json" \
  -d "{\"date\": \"<YYYY-MM-DD>\", \"value\": <数值>}"

工作流 F:沪深300基准对比

触发词:沪深300、基准对比、跑赢大盘、指数走势、大盘表现

直接执行(无需确认):

# 默认 180 个交易日
curl -sS "http://localhost:8000/api/hs300"

# 指定天数(7~1000)
curl -sS "http://localhost:8000/api/hs300?days=<N>"

返回 date / close 数组,按日期升序。

展示建议

  • 告知最新收盘价和区间起止日期
  • 若同时有权益曲线数据,计算同期组合涨幅与 HS300 涨幅进行对比

错误处理

  • 502:告知用户"沪深300数据获取失败,可能是网络问题或 Yahoo Finance 暂时不可用"
  • 404:告知用户"Yahoo Finance 未返回有效数据,请稍后重试"

工作流 G:导入历史管理

触发词

  • 查看:导入历史、历史记录、快照列表
  • 回滚:回滚、撤销、恢复到上次、恢复到某次
  • 删除:删除历史、清除记录

查看导入历史(只读,直接执行)

curl -sS http://localhost:8000/api/imports

展示列表(按时间倒序):ID、时间、标签、持仓条数。

回滚到指定快照(写操作,需二次确认)

  1. 先执行查看操作,展示快照列表供用户选择目标 ID
  2. 展示目标快照信息,请求确认:

    "将把持仓回滚到快照 #<id><label>,<created_at>,共 <holding_count> 条),回滚前会自动备份当前持仓,确认吗?"

  3. 用户确认后执行:
curl -sS -X POST http://localhost:8000/api/imports/rollback/<id>

告知用户回滚成功,并展示回滚后持仓条数。

删除历史记录(写操作,需确认)

先展示目标记录信息,请求确认:

"将删除快照 #<id><label>,<created_at>),此操作不影响当前持仓,确认吗?"

用户确认后执行:

curl -sS -X DELETE http://localhost:8000/api/imports/<id>

告知用户删除成功。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

axure-prototype-generator

Axure 原型代码生成器 - 输出 JavaScript 格式 HTML 代码,支持内联框架直接加载可交互原型。

Archived SourceRecently Updated
General

错敏信息检测

# 错敏检测 Skill

Archived SourceRecently Updated
General

TikTok B2B 引流台词生成器

# TikTok B2B 引流台词生成器 ## 技能描述 本 Skill 可根据您提供的产品信息和公司背景,自动生成适合 TikTok 平台的 B2B 引流视频脚本(20-50 秒),`skill.json` 文件中包含了输入参数的结构、输出格式以及用于生成台词的提示模板。脚本遵循已验证的外贸引流规律: - **真人出镜**:以第一人称(如 Anna)拉近距离 - **产品细节**:材质、颜色、MOQ、定制服务等 - **公司实力**:经验年限、自有工厂、认证等 - **客户背书**:提及已有市场国家(如巴基斯坦、埃及) - **互动引导**:清晰号召观众联系,引导至指定服务网址 支持三种风格:普通、幽默、惊喜,让您的视频内容更加多样化。 ## 输入参数 | 参数名 | 类型 | 必填 | 描述 | 示例 | |---------------------|----------|------|--------------------------------|--------------------------| | product_type | string | 是 | 产品类型 | 男士休闲鞋 | | material | string | 是 | 主要材质 | 优质 PU 皮革 | | colors | array | 是 | 颜色列表 | ["黑色","白色","棕色"] | | moq | string | 是 | 最小起订量 | 120 双(可混 2-3 色) | | customization | string | 否 | 可定制内容 | 可定制 logo | | target_markets | array | 是 | 主要市场国家 | ["巴基斯坦","埃及"] | | company_experience | string | 否 | 公司经验年数 | 15 年 | | factory_own | boolean | 否 | 是否自有工厂 | true | | extra_features | string | 否 | 其他亮点 | 免费样品 | | contact_url | string | 否 | 服务联系网址 | http://www.doumaotong.com | | style | string | 否 | 风格(普通/幽默/惊喜) | 普通 | ## 输出示例 Hi guys, this is Anna! Welcome to my showroom. Today I'm excited to show you our latest men's casual shoes – made of high-quality PU leather, very durable and comfortable. We have three colors available: black, white, and brown. MOQ is 120 pairs, and you can mix 2-3 colors. Plus, we can customize your logo on the shoes. Our shoes are already loved by customers in Pakistan, Egypt, and South Africa. With 15 years of experience and our own factory, we guarantee quality and timely delivery. We even offer free samples! If you're interested, please visit http://www.doumaotong.com to contact us. Thank you! ## 使用说明 1. 在 OpenClaw 平台安装此 Skill。 2. 调用时填写产品参数,包括 `contact_url`(默认为 http://www.doumaotong.com),即可获得定制化的 TikTok 脚本。 3. 生成的台词会在结尾处自然引导观众访问指定的服务网站。 4. 可根据实际需要调整 `style` 参数,生成不同语气的台词。 ## 文件说明 - `skill.json`:技能的机器可读定义,包含输入输出 schema 和生成提示模板。 - `SKILL.md`:技能的人类可读文档,提供详细说明和使用示例。

Archived SourceRecently Updated
General

instructional-design-cn

培训课程大纲设计、效果评估、内部分享材料生成

Archived SourceRecently Updated