Pine Script 如何比较不同类型

Pine Script How to comparing different types

如何获取事件完成时的价格值。有两个事件:

macd_line 和 signal_line 的交叉 最近 13 天的最低价格值 当其中一个事件发生时,多头头寸被平仓

lmacdl = crossover(macd_line, signal_line)
lowestLow = lowest(low, 13)

stoplong = max (macdl, lowestLow)

if  (strategy.position_size > 0)
    strategy.exit ("Sl_Buy", "Buy", stop=stoplong) 

但出现错误:无法使用 'arg_2' = series [bool] 调用 'min'。参数的类型应该是:series [float]

所以比较不同的类型。因此,问题是:交叉事件(macd_line,signal_line)

时如何获取具体价格值

使用 var 关键字创建一个变量。然后在发生交叉事件时更新其值,否则保持其原始值。因此,它将保持最新的 macd 线值,直到发生新的交叉事件。

//@version=5
indicator("My Script")

var my_macdl = 0.0
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
my_macdl := ta.crossover(macdLine, signalLine) ? macdLine : my_macdl
plot(my_macdl)

编辑: 要保留价格值,请使用以下代码:

//@version=5
indicator("My Script")

var macd_price = 0.0
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
macd_price := ta.crossover(macdLine, signalLine) ? close: macd_price

它将存储 close 价格。