You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script策略问题:昨日收阳次日做多逻辑图表异常

问题排查与修正:Pine Script V3 阳线次日买入策略

咱们先拆解下你代码里的核心问题,这就是导致图表不符合预期的根本原因:

1. 阳线判断逻辑完全错误

你写的 bullish = open[1] < open,这个条件是当前K线开盘价高于前一天开盘价,和你要的“前一天是阳线(收盘价>开盘价)”完全不沾边。阳线的正确判断应该是前一根K线的收盘价大于开盘价,也就是:

bullish = close[1] > open[1]

2. 平仓逻辑不符合预期

你用 strategy.close("buy", not bullish),这里的 not bullish 对应的是当前K线开盘价不高于前一天开盘价,和你想要的“非阳线时平仓”逻辑脱节。正确的平仓条件应该是当前不再满足买入触发条件(即前一天不是阳线),也就是用修正后的 not bullish 即可。

3. 订单执行时机的细节

默认情况下,strategy.entry 会在满足条件的K线收盘价进场,但你的需求是“阳线次日开盘买入”,所以需要明确指定在当前K线的开盘价执行买入订单,避免延迟进场。

修正后的完整代码

//@version=3
strategy("Yesterday Cat", overlay=true)

// 定义阳线条件:前一根K线收盘价>开盘价
bullish = close[1] > open[1]
// 时间过滤条件
timeFilter = time > timestamp(2018, 01, 01, 0, 0)

// 阳线次日开盘买入:指定在当前K线开盘价进场
strategy.entry("buy", strategy.long, 1, when=bullish and timeFilter, limit=open)
// 当不再满足阳线条件时平仓(前一天不是阳线)
strategy.close("buy", when=not bullish and timeFilter)

逻辑验证

  • 当K线2是阳线(close[2]>open[2]),那么K线3的 bullish 条件为true,会在K线3开盘时触发买入,完全符合你的预期。
  • 当K线5不是阳线(close[5]<=open[5]),那么K线6的 not bullish 条件为true,会触发平仓,和你预想的一致。

内容的提问来源于stack exchange,提问作者Molibar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:32:23