【问题标题】:Cannot call 'operator >' with 'expr2'=series[bool]. The argument should be of type: float不能用 'expr2'=series[bool] 调用 'operator >'。参数的类型应该是:float
【发布时间】:2021-08-09 10:02:05
【问题描述】:

我想为突破水平创建警报。我想通过分析每日时间范围内的数据来获得 5 分钟图表上的警报。

我遇到了主题错误并且无法解决。

如果我使用“valuewhen”,则不会出现错误,但我的脚本不会产生任何结果。

//@version=4

study("Breakout", overlay = true)

var string day = "D"
vol = security(syminfo.ticker,day, volume[1], barmerge.gaps_off, barmerge.lookahead_on) 
h1 = security(syminfo.ticker,day, high[1], barmerge.gaps_off, barmerge.lookahead_on)
l1 = security(syminfo.ticker,day, low[1], barmerge.gaps_off, barmerge.lookahead_on)
h2 = security(syminfo.ticker,day, high[2], barmerge.gaps_off, barmerge.lookahead_on)
l2 = security(syminfo.ticker,day, low[2], barmerge.gaps_off, barmerge.lookahead_on)

breakout = vol > 500000 and h1 - l1 < h2 - l2 and close > h1

bo =  close > breakout

plotshape(series=bo, title="Long", style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), text="Buy")

【问题讨论】:

  • 当我使用“valuewhen”时,它会在每 5 分钟的柱形蜡烛上发出信号。但我只想在完成最后一个条件“bo = close > breakout”的一根蜡烛上获得信号

标签: operators pine-script


【解决方案1】:

breakout 是一个布尔值,close 表示资产的特定蜡烛价格,因此当您尝试在bo 变量中将closebreakout 进行比较时,会发生编译错误。

您可以为breakout 变量声明一个值,然后将其与资产的价格(例如之前的高值)进行比较:

breakout = (vol > 500000) and (h1 - l1 < h2 - l2) and (close > h1) ? high[1] : na    
bo =  close > breakout

或将突破布尔值用作信号和 plotshape() 函数的序列:

breakout = (vol > 500000) and (h1 - l1 < h2 - l2) and (close > h1) 
plotshape(series=breakout, title="Long", style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), text="Buy")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-11
    • 2020-08-23
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2021-10-18
    • 2021-10-16
    相关资源
    最近更新 更多