开发者指南
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("做多")
下一步
恭喜!你已经写出了一个可运行的量化策略。接下来可以: