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

每日时间框架仅周一开仓策略:非周五周尾场景适配问询

解决方案

要解决节假日周尾提前导致的开仓逻辑失效问题,核心是动态识别当周的最后一个交易日,而非固定绑定周四或周五。以下是调整后的Pine Script代码及说明:

代码思路

  • 适配SPX500的纽约交易时区,避免UTC时区偏差影响日期判断
  • 通过比较当前K线与下一根K线的周数,自动识别当周最后一个交易日
  • 修正原代码中开仓后立即平仓的错误逻辑,确保严格执行“仅周一开仓”的需求

调整后的代码

strategy("周一开仓策略", overlay=true, default_qty_type=strategy.cash, default_qty_value=10000, commission_type=strategy.commission.percent, commission_value=0.1)

// 交易标的:OANDA:SPX500USD,指定纽约时区
trade_tz = "America/New_York"

// 判断当前是否为纽约时间的周一
is_monday = dayofweek(time(tz=trade_tz)) == dayofweek.monday

// 动态识别当周最后一个交易日:下一根K线属于下周,或当前为最后一根K线
is_week_last_bar = na(time_close(tz=trade_tz)[1]) or weekofyear(time(tz=trade_tz)) != weekofyear(time(tz=trade_tz)[1])

// 开仓逻辑:仅在周一执行开多操作
if is_monday
    strategy.entry("Long", strategy.long)

// 平仓逻辑:当周最后一个交易日平仓
if is_week_last_bar and strategy.position_size > 0
    strategy.close("Long", comment="周尾平仓")

// 标记信号便于验证
plotshape(is_monday, title="周一开仓", location=location.belowbar, color=color.green, style=shape.labelup, text="开仓")
plotshape(is_week_last_bar, title="周尾平仓", location=location.abovebar, color=color.red, style=shape.labeldown, text="平仓")

关键调整点

  • 动态周尾识别:is_week_last_bar通过周数对比判断当前K线是否为当周最后一个交易日,无论节假日导致周尾提前到周四还是正常周五,都能准确触发后续逻辑
  • 时区校准:强制使用纽约时区判断日期,避免OANDA平台UTC时区与美股交易时间的偏差
  • 逻辑修正:替换原代码中开仓后立即平仓的错误逻辑,严格实现“周一开仓、周尾平仓”的交易规则

若你的原逻辑是在周尾挂单,让订单于周一自动成交,可将开仓部分代码替换为以下条件订单逻辑:

// 在周尾挂下周一开盘价的限价开仓单
if is_week_last_bar
    strategy.entry("Long", strategy.long, limit=open[1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:15:39