开发者指南

5 分钟写你的第一个策略

从零开始,用 Pine Script 编写一个双均线交叉策略,并在 A 股数据上运行回测。

第 1 步:打开脚本编辑器

在应用主界面底部,点击「脚本编辑器」面板标签,或使用快捷键 Ctrl+E 打开编辑器。

第 2 步:编写指标脚本

先从一个简单指标开始,熟悉语法:

我的第一个指标
"hl-comment">//@version=5
"hl-keyword">indicator("我的双均线", overlay="hl-keyword">true)

"hl-comment">// 计算快慢均线
fast = "hl-namespace">ta.sma("hl-builtin">close, 5)
slow = "hl-namespace">ta.sma("hl-builtin">close, 20)

"hl-comment">// 绘制到图表上
plot(fast, "快线", color="hl-namespace">color.blue, linewidth=2)
plot(slow, "慢线", color="hl-namespace">color.red, linewidth=2)

"hl-comment">// 标记金叉和死叉
"hl-keyword">if "hl-namespace">ta.crossover(fast, slow)
    "hl-namespace">label.new("hl-builtin">bar_index, "hl-builtin">low, "金叉", color="hl-namespace">color.green)
"hl-keyword">if "hl-namespace">ta.crossunder(fast, slow)
    "hl-namespace">label.new("hl-builtin">bar_index, "hl-builtin">high, "死叉", color="hl-namespace">color.red)
//@version=5 声明 Pine Script 版本。indicator() 声明这是一个指标脚本,overlay=true 表示叠加在主图上。

第 3 步:转换为策略脚本

indicator() 改为 strategy(),加入买卖逻辑:

双均线交叉策略
"hl-comment">//@version=5
"hl-keyword">strategy("双均线策略", overlay="hl-keyword">true)

fast = "hl-namespace">ta.sma("hl-builtin">close, 5)
slow = "hl-namespace">ta.sma("hl-builtin">close, 20)
plot(fast, "快线", color="hl-namespace">color.blue)
plot(slow, "慢线", color="hl-namespace">color.red)

"hl-comment">// 金叉买入
"hl-keyword">if "hl-namespace">ta.crossover(fast, slow)
    "hl-keyword">strategy.entry("做多", "hl-keyword">strategy.long)

"hl-comment">// 死叉卖出
"hl-keyword">if "hl-namespace">ta.crossunder(fast, slow)
    "hl-keyword">strategy."hl-builtin">close("做多")

第 4 步:运行回测

点击编辑器上方的「运行」按钮。脚本会在当前图表的 K 线数据上执行,自动生成回测报告。 你会看到买卖点标记、权益曲线、以及详细的绩效指标(胜率、夏普比率、最大回撤等)。

观潮会自动应用 A 股交易规则 —— T+1 卖出限制、涨跌停判断、佣金+印花税+过户费,无需手动配置。

第 5 步:添加止盈止损

带止盈止损的完整策略
"hl-comment">//@version=5
"hl-keyword">strategy("均线策略 + 止盈止损", overlay="hl-keyword">true)

fast = "hl-namespace">ta.sma("hl-builtin">close, 5)
slow = "hl-namespace">ta.sma("hl-builtin">close, 20)

"hl-keyword">if "hl-namespace">ta.crossover(fast, slow)
    "hl-keyword">strategy.entry("做多", "hl-keyword">strategy.long)

"hl-comment">// 止盈 8%,止损 3%
"hl-keyword">strategy.exit("止盈止损", "做多",
     profit="hl-builtin">close * 0.08,
     loss="hl-builtin">close * 0.03)

"hl-keyword">if "hl-namespace">ta.crossunder(fast, slow)
    "hl-keyword">strategy."hl-builtin">close("做多")

下一步

恭喜!你已经写出了一个可运行的量化策略。接下来可以:

  • 查看 策略开发指南 了解更多订单类型和仓位管理
  • 查看 A 股回测专区 了解 T+1、涨跌停等规则
  • 浏览 API 文档 查找所有可用函数
  • 使用编辑器内置的「模板」功能,从 80+ 个策略模板中选择并修改