获取用户定义对象数组的最后一个元素

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

type Candle
    int index
    float pivotHigh 
    float pivotLow

var CandleArray = array.new<Candle>(0)

if pricePH
    ph = Candle.new(time[10], high[10], low[10])
    array.push(CandleArray, ph)

var Candle xyz = na

if array.size(CandleArray) > 0
    xyz := array.get(CandleArray, array.size(CandleArray) - 1)

// 它给出以下错误:无法使用参数“series”=“xyz”调用“plot”。使用了“Candle”类型的参数,但预计会出现“series float”。

plot(xyz, display = display.status_line)

//// 目前访问数组元素的唯一方法是通过 for-in 循环

for newPH in CandleArray
    label.new(newPH.index, newPH.pivotHigh, str.tostring(newPH.pivotHigh), xloc.bar_time, style = label.style_label_down, color=color.blue)
pine-script pine-script-v5 tradingview-api quantitative-finance
1个回答
0
投票

xyz 是蜡烛类型,你必须告诉你的脚本使用哪个浮动。
例如:

plot(xyz.pivotHigh, display = display.status_line)

这是完整的工作脚本(在 EUR/USD 上测试):

//@version=5
indicator("My script")
plot(close)
type Candle
    int  index
    float pivotHigh 
    float pivotLow

var CandleArray = array.new<Candle>(0)

if true
    ph = Candle.new(time[10], high[10], low[10])
    array.push(CandleArray, ph)

xyz = array.last(CandleArray)
plot(xyz.pivotHigh, display = display.status_line)
© www.soinside.com 2019 - 2024. All rights reserved.