如何获取前几年的每日收盘价?

时间:2020-02-12 21:42:17

标签: pine-script

目标:

我正在尝试构建每日的季节性趋势脚本。

问题:

我将每天的收盘价相对于当年的高点和低点进行了归一化,因此每天的值都在01之间。现在,我试图弄清楚如何对前几年的同一天进行平均,以获取缩放后的每日收盘价的多年平均值,无法在我的一生中弄清楚。

最终目标是在每日TF上绘制15年(或任意回顾)的季节性图。

这是我到目前为止所拥有的,它以相对于该年最高(1)和最低(0)的每一天的价值来绘制每个完整年份的趋势。现在,我试图找出如何获得scaleCloseClose变量来表示多年平均值而不是仅仅一年。

current_year = input(2020, title="Current Year")
scaledClose = 0.0
yearHigh = security(syminfo.tickerid, "12M", high, lookahead=true)
yearLow = security(syminfo.tickerid, "12M", low, lookahead=true)
if year < current_year
    scaledClose := (close - yearLow) / (yearHigh - yearLow)

plot(scaledClose)

1 个答案:

答案 0 :(得分:0)

例如,一年前的值:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MichelT

//@version=4
study("Get a value some years ago")
startPointTimeIndex = 9999 
max_bars_back(time, 9999)

binarySearch(seachedTime) =>
    L = startPointTimeIndex
    R = 0

    for i = 0 to 100
        if L == R or time[L] == seachedTime
            break

        m = ceil((L + R) / 2)
        if time[m] > seachedTime
            R := m - 1
        else
            L := m
    _return = L

yearsBack = input(type=input.integer, defval=1, title="Years back")

requiredTime = timestamp(year - yearsBack, month, dayofmonth, hour, minute, second)
idx = binarySearch(requiredTime)

plot(year(time[idx]), title="Year", color=color.red)
plot(month(time[idx]), title="Month", color=color.green)
plot(dayofmonth(time[idx]), title="DayOfMonth", color=color.blue)

plot(hour(time[idx]), title="Hour", color=color.navy)
plot(minute(time[idx]), title="Minute", color=color.fuchsia)

在输入中,您可以设置要从多年前获取值。