如果将下面的代码添加到图表中,它将计算输入中默认设置为 true 的 7 个项目,并且 7 应显示在表格单元格中。 但是,表格单元格显示 5 或 6 位数字。 这些数字似乎会根据品牌和当前的接近值而变化。 如何获得我期望的 bool 值聚合?
//@version=5
indicator("test", overlay = true)
var int maxPos = 20
pL01_S = input.bool(true, title="long pos 01", inline="L01-1", display=display.none)
pL02_S = input.bool(true, title="long pos 02", inline="L02-1", display=display.none)
pL03_S = input.bool(false, title="long pos 03", inline="L03-1", display=display.none)
pL04_S = input.bool(false, title="long pos 04", inline="L04-1", display=display.none)
pL05_S = input.bool(false, title="long pos 05", inline="L05-1", display=display.none)
pL06_S = input.bool(false, title="long pos 06", inline="L06-1", display=display.none)
pL07_S = input.bool(false, title="long pos 07", inline="L07-1", display=display.none)
pL08_S = input.bool(false, title="long pos 08", inline="L08-1", display=display.none)
pL09_S = input.bool(false, title="long pos 09", inline="L09-1", display=display.none)
pL10_S = input.bool(false, title="long pos 10", inline="L10-1", display=display.none)
pS01_S = input.bool(true, title="Short pos 01", inline="S01-1", display=display.none)
pS02_S = input.bool(true, title="Short pos 02", inline="S02-1", display=display.none)
pS03_S = input.bool(true, title="Short pos 03", inline="S03-1", display=display.none)
pS04_S = input.bool(true, title="Short pos 04", inline="S04-1", display=display.none)
pS05_S = input.bool(true, title="Short pos 05", inline="S05-1", display=display.none)
pS06_S = input.bool(false, title="Short pos 06", inline="S06-1", display=display.none)
pS07_S = input.bool(false, title="Short pos 07", inline="S07-1", display=display.none)
pS08_S = input.bool(false, title="Short pos 08", inline="S08-1", display=display.none)
pS09_S = input.bool(false, title="Short pos 09", inline="S09-1", display=display.none)
pS10_S = input.bool(false, title="Short pos 10", inline="S10-1", display=display.none)
pShow = array.new_bool(20, false)
array.set(pShow, 0, pL01_S)
array.set(pShow, 1, pL02_S)
array.set(pShow, 2, pL03_S)
array.set(pShow, 3, pL04_S)
array.set(pShow, 4, pL05_S)
array.set(pShow, 5, pL06_S)
array.set(pShow, 6, pL07_S)
array.set(pShow, 7, pL08_S)
array.set(pShow, 8, pL09_S)
array.set(pShow, 9, pL10_S)
array.set(pShow, 10, pS01_S)
array.set(pShow, 11, pS02_S)
array.set(pShow, 12, pS03_S)
array.set(pShow, 13, pS04_S)
array.set(pShow, 14, pS05_S)
array.set(pShow, 15, pS06_S)
array.set(pShow, 16, pS07_S)
array.set(pShow, 17, pS08_S)
array.set(pShow, 18, pS09_S)
array.set(pShow, 19, pS10_S)
var int tabNo = 0
for i = 0 to maxPos - 1
if array.get(pShow, i)
tabNo := tabNo + 1
pTab = table.new(position.top_center, 4, 1, bgcolor=color.new(color.black, 56), frame_color=color.new(color.blue, 80), frame_width=1, border_color=color.new(color.blue, 80),border_width=1)
table.cell(pTab, 0, 0, text=str.tostring(tabNo))
您正在每个柱上运行循环,并且因为您的
tabNo
是使用 var
初始化的,所以它永远不会重置。
您可以使用 if
barstate.islast
运行循环,并在每个新柱处重置 tabNo
或删除 var
。
tabNo = 0
if barstate.islast
for i = 0 to maxPos - 1
if array.get(pShow, i)
tabNo := tabNo + 1