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

如何在Pine Script中获取strategy.closedtrades中每笔交易的买入年份?

获取Pine Script中已平仓交易的买入年份

当然可以实现!你遇到的两个问题其实都有对应的解决方案,咱们一步步来看:

方法一:直接从交易入场时间提取年份

你提到用strategy.closedtrades.entry_time[num_trade]但不知道怎么提取年份——其实这个值本身就是datetime类型(不是Unix时间戳),可以直接用Pine Script内置的year()函数来提取年份,完全不需要额外转换。

示例代码:

//@version=5
strategy("提取已平仓交易买入年份", overlay=true)

if barstate.islast
    // 遍历所有已平仓交易
    for i = 0 to strategy.closedtrades - 1
        entry_year = year(strategy.closedtrades.entry_time[i])
        // 在图表上标注年份
        label.new(bar_index, high - i*15, str.tostring(entry_year), color=color.blue, textcolor=color.white)
        // 控制台输出交易信息
        var table trade_table = table.new(position.top_right, 2, 1)
        table.cell(trade_table, 0, i+1, str.tostring(i+1) + "号交易")
        table.cell(trade_table, 1, i+1, "买入年份:" + str.tostring(entry_year))
    
    // 模拟交易(方便测试)
    if bar_index % 100 == 0
        strategy.entry("Test Long", strategy.long)
    if bar_index % 100 == 50
        strategy.close("Test Long")

这个方法最直接,也不会出现K线数量不足的报错,因为entry_time是交易记录自带的属性,不需要依赖图表加载的K线。

方法二:通过入场Bar索引提取年份(解决报错问题)

如果你一定要用strategy.closedtrades.entry_bar_index,报错的原因是:当这笔交易对应的入场K线不在当前图表加载的K线范围内时,直接访问year[entry_bar_index]会触发越界错误。解决方式是先判断该Bar索引是否有效(即对应的K线存在于当前图表中)。

示例代码:

//@version=5
strategy("通过Bar索引提取买入年份", overlay=true)

if barstate.islast
    total_closed = strategy.closedtrades
    for i = 0 to total_closed - 1
        entry_bar = strategy.closedtrades.entry_bar_index[i]
        // 先检查Bar索引是否在当前图表的加载范围内
        if not na(entry_bar) and entry_bar >= bar_index - bar_count + 1
            entry_year = year[entry_bar]
            label.new(bar_index, high - i*15, str.tostring(entry_year), color=color.red, textcolor=color.white)
        else
            label.new(bar_index, high - i*15, "无历史K线数据", color=color.gray, textcolor=color.white)

这里的bar_count是当前图表加载的K线总数,通过entry_bar >= bar_index - bar_count + 1可以判断该Bar是否在加载范围内,避免越界报错。

总结

优先推荐方法一,因为它更简洁可靠,不需要依赖图表加载的K线数量,直接从交易记录的入场时间提取年份即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:59:06