Как получить значение ежедневного закрытия за предыдущие годы? - PullRequest
0 голосов
/ 13 февраля 2020

Цель:

Я пытаюсь создать сценарий дневной тенденции сезонности.

Проблема:

Я нормализовал закрытие каждого дня относительно максимума и минимума года поэтому каждый день имеет значение от 0 до 1. Сейчас я пытаюсь выяснить, как усреднить тот же день в предыдущие годы, чтобы получить многолетнее среднее значение масштабированного ежедневного закрытия, не могу понять это для моей жизни.

Конечная цель состоит в том, чтобы построить график 15-летней (или какой бы то ни было другой) сезонности на дневной TF.

Вот то, что я имею до сих пор, это график тренда каждого завершенного года со значением каждого дня относительно максимума этого года (1) и низкий (0). Теперь я пытаюсь выяснить, как получить переменную scaledClose, представляющую среднее значение за несколько лет, а не отдельные годы.

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 Ответ

1 голос
/ 14 февраля 2020

Например, год go значение:

// 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)

Во входах вы можете указать, сколько лет go вы хотите получить значение.

...