0

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

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) 

但是出现了一个错误:Cannot call 'min' with 'arg_2' = series [bool]。参数的类型应该是:series [float]

所以比较不同的类型。因此,问题是:交叉事件(macd_line,signal_line)时如何获取具体的价格值

4

1 回答 1

0

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价格。

于 2021-12-01T06:26:50.357 回答