首页 > 解决方案 > 如何创建资产列表和可选的 input.string - Pine

问题描述

我用 pine 脚本创建了一个指标 - 我想发布所有底层的脚本,而不仅仅是一个。但这不允许发布仅由组件反复更改的相同指标。如何创建资产列表和可选输入开关?如何使用 input.string 创建每个索引组件的手动输入或使用三元条件分配字符串变量。

非常感谢您的帮助

//@version=4
study(title="BB_Variabel", shorttitle="BB_Variabel", overlay=true,  scale=scale.none)

symbol = input(defval="SPX", title="Symbol", type=input.string, options=["SPX", "DAX", "DJI", "NDX", "AAPL", "AMZN", "GOOGL", "IBM", "GC1!", "CL1!", "DV1X", "VIX", "VXD", "VXN", "VXAPL", "VXAZN", "VXGOG", "VXIBM", "GVZ", "OVX"])

// close ist letzter Schlusskurs, close[1] ist Tag davor ..
SPX = security("SPX", "D", close[0])
VIX = security("VIX", "D", close[0])

// For debugging ..
plotchar(SPX, "SPX", "", location = location.top)
plotchar(VIX, "VIX", "", location = location.top)

upperBouhmidiBand = SPX + SPX * (VIX/100) * 0.05234239226
lowerBouhmidiBand = SPX - SPX * (VIX/100) * 0.05234239226

highTimeFrame = input("D", type=input.resolution)
sessSpec = input("0800-1715", type=input.session)

is_newbar(res, sess) =>
    t = time(res, sess)
    na(t[1]) and not na(t) or t[1] < t

newbar = is_newbar("1440", sessSpec)

var float s1 = na
var float s2 = na
if newbar
    s1 := lowerBouhmidiBand
    s2 := upperBouhmidiBand

plot(s1, linewidth = 2, style = plot.style_line, color=color.red)
plot(s2, linewidth = 2, style = plot.style_line, color=color.black)

输出

标签: pine-script

解决方案


这可以通过使用参数来完成options。但我不知道最大数量的资产是可能的。

//@version=4
study("Help (list)", overlay=true, scale=scale.left)

symbol = input(defval="SPY", title="Symbol", type=input.string, options=["SPY", "AAPL", "BAC", "TSLA", "TWTR"])

cls = security(symbol, timeframe.period, close)

plot(cls)

在这个脚本中,一切都是一样的。

//@version=4
study(title="Help (BB_Variabel)", shorttitle="BB_Variabel", overlay=true,  scale=scale.none)

symbol = input(defval="SPX", title="Symbol", type=input.string, options=["SPX", "DAX", "DJI", "NDX", "AAPL", "AMZN", "GOOGL", "IBM", "GC1!", "CL1!", "DV1X", "VIX", "VXD", "VXN", "VXAPL", "VXAZN", "VXGOG", "VXIBM", "GVZ", "OVX"])

// close ist letzter Schlusskurs, close[1] ist Tag davor ..
//SPX = security("SPX", "D", close[0])
SPX = security(symbol, "D", close[0])
VIX = security("VIX", "D", close[0])

// For debugging ..
plotchar(SPX, "SPX", "", location = location.top)
plotchar(VIX, "VIX", "", location = location.top)

upperBouhmidiBand = SPX + SPX * (VIX/100) * 0.05234239226
lowerBouhmidiBand = SPX - SPX * (VIX/100) * 0.05234239226

highTimeFrame = input("D", type=input.resolution)
sessSpec = input("0800-1715", type=input.session)

is_newbar(res, sess) =>
    t = time(res, sess)
    na(t[1]) and not na(t) or t[1] < t

newbar = is_newbar("1440", sessSpec)

var float s1 = na
var float s2 = na
if newbar
    s1 := lowerBouhmidiBand
    s2 := upperBouhmidiBand

plot(s1, linewidth = 2, style = plot.style_line, color=color.red)
plot(s2, linewidth = 2, style = plot.style_line, color=color.black)

在此处输入图像描述


推荐阅读