返回技能市场
通用工具 安全

A股成交截图转表格·交割单识别·成交记录转CSV·同花顺东财

@user_2ckqg/satloot-trade-screenshot-csv

A股成交截图转表格(交割单截图识别、历史成交转 CSV、炒股记录整理):手机券商 App 导不出成交记录?直接发同花顺、东方财富、通达信、华泰涨乐、国泰君安君弘、平安证券等成交页 / 交割单的截图,或者把成交文字粘贴过来,逐行照抄成一张标准成交记录表(CSV)。

user_2ckqg 热度 50v0.1.0

A股成交截图 / 粘贴文字 → 标准成交记录表

这个技能解决什么

很多人想用「交易纪律教练」「A股交易账本分析」「炒股交易日记」复盘,卡在第一步:手里没有券商导出的成交文件(手机 App 导不出、电脑版不会找)。这个技能让用户直接发成交页截图,或者粘贴一段成交文字,整理成一张标准表格,接着交给上面三个技能用。

分工:

  • 看图抄字由你(模型)来做:按下面的「照抄规则」逐行抄成文字。
  • 规整和自检交给脚本scripts/normalize.py 把你抄出来的粗糙文字整理成标准表格,并逐行核对金额、代码、日期、重复、T+1,把有问题的行列出来。

第一步:先提醒隐私(每次收截图前说一句)

截图前请先把资金账号、股东账号、姓名、身份证号遮掉或裁掉,只留成交那几列就够了。截图我只用来抄数字,不会保存;整理出来的表格只存在你自己电脑上。

用户已经发来带账号的截图:照常抄成交数据,账号、姓名一律不抄,并提醒他以后遮一下。

第二步:逐行照抄(最重要)

把截图当成一张表,一笔成交抄一行,第一行写表头。优先用截图上的原列名;列名看不出时用标准表头:

成交日期	成交时间	证券代码	证券名称	买卖标志	成交价格	成交数量	成交金额	手续费	印花税	过户费

照抄规则:

  1. 只抄看得见的,不补、不猜、不算。 看不清的格子写 ?(哪怕只是一位数字看不清,也写成 14?0.00 这样)。截图上没有的列就不写这一列,不要自己用价格 × 数量去算成交金额填进去,也不要按费率去估手续费。
  2. 数字原样抄:小数位、千分位照截图写(142,000.00 可以原样抄,脚本会处理)。不要四舍五入。
  3. 证券代码照抄 6 位,前面的 0 一个都不能丢(000001002594)。截图上只看得到名称、看不到代码的,代码写 ?,然后问用户。
  4. 买卖方向照抄原文:「证券买入」「担保品卖出」「融资买入」「卖券还款」「B / S」都直接抄,脚本会统一。看到「撤单」「已撤」「废单」的行也照抄,脚本会自动跳过;委托页(只有委托价、委托数量,没有成交价)不是成交记录,请用户换「成交」页再截。
  5. 日期时间:截图上写什么抄什么(09-232026/9/23202609239月23日 14:05 都行)。只有月日没有年份时,问一句是哪一年,跑脚本时加 --year;用户说不清就按脚本默认(今年,晚于今天的算去年)并告诉他。App 成交页常常只显示时间、日期在分组标题上(例如「09-23」下面列了几笔),把那个日期抄到每一行上。
  6. 卡片式页面(每笔一张卡片:名称、代码、买入、成交价、成交量、成交额、时间):每张卡片抄成一行,带着标签抄也行,例如 贵州茅台 600519 买入 成交价:1420.00 成交量:100 成交额:142000.00 2026-09-16 09:31:20
  7. 多张截图:按截图顺序接着抄,重叠的部分也照抄,脚本会去重。每张图开头有表头就再抄一次表头。
  8. 页面上的合计行、资金余额、「共 N 条」:不用抄;抄了也会被跳过。

抄完先自己对一遍:成交价乘股数和成交金额差得多的行,先回头看图

第三步:跑脚本规整、自检

把抄好的文字存成文本文件(例如 抄录.txt),然后:

python {baseDir}/scripts/normalize.py --in 抄录.txt --out 成交记录.csv

常用选项:

  • --year 2026:日期没写年份时指定年份。
  • --in 图1.txt 图2.txt:多张截图分开存的,一起传,自动合并、去重、排序。
  • --in 成交记录.csv 新抄的.txt:往上次整理好的表里续上新截图。
  • --keep-flagged用户对着截图确认过数字确实没抄错,金额对不上的那几行也写进表格。
  • 用户想先看看效果:python {baseDir}/scripts/normalize.py --in {baseDir}/assets/sample_transcript.txt --out 样例成交记录.csv(样例里故意放了一行金额对不上、一行看不清的数字)。

脚本退出码:0 全部通过;3 表格已写出,但有几行待确认、暂时没写进去;2 出错(按「出错了 / 下一步」照做)。

第四步:把结果讲给用户

按脚本输出,用大白话告诉用户:

  1. 写进了几笔、日期范围
  2. 金额对不上的行:把脚本给的那句「按成交价多少成交多少股应是多少元,但抄到的是多少,差多少」告诉用户,请用户对着截图说哪个数对。不要自己决定改哪个数。
  3. 看不清、缺格的行:逐行问用户,拿到答案后改文本重跑。
  4. 提示:代码补了前导零、没写年份按哪年算、疑似重复、T+1 冲突(当天买的当天卖了,除非之前就有底仓)、买入不是 100 股整数倍——逐条给用户确认,不是错误就不用改。
  5. 隐私提示:原文里有账号、姓名、证件号的,告诉用户这些没写进表格,建议把原截图删掉或遮掉。

退出码是 3 的时候,不要拿这份表去复盘,先把待确认的行问清楚。用户说「那几笔不要了」才可以直接用。

第五步:交给下游技能

全部通过后,告诉用户表格存在哪,并给下一步:

| 用户想要 | 下一步 | |---|---| | 查自己追涨、补仓、超亏线这些毛病 | 用「交易纪律教练」读这份 成交记录.csv | | 算到底赚了多少、手续费花了多少 | 用「A股交易账本分析」读这份表 | | 核对哪几笔是没写计划就下的单 | 用「炒股交易日记」的周报/月报,带上这份表 |

表头已经按这三个技能能直接认的列名写好(见 references/output-format.md)。

用户说大白话 → 你怎么做

| 用户这么说 | 你怎么做 | |---|---| | 「App 导不出成交记录,我截了几张图」(附 3 张截图) | 先说一句隐私提醒;三张图按顺序逐行照抄进一个文本文件(每张图的表头也抄上);跑 normalize.py --in 抄录.txt --out 成交记录.csv;按第四步讲结果 | | 「这是我复制的成交记录」(粘贴了一段对不齐的文字) | 文字原样存成文本文件,不用你先排版;直接跑脚本;认不出的行按脚本列出来的问用户 | | 「截图上只有 09-18 这种日期,是今年的」 | 跑脚本时加 --year 2026 | | 「第 5 行那个价格是 31.50,截图糊了」 | 把抄录里那一格的 3?.50 改成 31.50,重跑,确认那一行通过金额自检 | | 「那个 142600 是我抄错了吗?截图上确实是 142600」 | 说明按 1420 成交 100 股应是 142000,差 600;请用户再看成交价或股数有没有看错。用户坚持截图就是这样,才加 --keep-flagged,并提醒这一笔的金额和价格对不上,后面的盈亏可能有偏差 | | 「今天又截了两张,接着上次那份表」 | normalize.py --in 成交记录.csv 新抄录.txt --out 成交记录.csv,重叠的成交会自动去重 | | 「整理好了,帮我看看我有没有追涨」 | 这张表交给「交易纪律教练」;本技能到此为止 | | 「截图里这只票能不能买?」 | 说明这个技能只整理你自己的成交记录,不评价股票、不给买卖建议 |

不做什么

  • 不推荐股票、不预测涨跌、不评价任何一笔操作的好坏(那是纪律教练和账本分析的事,而且它们也只看你自己的规则)。
  • 不联网,不取行情,不去查代码对应哪只股票;名称、代码都以截图为准。
  • 不补数、不猜数:看不清就问;缺的列就空着;不用价格去反推金额,也不按费率估手续费。
  • 不保存截图,不抄资金账号、股东账号、姓名、身份证号;表格只写在用户自己电脑上。
  • 只面向 A股(沪深北)的股票、基金成交记录。
  • 不处理资金流水、持仓页、委托页:只整理「成交」记录。

参考

  • references/broker-columns.md:各券商成交页的常见列名、买卖写法、日期写法。
  • references/output-format.md:输出表格的列名,以及为什么下游三个技能都能直接读。
qianwen skills install @user_2ckqg/satloot-trade-screenshot-csv