04 · 分析与脚本化
前面几篇解决了「用什么看、去哪拿数据、在哪交易」,本篇解决「怎么把分析做成一件可以重复的事」。
手工分析的问题不是不够努力,而是**不可复现**:同样的 K 线,昨天和今天画的线可能不一样;同样的逻辑,换个标的又要重新来一遍。本篇从 TradingView 的深度用法讲起,到通达信公式、Excel **复盘**表、Python 工作流,再到 AI 辅助分析的边界——最后给出「脚本化分析」的正确打开方式。
⚠️ 风险提示
任何工具的信号与回测结果都只是历史统计,不构成对未来的预测;Pine Script/通达信公式的回测与实盘存在**滑点、手续费、未来函数等系统性偏差。AI 生成的分析内容可能包含事实错误与幻觉**,务必人工核验。本文所有示例仅用于学习与研究,不构成任何投资建议。市场有风险,投资需谨慎。
一、TradingView 深度用法
TradingView 的价值不只是「画图好看」,而是它把「看盘 → 分析 → 回测 → 监控」放进了同一个工作流。
1.1 图表与多周期联动
- 多图布局:同一标的开多个图表,分别看日线/小时/分钟,或用「多时间周期视图」在单图上叠加;
- 多周期联动:主图用日线、副图用更短周期指标,是判断「大周期方向 + 小周期入场」的标准操作(方法论见 06-技术分析篇);
- 画线工具:趋势线、水平线、斐波那契、通道、射线的保存与布局管理——分析结论应该以「能保存、能导出」的方式沉淀,而不是画完就丢;
- 警报(Alerts):价格/指标触发条件时推送通知(邮件、Telegram 等),是「半自动监控」的免费起点。
1.2 Pine Script:能做与不能做的
Pine Script 是 TradingView 的脚本语言,免费账号即可编写并公开/私有发布指标:
| 能做 | 不能做(或受限制) |
|---|---|
| 自定义指标、K 线形态识别、多条件信号标注 | 完整的多标的组合策略、事件驱动逻辑 |
| 在图表上绘制任意序列与图形 | 直接下单交易(官方 API 有限制,地区与资质条件各异) |
策略回测(strategy() 框架,含手续费/滑点参数) | 大规模参数寻优、样本外严谨测试 |
| 调用内置指标与函数库 | 读取外部数据源(基本面/另类数据) |
- 回测定位:Pine Script 回测适合快速验证想法,其撮合假设、滑点模型与佣金处理都偏简化,结论仅作参考;
- 进阶研究建议:想法验证后,到 Python 里用更严谨的数据与回测框架复现(见 15-量化实战篇)。
1.3 策略回测功能
- 参数:初始资金、手续费率、滑点、单笔风险占比等均可设置;
- 指标:净收益、最大**回撤、胜率**、利润因子、夏普等;
- 注意:默认回测按收盘价或下一根开盘价成交,且不自动处理停牌、涨跌停、流动性——结果偏乐观。
二、通达信公式:A 股散户的指标自定义
- 通达信公式的定位、语法与三档用法(指标/选股/交易系统)见 01-行情软件全景;
- 指标自定义:把「自己的规则」写成公式(如「均线多头排列」「MACD 底背离提示」),让软件替你盯,而不是你盯着软件;
- 条件选股:
选股器 → 条件选股,用公式在全市场筛出符合形态的股票池,再人工复核——公式只能做初筛,筛选结果必须人工看(避免捡到问题股); - 正确姿势:
- 公式从简单开始:先复现一个你信得过的公开指标,再改参数理解其行为;
- 公式结果与手工画线交叉验证:公式没问题的前提是规则表达清晰;
- 网上「付费破解指标」基本都是公开指标改名,不值得买。
// 教学示意:N 日内创新高选股(语法以具体版本为准)
HHV(H, N) = H;三、Excel 在交易中的应用
Excel 是「不写代码的人最好的脚本语言」,用于交易的价值常被低估:
| 用途 | 做法 |
|---|---|
| 每日复盘表 | 日期/标的/方向/入场价/出场价/盈亏/盈亏比/主观备注,一表贯穿,月度汇总 |
| 交易统计 | 胜率、盈亏比、最大连续亏损、按月收益——用数据透视表与基础函数即可 |
| 数据整理 | 从行情软件/数据平台导出的 CSV 直接进 Excel 清洗、透视、画图 |
| 计划与执行追踪 | 交易计划的清单化:条件、仓位、止损、止盈,逐项打勾 |
复盘表模板要点(建议列):交易日期、时间、标的、方向、入场价、止损价、止盈价、实际出场价、盈亏金额、盈亏比、持仓时长、策略类型、信号触发理由、本次教训。复盘方法论见 07-交易系统篇。
示例表结构(每笔交易一行,建议冻结首行并加数据验证下拉):
| 日期 | 标的 | 方向 | 入场价 | 止损价 | 止盈价 | 出场价 | 盈亏% | 持仓时长 | 策略 | 触发理由 | 教训 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-08-03 | 螺纹钢 | 多 | 3420 | 3380 | 3520 | 3510 | +2.6% | 2 天 | 突破 | 放量突破 20 日高点 | 止盈早了 |
| 2026-08-05 | BTCUSDT | 空 | 58200 | 59000 | 56000 | 56500 | +2.9% | 1 天 | 均线回归 | 反弹至 MA60 承压 | 无 |
- 每月用透视表汇总:各策略胜率/盈亏比、最大单笔亏损、连续亏损次数——把「感觉」变成「统计」,是复盘唯一正确的打开方式。
⚠️ Excel 的适用边界
注意:Excel 适合「记录与汇总」,不适合「回测与自动化」——当你的分析开始出现「循环引用、几百行 VBA、公式堆叠」时,是时候搬到 Python 了。
四、Python 分析工作流
Python 是个人量化研究的事实标准,与 15-量化实战篇 无缝衔接:
# 教学示意:pandas 读行情 + matplotlib 画图(依赖自装)
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("btc_daily.csv", parse_dates=["date"])
df["ma20"] = df["close"].rolling(20).mean()
plt.figure(figsize=(10, 4))
plt.plot(df["date"], df["close"], label="close")
plt.plot(df["date"], df["ma20"], label="MA20")
plt.legend()
plt.show()| 环节 | 常用库 | 说明 |
|---|---|---|
| 数据处理 | pandas | 行情清洗、重采样、合并、缺失值处理 |
| 指标计算 | TA-Lib / pandas 手写 | 均线、MACD、RSI 等;手写更可控 |
| 可视化 | matplotlib / plotly | matplotlib 出图稳定适合报告;plotly 交互式适合探索 |
| 数据获取 | AKShare / Tushare / 交易所 SDK | 见 02-数据与研究平台 |
| 回测 | 自写 / backtrader 等 | 从简单开始,理解优先于框架 |
工作流建议:以「脚本文件 + 输入输出目录」的组织方式做分析(一个脚本只做一件事),结果与图统一输出到 results/,这样每次分析都可复现、可对比——这正对应 15-量化实战篇 的目录规范。
一个完整的最小分析工作流(教学示意,接口与字段以实际为准):
# step1_fetch.py —— 取数(见 02-数据与研究平台)
# step2_analyze.py —— 计算与出图
import pandas as pd
import plotly.graph_objects as go
df = pd.read_csv("data/btc_daily.csv", parse_dates=["date"])
df["ma20"] = df["close"].rolling(20).mean()
df["ma60"] = df["close"].rolling(60).mean()
# 金叉/死叉信号(只做记录,不构成任何交易指令)
df["golden"] = (df["ma20"] > df["ma60"]) & (df["ma20"].shift(1) <= df["ma60"].shift(1))
fig = go.Figure()
fig.add_trace(go.Candlestick(x=df["date"], open=df["open"],
high=df["high"], low=df["low"], close=df["close"], name="K线"))
fig.add_trace(go.Scatter(x=df["date"], y=df["ma20"], name="MA20"))
fig.add_trace(go.Scatter(x=df["date"], y=df["ma60"], name="MA60"))
fig.write_html("results/btc_ma_signal.html") # 可交互报告,随手可回看
print("信号日期:", df.loc[df["golden"], "date"].tolist())💡 取数与分析拆成两个脚本
要点:取数与分析拆成两个脚本——取数每天跑、分析随时重跑,互不干扰;输出统一进 results/ 方便对比前后版本。
五、AI 辅助分析:用法与局限
LLM(大语言模型)已经能帮你读研报、整理数据、写分析代码,但要清楚它的边界:
| 用法(推荐) | 局限(务必知道) |
|---|---|
| 总结研报/公告要点,提取关键数字 | 会幻觉:可能编造不存在的数字、日期、结论 |
| 把「自然语言规则」翻译成查询/代码片段 | 计算不可靠:不要让 AI 做数值运算,让它写代码、你运行验证 |
| 解释陌生术语、梳理逻辑链条 | 知识有截止时间,政策/费率/规则以最新官方信息为准 |
| 复盘对话:把交易记录丢给它找模式 | 文字没有 K 线上下文,它看到的只是你写下来的描述 |
三条纪律:
- AI 输出的一切事实必须溯源:让它给出处(来源链接/原文段落),给不出就当没说过;
- 代码必须自己跑一遍:AI 写的代码当「草稿」,运行结果与行情软件交叉核对;
- 不要让 AI 做决策:它可以辅助整理信息,但仓位、止损、买卖判断必须来自你的系统(见 07-交易系统篇)。
可复用的提问模板(把任务拆到 AI 能一次完成的最小单位):
任务:总结以下研报的要点。
要求:
1. 只使用文中内容,不要补充研报没有的信息;
2. 输出表格:维度 | 原文要点 | 原文出处(页码/段落);
3. 对每个数字标注它出现在原文的哪一句;
4. 如原文没有的信息,明确写「文中未提及」。「让 AI 标出处 + 允许它说不知道」这两个要求,能把幻觉率压到可接受的范围。
🛑 不要让 AI 做决策,也不要做数值运算
不要让 AI 做决策,也不要做数值运算。 AI 输出的一切事实必须溯源、代码必须自己跑一遍、仓位与买卖判断必须来自你自己的系统——AI 可以辅助整理信息,但决策权永远在人。
六、「脚本化分析」的正确打开方式
把分析做成脚本,价值不在「省时间」,而在可复现、可审查、可升级:
6.1 先有逻辑,再写代码
- 顺序必须是:规则(自然语言)→ 伪代码 → 代码。先能用一句话说清「我在算什么、触发什么条件」,再动手写;
- 反过来(先写代码再补逻辑)的脚本,两周后你自己都看不懂,也无法验证对错;
- 每条规则都要能回答「如果错了,错的形态是什么」——这是发现未来函数与逻辑漏洞的方法。
6.2 代码版本管理
- 用 git 管理脚本与配置(入门见 15-量化实战篇-01);
- 一个脚本 = 一个文件 + 一份注释说明「输入、输出、依赖、更新日期」;
- 禁止把 API Key 提交进仓库——进过 git 历史的密钥视为已泄露(见 05-运行与自动化环境)。
6.3 复盘自动化
- 每日收盘后自动跑一遍「当日信号回顾 + 持仓监控」脚本,输出对比图与关键数据,代替手工复盘;
- 每周/每月自动汇总统计(胜率、盈亏比、回撤),与 Excel 复盘表对应;
- 自动化的边界:自动产出分析、自动提醒,但下单决策留给人或严格验证过的策略(见 15-量化实战篇-04)。
6.4 可复现性自检清单
每次写完一个分析脚本,对照检查:
| 检查项 | 标准 |
|---|---|
| 输入明确 | 数据路径、起止日期、标的写死在配置里或命令行参数 |
| 逻辑清晰 | 任何规则都能用一句话向别人解释(讲不清楚=写不清楚) |
| 无未来函数 | 第 N 天的信号只用第 N 天及之前的数据(用 shift 自检) |
| 输出可追溯 | 图与表格带日期与数据源水印,文件名含生成日期 |
| 版本可控 | 改动进 git,记录「改了什么、为什么改」 |
七、下一步
- 想动手跑数据与回测 → 15-量化实战篇;
- 想让分析脚本 7×24 常驻、自动推送 → 05-运行与自动化环境。
⚠️ 风险提示
所有分析工具的输出都是「对历史数据的加工」,不是对未来的预测:回测存在系统性乐观偏差(滑点、手续费、未来函数、幸存者偏差),AI 辅助内容可能包含幻觉与事实错误,公式与脚本的错误可能在你不知情时默默影响决策。任何信号在用于真实交易前,务必在独立数据源上交叉验证、以人工复核为准。本文所有代码与示例仅用于学习与研究,不构成任何投资建议,市场有风险,投资需谨慎。