Pinescript 比较月份

问题描述 投票:0回答:1

如何比较 pine 脚本中的月份?作为使用月度图表的示例,我想知道当前柱是否为一月等,目前我可以使用

dayofweek
对每日柱进行此操作,但是没有等效的
monthofyear
或类似的。

到目前为止,我一直在尝试使用以下代码来查看是否可以找到一种方法来使用

month()
的输出来识别柱形图所在的月份,但是到目前为止我还没有成功。

if barstate.islast
    x = bar_index
    y = close[0]
    txt = str.tostring(month(time[0]))
    label.new(x + 10, y, txt)

该指标的最终目标是确定哪些月份平均有正回报或负回报,并通过标签显示该信息。

pine-script pine-script-v5
1个回答
0
投票

您使用

month()
是正确的,但是,如果您在外汇货币对上使用此功能,当当天的交易时段在前一个日历日开始时,您将会遇到问题。

对于这些情况,还有另一个名为

time_tradingday
的内置变量。

时间_交易日

当前柱所属交易日的开始时间,在 UNIX 格式(自发生以来经过的毫秒数 00:00:00 UTC,1970 年 1 月 1 日)。

备注
该变量对于隔夜交易非常有用,其中 当天的会议可以在前一个日历日开始(例如, 欧元兑美元周一交易时段将于周日 17:00 开始)。与时间不同, 这将返回星期一 17:00 的星期日时间戳 每日柱,time_tradingday 将返回星期一的时间戳, 00:00.

当用于高于 1D 的时间范围时,time_tradingday 返回 柱内最后一天的交易日(例如在 1W 时,将返回 一周的最后一个交易日)。

这是给您的测试代码。第一部分是没有

lastbar
检查的代码,第二部分是相同的代码,但使用
time_tradingday
代替。

//@version=5
indicator("My script", overlay=true, max_labels_count=100)

m1 = month(time[0])
txt = str.tostring(m1)
label.new(bar_index, high, txt)

m2 = month(time_tradingday)
txt2 = str.tostring(m2)
label.new(bar_index, low, txt2, yloc=yloc.belowbar, style=label.style_label_up, color=color.green, textcolor=color.white)

is_not_equal = (m1 != m2)
bgcolor(is_not_equal ? color.new(color.red, 85) : na)

条形上方的蓝色标签是原始代码,条形下方的绿色标签是新输出。红色背景是这两个值不同的地方。

欧元美元 1 个月时间范围:

© www.soinside.com 2019 - 2024. All rights reserved.