返回开发者指南

Pine Script做A股回测:数据、成交时序与成本检查

在 A 股数据上使用 Pine Script,先明确一段策略测试的边界:数据如何复权,信号何时产生,订单按什么假设成交,以及哪些市场规则没有被模型完整模拟。语法能运行只是第一步。

从简单规则开始

在观潮顶部「策略」入口进入编辑器,选定标的、周期与区间。先写一组明确的入场和离场条件,编译后找到一次历史触发,核对信号 K 线与成交 K 线。脚本与回测属于观潮 Plus。

下面的均线交叉只用于说明流程,没有经过收益验证。

//@version=5
strategy("SMA 20/50 Example", overlay=true)
fast = ta.sma(close, 20)
slow = ta.sma(close, 50)
if ta.crossover(fast, slow)
    strategy.entry("Long", strategy.long)
if ta.crossunder(fast, slow)
    strategy.close("Long")

核对数据与执行假设

记录复权、周期、数据起止、订单数量、成本与滑点。默认下一根开盘成交与收盘成交是假设不同的模型,不应只比较最终收益。OHLC 历史路径也不能还原真实逐笔顺序。

A 股 T+1、涨跌停、停牌、整手和具体费用规则需要另行处理。通用 Pine 撮合并不自动完整还原这些约束;简化规则应明确写出未覆盖的情况,而不是说已经模拟真实实盘。

成本与样本外怎样加入

先保存理想零成本结果,再增加明确的成本假设。检查哪些历史交易对成本敏感,并留出没有参与调参的数据。参数优化之后再反复修改测试集,会削弱样本外检验的意义。

可使用 Walk-Forward 检查滚动窗口,重点看各窗口差异、样本量和参数稳定性,而不是只看合并总收益。

留下可复查的版本

保存源码、参数、数据范围、成本模型与交易明细。图表 Agent 可辅助解释和生成草稿,但编译试跑不等于策略有效;实际历史运行由用户选择。

继续阅读完整验证报告、Pine 使用指南和回测偏差。原语言行为可核查TradingView 策略文档。

代码仅用于学习研究,不构成投资建议。