pine-script - 如何创建资产列表和可选的 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)
解决方案
这可以通过使用参数来完成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)
推荐阅读
- amazon-web-services - 通过 AWS VPN Client(不在 VPC 网络上)访问非集群 Redis elasticache
- spring-boot - 为什么 Sping Boot 原生查询返回 null?
- python - How to define method in python that takes the class type as a parameter?
- asp.net-core - AddSingleton 是否保证只在 asp.net 核心中的工厂运行一次?
- javascript - 如何使用材料 ui 中的“样式”反应
- python - 如何确定列表中的每个值是否符合标准?
- python - BigQueryTable 一个 PubSub 主题在 Apache Beam Python sdk 中不起作用?静态 src 到 Streaming SInk
- sharepoint - 在 SharePoint 计算列中,根据其他列的内容获取 Max(value)
- azure-web-app-service - 远程 Azure 服务器上的 Visual Studio 2022 调试
- android - 如何在 onSuccess Realm 回调中完成活动?