pinescript - 当价格越过一条线时立即画一条水平线不是在收盘时

问题描述

价格上穿 ema10 时开多头,下穿时开空头。长目标是l线,短目标是s线。

例如,在做多时,当价格越过 l 线时,我想立即绘制一条水平线(不是在收盘时)。同样,我想在价格在 s 线下方交叉时画一条水平线。我无法画一条线,因为 l 和 s 不是常数。我想计算交叉和交叉的价格。

Here is an example of a picture

//@version=4
study(title="ema buy sell",overlay=true)
ema1 = ema(close,10)
l = ema1 * 1.02
s = ema1 * 0.98


plot(ema1,title="Ema 10",color=color.blue,linewidth=1,transp=0)
plot(l,title="Take Long TP",color=color.red,linewidth=2,transp=0)
plot(s,title="Take Short TP",color=color.green,transp=0)


longCond = crossover(high,ema1)
shortCond = crossunder(low,ema1)

plotshape(series=longCond,title="Long",style=shape.triangleup,location=location.belowbar,text="LONG",size=size.small)
plotshape(series=shortCond,title="Short",style=shape.triangledown,location=location.abovebar,text="SHORT",size=size.small)

解决方法

此脚本将按照您的描述在高/高频带分频器上打印该行。

//@version=4
study(title="ema buy sell",overlay=true)
ema1 = ema(close,10)
l = ema1 * 1.02
s = ema1 * 0.98

plot(ema1,title="Ema 10",color=color.blue,linewidth=1,transp=0)
plot(l,title="Take Long TP",color=color.red,linewidth=2,transp=0)
plot(s,title="Take Short TP",color=color.green,transp=0)

longCond = crossover(high,ema1)
shortCond = crossunder(low,ema1)

plotshape(series=longCond,title="Long",style=shape.triangleup,location=location.belowbar,text="LONG",size=size.small)
plotshape(series=shortCond,title="Short",style=shape.triangledown,location=location.abovebar,text="SHORT",size=size.small)

var float lineOnCrossOver = na
if crossover(high,l)
    lineOnCrossOver := l
plot(lineOnCrossOver,color = change(lineOnCrossOver)? na : color.green)

enter image description here