有条件地将系列或 na 分配给变量
Conditionally assign a series or na to a variable
我正在尝试切换 On/Off 一个安全调用,该调用返回分配给一个元组的三个系列。
根据输入的布尔值,元组 [h_01、l_01、c_01] 被分配给来自安全调用的序列或 [na, na, na]由用户。代码如下:
sy_01 = input(defval = "BINANCE:BTCUSDT", title = "Symbol 01", type = input.symbol)
bl_01 = input(defval = true, title = "On/Off", type = input.bool)
[h_01, l_01, c_01] = bl_01 ? security(sy_01, resolution = "", expression = [high, low, close]) : [na, na, na]
我收到一个错误。
我也试过使用下面的格式:
bl_01 ? [h_01, l_01, c_01] = security(sy_01, resolution = "", expression = [high, low, close]) : [h_01, l_01, c_01] = [na, na, na]
我也试过 iff(condition, then, _else)
,还有一个 if else block
。我还尝试分配给 [0, 0, 0] 或 [1, 1, 1] 而不是 [na, na, na]。我也试着把条件写成bl_01 == true
。没有任何效果。
非常感谢任何帮助。
f_boolTuple(_high, _low, _close, _on) =>
_h = _on ? _high : na
_l = _on ? _low : na
_c = _on ? _close : na
[_h, _l, _c]
[h_01, l_01, c_01] = security(sy_01, resolution = "", expression = f_boolTuple(high, low, close, bl_01))
元组只能从函数中return编辑,不能直接赋值,例如这在 Pine 中是无效的:
[h, l] = [high, low]
或者在你的情况下,如果 bl_01
为 false
,你的三元组的这一部分无效
[h_01, l_01, c_01] = [na, na, na]
security()
是一个可以 return 元组的内置函数。但是因为您不能直接将 [na, na, na]
分配给您的元组,所以您必须在不同的上下文中执行您的逻辑。
通过在函数内执行逻辑检查(return [na, na, na]
元组),然后我们可以将此函数用作 security()
调用中的表达式。
我正在尝试切换 On/Off 一个安全调用,该调用返回分配给一个元组的三个系列。
根据输入的布尔值,元组 [h_01、l_01、c_01] 被分配给来自安全调用的序列或 [na, na, na]由用户。代码如下:
sy_01 = input(defval = "BINANCE:BTCUSDT", title = "Symbol 01", type = input.symbol)
bl_01 = input(defval = true, title = "On/Off", type = input.bool)
[h_01, l_01, c_01] = bl_01 ? security(sy_01, resolution = "", expression = [high, low, close]) : [na, na, na]
我收到一个错误。
我也试过使用下面的格式:
bl_01 ? [h_01, l_01, c_01] = security(sy_01, resolution = "", expression = [high, low, close]) : [h_01, l_01, c_01] = [na, na, na]
我也试过 iff(condition, then, _else)
,还有一个 if else block
。我还尝试分配给 [0, 0, 0] 或 [1, 1, 1] 而不是 [na, na, na]。我也试着把条件写成bl_01 == true
。没有任何效果。
非常感谢任何帮助。
f_boolTuple(_high, _low, _close, _on) =>
_h = _on ? _high : na
_l = _on ? _low : na
_c = _on ? _close : na
[_h, _l, _c]
[h_01, l_01, c_01] = security(sy_01, resolution = "", expression = f_boolTuple(high, low, close, bl_01))
元组只能从函数中return编辑,不能直接赋值,例如这在 Pine 中是无效的:
[h, l] = [high, low]
或者在你的情况下,如果 bl_01
为 false
[h_01, l_01, c_01] = [na, na, na]
security()
是一个可以 return 元组的内置函数。但是因为您不能直接将 [na, na, na]
分配给您的元组,所以您必须在不同的上下文中执行您的逻辑。
通过在函数内执行逻辑检查(return [na, na, na]
元组),然后我们可以将此函数用作 security()
调用中的表达式。