как отображать только первый бар, когда условие истинно - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в кодировании, и я хочу знать, как написать код для отображения результата ТОЛЬКО ПЕРВЫЙ БАР, когда условие истинно. Прямо сейчас мой код отображает каждый отдельный бар, когда условие истинно.

условие: если ema (5)> ema (10) и RSI> 50, тогда отображается надпись «buy», иначе sell

//@version=4

study("EMA", overlay=true)

ema5= ema(close, 5)
ema10 = ema(close,10)
rsi = rsi(close, 14)

plot(ema5, color=color.green)
plot(ema10, color=color.red)


if ema5 > ema10 and rsi > 50 
    label.new(bar_index, na, "buy", color=color.green, textcolor=color.white, style=label.style_labelup, yloc=yloc.belowbar)


if ema5 < ema10 and rsi < 50
    label.new(bar_index, na, "sell", color=color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar)

Большое спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Попробуйте что-то вроде этого:

//@version=4

study("EMA", overlay=true)

ema5= ema(close, 5)
ema10 = ema(close,10)
rsi = rsi(close, 14)

var label buy = na
if ema5 > ema10 and rsi > 50 and buy == na
    buy := label.new(bar_index, na, "buy", color=color.green, textcolor=color.white, style=label.style_labelup, yloc=yloc.belowbar)

var label sell = na
if ema5 < ema10 and rsi < 50 and sell == na
    sell := label.new(bar_index, na, "sell", color=color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar)
...