均线交叉(moving average crossover)是趋势追踪里最经典也最易上手的方法。借助Pine Script,你可以在TradingView上一站式完成指标编写、可视化、回测与优化。本指南将用中文逐行拆解,带你把“50日均线上穿200日均线”做成 稳健可复用的策略脚本。
核心关键词
- Pine Script
- 移动平均线
- 均线交叉策略
- 回测
- 趋势追踪
- TradingView
- 信号生成
- 风险管理
第1章:明确两条均线的角色
均线交叉的核心思路 一条短周期、一条长周期,短周期更敏感,长周期代表大方向。
常见组合示例:
- 5 日与 20 日(波段交易者最爱)
- 50 日与 200 日(经典“金叉”与“死叉”)
选定周期逻辑:快节奏市场选小数字,震荡市适当放大,避免噪音。选好后,把它代入 sma(close, length) 或 ema(close, length) 即可。
第2章:用Pine Script导入并计算数据
- 打开 TradingView → Pine 编辑器。
- 输入下列骨架代码:
//@version=5
strategy("均线交叉策略", overlay = true)
// 参数输入
shortLen = input.int(50, "短周期")
longLen = input.int(200, "长周期")
// 计算均线
shortMA = ta.sma(close, shortLen)
longMA = ta.sma(close, longLen)
// 绘图
plot(shortMA, color = color.blue, linewidth = 2)
plot(longMA, color = color.red, linewidth = 2)此时图表就能同时展示两条平滑的移动平均曲线。
第3章:生成买入与卖出信号
用三行条件语句即可完成:
// 信号触发条件
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)
// 订单生成
if longCondition
strategy.entry("做多", strategy.long)
if shortCondition
strategy.entry("做空", strategy.short)为了让 信号醒目 ,追加 plotshape():
plotshape(longCondition, style = shape.triangleup, location = location.belowbar,
color = color.green, size = size.small, title = "买")
plotshape(shortCondition, style = shape.triangledown, location = location.abovebar,
color = color.red, size = size.small, title = "卖")第4章:加入止盈止损逻辑
没有风控的策略如同裸奔。可在原有基础上插入:
// 风险参数
riskPerc = input.float(2, "止损百分比") / 100
takePerc = input.float(4, "止盈百分比") / 100
strategy.exit("出场", from_entry = "做多",
stop = close * (1 - riskPerc), limit = close * (1 + takePerc))
strategy.exit("出场", from_entry = "做空",
stop = close * (1 + riskPerc), limit = close * (1 - takePerc))这样当价格向不利方向移动 2% 或向有利方向移动 4% 时,系统会自动平仓。
第5章:一键回测与可视化绩效
点击 “添加到图表” 后,TradingView 左侧会出现“策略测试”标签,内含:
- 净利润与最大回撤
- 胜率、盈亏比
- 逐笔成交清单
👉 想用更高级的滑点与手续费模型优化收益率?点这里测试不同参数组合!
第6章:动态优化参数
借助 input.int() 和策略报告中的 夏普比率、盈亏曲线平滑度,反复挪移:
- 短周期:10 ~ 100
- 长周期:50 ~ 250
找到最优区间后:
- 在参数前加
step = 5形成滚动优化; - 使用 TradingView 自带的 “策略重放”,模拟最近一年行情,观察过度拟合风险。
⚠️ 不要只追求高回报,小幅回撤且稳定的曲线才是长期生命线。
第7章:风险管理与资金管理七条金律
- 每笔交易风险 ≤ 账户权益的 2%
- 不要满仓,仓位最高不超过 50%
- 连续回撤 3 天就停机复盘
- 把策略逻辑写在 README,持续撰写交易日志
- 实时监测品种的波动率 ATR,动态调整止损
- 定期用新数据“滚动窗口”回测,淘汰失效均线组
- 遇到黑天鹅事件(跳空高开/低开),须人工干预强制平仓
常见疑问 FAQ
Q1:EMA 优于 SMA 吗?
A:EMA 对最近价更敏感,适合高频剥头皮;SMA 平滑度高,适合中长线。可对比两者在同一周期的最大回撤再决定。
Q2:为何回测盈利、实盘亏损?
A:常见原因:未计滑点、杠杆、停牌导致数据缺口。前往策略设置里开启 “应用滑点 × 点差”,并模拟 STEPx10~30 点。
Q3:如何判断参数是否过拟合?
A:把全样本拆成训练集(前 70%)与测试集(后 30%),若测试集明显跑不动,即为过拟合。
Q4:能让策略只交易固定时间段吗?
A:可以,加入If语句 if hour < 14 and hour > 9 即可限制欧盘时段。
Q5:多品种同时运行策略如何实现?
A:订阅 Pine Script Multi-Timeframe 功能,对每个品种单独跑脚本,或用 webhook 将信号推送到本地量化终端。
Q6:华泰中文券商能直接接入吗?
A:TradingView 暂不支持直连国内券商,但可通过 Webhook → 量化交易终端 → 券商 API 间接下单。关注合规风险。
第8章:把策略文档化,形成可持续迭代的护城河
- 代码行注释:每段逻辑写清 “为什么这样算”
- 版本号:使用 git tag
v1.3.2追踪每一次大的改动 - 策略手册:记录参数、胜率、平均持仓天数,方便半年后复盘
长期来看,完善的文档能帮你在市场风格转换时迅速定位并微调脚本。
结语
用 Pine Script 打造均线交叉策略,门槛极低,却也要有长期纪律与风险管理。把今天布线、调参、回测的流程固化,你就在 趋势追踪 路上拥有了“可视化 + 低成本 + 自动化”三大竞争优势。持续记录、滚动优化,让策略的生命力随时间一起增长。祝你下一根金叉或死叉出现时,做决策时心里有数。