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

PineScript策略无开仓问题求助:ta.highest函数逻辑存疑

问题分析与解决方案

核心原因

你的策略无法开仓的问题出在对ta.highest()函数的理解上:ta.highest(high, 7)默认会包含当前K线的high值。而当前K线的high必然大于等于close,所以close > ta.highest(high, 7)这个条件永远无法成立——因为当前high已经被纳入最高值计算,close不可能超过它。

修改后的代码

要实现“收盘价高于前7日(不含当前K线)最高高点”的逻辑,需要用ta.highest(high, 7)[1]来引用上一根K线结束时的7周期最高值,排除当前K线的影响:

//@version=5
strategy("La mia strategia", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100  )

// 判断当前收盘价突破上一根K线的7周期最高值
longCondition = close > ta.highest(high, 7)[1]
// 平仓条件同步修改逻辑
closeCondition= close < ta.lowest(low, 7)[1]

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

if closeCondition
    strategy.close("My Long Entry Id")

关键说明

  • ta.highest(source, length)的计算范围是当前K线往前数length根K线(包含当前),若要排除当前K线,必须通过[1]引用前一根K线的计算结果。
  • 平仓条件的ta.lowest(low,7)也需要同步修改,否则会出现同样的逻辑失效问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:33:10