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

如何在Pine Script中实现交易日自动顺延的年度季节性做多策略?

Pine Script 日线策略:指定日期非交易日自动顺延开仓修改方案

问题背景

需要实现仅做多的日线级交易策略,每年在指定日期开仓、另一指定日期平仓。原代码直接匹配当日月/日,若指定开仓日为非交易日(周末/节假日)则无法触发开仓,导致OANDA:XAGUSD在2018、2019年无交易记录,需修改代码实现非交易日自动顺延至下一交易日开仓。

修改后的完整代码

//@version=5
strategy('Seasonal Trading Strategy', overlay=true, initial_capital = 10000, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Input to enable or disable Rule 1
enableRule1 = input(true, 'Rule 1')

// Input for long position opening date - Rule 1
longEntryMonth1 = input.int(6, 'Entry Month (1-12)', minval = 1, maxval = 12)
longEntryDay1 = input.int(29, 'Entry Day (1-31)', minval = 1, maxval = 31)

// Input for long position closing date - Rule 1
longExitMonth1 = input.int(8, 'Exit Month (1-12)', minval = 1, maxval = 12)
longExitDay1 = input.int(30, 'Exit Day (1-31)', minval = 1, maxval = 31)

// 记录已开仓的年份,避免单年内重复触发
var int lastEntryYear = 0
// 记录已平仓的年份,避免单年内重复触发
var int lastExitYear = 0

// 生成当年的目标开仓/平仓时间戳
currentYear = year(time)
targetEntryTime = timestamp(currentYear, longEntryMonth1, longEntryDay1, 0, 0)
targetExitTime = timestamp(currentYear, longExitMonth1, longExitDay1, 0, 0)

// 判断是否为目标开仓日之后的第一个交易日,且当年未开仓
enterLong1 = enableRule1 and (time > targetEntryTime) and (time[1] <= targetEntryTime) and (currentYear != lastEntryYear)
// 判断是否为目标平仓日之后的第一个交易日,且当年未平仓
exitLong1 = enableRule1 and (time > targetExitTime) and (time[1] <= targetExitTime) and (currentYear != lastExitYear)

// Execute strategy
if (enterLong1)
    strategy.entry('Long Rule 1', strategy.long)
    lastEntryYear := currentYear  // 更新已开仓年份

if (exitLong1)
    strategy.close('Long Rule 1')
    lastExitYear := currentYear  // 更新已平仓年份

关键修改说明

  • 时间戳精准匹配:通过timestamp()函数生成当年目标开仓/平仓的精确时间点,替代原代码直接匹配月/日的逻辑
  • 顺延交易日判断:对比当前K线与上一根K线的时间,确认当前K线是目标日期之后出现的第一根K线(即第一个交易日)
  • 年份锁机制:用var变量记录已执行开仓/平仓的年份,避免单年内因K线波动重复触发交易信号
  • 平仓逻辑同步优化:平仓环节同样采用顺延交易日判断,避免平仓日为非交易日时无法平仓的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:07:37