如何获得2点之间的最高值?
How to get the highest value between 2 points?
我想获得 2 个条目之间的最高点(例如,在 2 个 ema 交叉之间,如图像示例)。
它在我的头上,我试过 barssince()
没有运气。
欢迎任何帮助!
//@version=4
study("My Script", overlay = true)
ema1 = ema(close, 20)
ema2 = ema(close, 50)
plot(ema1)
plot(ema2, color = color.yellow)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
highest_buy = highestbars(high, barssince(buy))
plot(highest_buy)
连续情节:
//@version=4
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
仅绘制最近发生的事件:
//@version=4
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
var int bar_buy = na
var int bar_sell = na
var line hline = line.new(na, na, na, na, extend=extend.both, color=color.purple)
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
bar_buy := bar_index
highest_buy := track ? max(nz(highest_buy), high) : na
if sell
track := false
bar_sell := bar_index
line.set_xy1(hline, bar_buy, highest_buy)
line.set_xy2(hline, bar_sell, highest_buy)
plot(ema1)
plot(ema2, color=color.yellow)
bgcolor(buy ? color.green : na, transp=80)
bgcolor(sell ? color.red : na, transp=80)
好的,(@Bjorn Mistiaen 和@AnyDozer)这两种方法都可以很好地进行绘图,但我仍然无法获得最高点的值。
我正在尝试计算最高值和入口点之间的差异。
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
buy_entry = valuewhen(buy, close, 0)
plot(buy_entry, color = buy_entry == buy_entry[1] and ema1 > ema2? color.lime :na)
if buy
label1 = label.new(bar_index, highest_buy, text=tostring(highest_buy - buy_entry) , style=label.style_label_down, color=color.black, textcolor=color.white)
如果我使用 if buy
它将计算到第一个高点,而不是最高点,如果我使用 if sell
它什么都不做,因为买入入场的最高点落后一根蜡烛。
当sell
信号出现时highest_buy
等于na
且不显示标签。有必要采用前一根柱上的值。
//@version=4
study("Help prof (My Script)", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
buy_entry = valuewhen(buy, close, 0)
plot(buy_entry, color = buy_entry == buy_entry[1] and ema1 > ema2? color.lime :na)
if sell
label1 = label.new(bar_index, highest_buy[1], text=tostring(highest_buy[1] - buy_entry[1]) , style=label.style_label_down, color=color.black, textcolor=color.white)
我想获得 2 个条目之间的最高点(例如,在 2 个 ema 交叉之间,如图像示例)。
它在我的头上,我试过 barssince()
没有运气。
欢迎任何帮助!
//@version=4
study("My Script", overlay = true)
ema1 = ema(close, 20)
ema2 = ema(close, 50)
plot(ema1)
plot(ema2, color = color.yellow)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
highest_buy = highestbars(high, barssince(buy))
plot(highest_buy)
连续情节:
//@version=4
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
仅绘制最近发生的事件:
//@version=4
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
var int bar_buy = na
var int bar_sell = na
var line hline = line.new(na, na, na, na, extend=extend.both, color=color.purple)
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
bar_buy := bar_index
highest_buy := track ? max(nz(highest_buy), high) : na
if sell
track := false
bar_sell := bar_index
line.set_xy1(hline, bar_buy, highest_buy)
line.set_xy2(hline, bar_sell, highest_buy)
plot(ema1)
plot(ema2, color=color.yellow)
bgcolor(buy ? color.green : na, transp=80)
bgcolor(sell ? color.red : na, transp=80)
好的,(@Bjorn Mistiaen 和@AnyDozer)这两种方法都可以很好地进行绘图,但我仍然无法获得最高点的值。 我正在尝试计算最高值和入口点之间的差异。
study("My Script", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
buy_entry = valuewhen(buy, close, 0)
plot(buy_entry, color = buy_entry == buy_entry[1] and ema1 > ema2? color.lime :na)
if buy
label1 = label.new(bar_index, highest_buy, text=tostring(highest_buy - buy_entry) , style=label.style_label_down, color=color.black, textcolor=color.white)
如果我使用 if buy
它将计算到第一个高点,而不是最高点,如果我使用 if sell
它什么都不做,因为买入入场的最高点落后一根蜡烛。
当sell
信号出现时highest_buy
等于na
且不显示标签。有必要采用前一根柱上的值。
//@version=4
study("Help prof (My Script)", overlay = true)
var bool track = false
var float highest_buy = na
ema1 = ema(close, 20)
ema2 = ema(close, 50)
buy = crossover(ema1, ema2)
sell = crossunder(ema1, ema2)
if buy
track := true
else if sell
track := false
highest_buy := track ? max(nz(highest_buy), high) : na
plot(ema1)
plot(ema2, color=color.yellow)
plot(highest_buy, color=color.purple, style=plot.style_linebr)
buy_entry = valuewhen(buy, close, 0)
plot(buy_entry, color = buy_entry == buy_entry[1] and ema1 > ema2? color.lime :na)
if sell
label1 = label.new(bar_index, highest_buy[1], text=tostring(highest_buy[1] - buy_entry[1]) , style=label.style_label_down, color=color.black, textcolor=color.white)