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
价格。
如何获取事件完成时的价格值。有两个事件:
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
价格。