我正在尝试构建每日的季节性趋势脚本。
我将每天的收盘价相对于当年的高点和低点进行了归一化,因此每天的值都在0
和1
之间。现在,我试图弄清楚如何对前几年的同一天进行平均,以获取缩放后的每日收盘价的多年平均值,无法在我的一生中弄清楚。
最终目标是在每日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)
答案 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)
在输入中,您可以设置要从多年前获取值。