Pine script 一次设置2个系列
我试图在2个系列中同时设置高点和低点,但似乎无法正确执行代码。Pine script 一次设置2个系列,pine-script,Pine Script,我试图在2个系列中同时设置高点和低点,但似乎无法正确执行代码。 它应在指定日期的每个日内条形图上绘制输入的高值和低值。 该代码设计用于ticker SPX //@version=4 study("SPX 5", overlay=true) // === FUNCTIONS === isDate(y,m,d) => year==y and month==m and dayofmonth==d float lo = na float hi = na drawHiLo(y,m,d,l,h
它应在指定日期的每个日内条形图上绘制输入的高值和低值。
该代码设计用于ticker SPX
//@version=4
study("SPX 5", overlay=true)
// === FUNCTIONS ===
isDate(y,m,d) => year==y and month==m and dayofmonth==d
float lo = na
float hi = na
drawHiLo(y,m,d,l,h) =>
float ret1 = na
float ret2 = na
if isDate(y,m,d) and timeframe.isintraday
ret1 := l
ret2 := h
else
ret1 = lo[1]
ret2 = hi[1]
[ret1,ret2]
// === MAIN ===
[lo,hi] = drawHiLo(2020,04,13,2700,2770)
[lo,hi] = drawHiLo(2020,04,14,2800,2860)
plot(lo, style=plot.style_circles, color=color.lime)
plot(hi, style=plot.style_circles, color=color.lime)
上面的脚本给出了以下错误:第22行:“lo”已定义。
我尝试过几种不同的方法,但似乎都不管用。有人知道如何实现这一点吗?您现在可以通过脚本的输入更改值。在代码中添加了一些注释。如果不清楚发生了什么,请随时询问:
//@version=4
study("SPX 5", overlay=true)
// Get values through Inputs.
spHi1 = input(2770)
spLo1 = input(2700)
spHi2 = input(2860)
spLo2 = input(2800)
// === FUNCTIONS ===
isDate(y,m,d) => year==y and month==m and dayofmonth==d
drawHiLo(y,m,d,l,h) =>
// Vars are initialized to na, so we only need to assign them a value when our conditions becomes true.
float ret1 = na
float ret2 = na
if isDate(y,m,d) and timeframe.isintraday
ret1 := l
ret2 := h
[ret1, ret2]
// === MAIN ===
// Make 2 separate call to function, but need to store results in different variables for each call.
[lo1,hi1] = drawHiLo(2020,04,13,spLo1,spHi1)
[lo2,hi2] = drawHiLo(2020,04,14,spLo2,spHi2)
plot(hi1, style=plot.style_circles, color=color.lime)
plot(lo1, style=plot.style_circles, color=color.lime)
plot(hi2, style=plot.style_circles, color=color.green)
plot(lo2, style=plot.style_circles, color=color.green)
很好的功能概念,顺便说一句。祝贺您。谢谢您的回复。不幸的是,我不认为这将为我所需要的工作。我在每个交易日都会输入这样的数据。因此,我真正想要的是一种使用函数的方法,该函数每天更新相同的
lo
和hi
集。我试图在脚本的末尾只有两个plot命令。一个绘图用于lo
和一个绘图用于hi
),这是另一个问题。如果这是你需要的,你应该在你的问题中说清楚。看,如果我的问题不清楚,很抱歉。你提到的帖子是我之前的问题,它满足了我的要求,但只针对1个变量。我想这不可能一次为2个var
变量完成。似乎有点奇怪,您可以从一个函数返回2个值,并使用=
将它们分配给[lo,hi]
,但如果lo
和hi
声明为var
,则无法使用分配它们。