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

如何仅在10:00-15:00时段执行交易?Pine Script报错求助

解决Pine Script时间窗口开仓的类型报错问题

问题根源

你用TimeWindow=time(timeframe.period,"1000-1500", "GMT")获取时间窗口,这个time()函数返回的是对应时段起始的时间戳(整数类型),不在窗口内时返回0。而strategy.entry的if条件需要布尔值(true/false),直接把整数变量和其他布尔条件用and连接,就会触发类型不匹配的报错。

两种修复方案

  • 方案一:用专门的时间范围判断函数(推荐)
    Pine Script提供了time_in_range()函数,直接返回布尔值,无需手动处理类型转换:

    // 判断当前是否在10:00-15:00 GMT区间内
    isTradingWindow = time_in_range(timeframe.period, "1000-1500", "GMT")
    
  • 方案二:手动将整数转为布尔值
    利用不在窗口时time()返回0的特性,通过判断是否非零得到布尔值:

    TimeWindow = time(timeframe.period, "1000-1500", "GMT")
    isTradingWindow = TimeWindow != 0
    

完整示例代码

结合简单的均线交叉策略,仅在指定时间窗口内开仓:

//@version=5
strategy("时间窗口开仓策略", overlay=true)

// 定义时间窗口条件
isTradingWindow = time_in_range(timeframe.period, "1000-1500", "GMT")

// 均线条件
smaFast = ta.sma(close, 50)
smaSlow = ta.sma(close, 200)
longCondition = ta.crossover(smaFast, smaSlow)
shortCondition = ta.crossunder(smaFast, smaSlow)

// 仅在时间窗口内执行开仓
if (longCondition and isTradingWindow)
    strategy.entry("做多", strategy.long)

if (shortCondition and isTradingWindow)
    strategy.entry("做空", strategy.short)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:20:02