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

如何在Pine Script中比较月份?月度图表下识别月份及收益分析

Pine Script 月度图表月份识别与收益标签实现

基础问题解决:正确识别当前K线所属月份

你之前的代码用month(time[0])提取月份本身是可行的,失败原因大概率是标签位置偏移过大(x + 10在月度图中可能超出可视范围)。修正后的极简代码如下:

//@version=5
indicator("月度月份标记", overlay=true)

if barstate.islast
    curr_month = month(time[0])
    // 直接在当前K线收盘价位置显示月份
    label.new(bar_index, close, str.tostring(curr_month), color=color.blue, textcolor=color.white)

在月度图表中,month(time[0])会准确返回当前K线对应月份的数字(1代表1月,以此类推),完全满足月份判断需求。

进阶实现:统计各月份平均收益并标注正负

要实现识别平均收益正负的月份并展示,需要按月份聚合收益数据,再生成统计标签:

//@version=5
indicator("月度收益统计", overlay=true)

// 计算单月收益(当前月收盘价 - 上月收盘价)
monthly_return = close - close[1]

// 初始化数组存储各月份累计收益和K线数量(索引0对应1月,11对应12月)
var float[] total_return_per_month = array.new_float(12, 0)
var int[] bar_count_per_month = array.new_int(12, 0)

// 更新当前月份的统计数据
curr_month_idx = month(time[0]) - 1
array.set(total_return_per_month, curr_month_idx, array.get(total_return_per_month, curr_month_idx) + monthly_return)
array.set(bar_count_per_month, curr_month_idx, array.get(bar_count_per_month, curr_month_idx) + 1)

// 在最后一根K线生成统计标签
if barstate.islast
    // 创建固定位置的统计标签
    stats_label = label.new(bar_index, high * 1.03, "", color=color.gray, textcolor=color.white, style=label.style_label_down)
    stats_content = ""
    // 遍历所有月份生成文本
    for i = 0 to 11
        month_num = i + 1
        avg_return = array.get(total_return_per_month, i) / array.get(bar_count_per_month, i)
        // 用星号强调正收益
        return_text = avg_return > 0 ? "*" + str.tostring(avg_return, "#.##") + "*" : str.tostring(avg_return, "#.##")
        stats_content := stats_content + str.tostring(month_num) + "月平均收益: " + return_text + "\n"
    label.set_text(stats_label, stats_content)

核心要点

  • month(time[0])是Pine Script中提取月份的标准方法,在任何时间周期(包括月度)都有效
  • 用数组按月份聚合收益数据,能高效统计各月份的平均收益
  • 通过*标记正收益,实现视觉上的强调效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:02:40