仅显示当前会话的数据

发布于 2025-01-20 08:01:41 字数 3170 浏览 1 评论 0原文

我一直在编码一个指标,以显示每天和前一天的OHLC值。我知道这已经完成了一百万次,但我想制作一个毫不引人注目且易于遵循的版本。我想进行一个切换以提供仅显示当前会话或每个交易会话的数据的选项。类似的事情:

showCurrent = input(true, title='Display current period only')

我还找到了一个代码段,它在当前的交易日显示了数据,

currentOnly = false

if year(timenow) == year(time) and month(timenow) == month(time) and dayofmonth(timenow) == dayofmonth(time) 
    currentOnly := true

,昨天和今天的级别将在当前会话中显示

我只想知道如何组合它们,以便当showcurrent == true时 是代码的样子。非常基础:

//@version=5
indicator(title='Daily OHLC', overlay=true)


showCurrent = input(true, title='Display current period only')
showOpen = input(true, title='Daily open')
showPrevClose = input(true, title='Previous day close')
showHiLo = input(true, title='Daily high & low')
showPrevHiLo = input(false, title='Previous day high & low')


currentOnly = false

if year(timenow) == year(time) and month(timenow) == month(time) and dayofmonth(timenow) == dayofmonth(time) 
    currentOnly := true


dailyOpen = request.security(syminfo.tickerid, 'D', open, lookahead=barmerge.lookahead_on)
prevClose = request.security(syminfo.tickerid, 'D', close[1], lookahead=barmerge.lookahead_on)
dailyHigh = request.security(syminfo.tickerid, 'D', high, lookahead=barmerge.lookahead_on)
dailyLow = request.security(syminfo.tickerid, 'D', low, lookahead=barmerge.lookahead_on)
prevHigh = request.security(syminfo.tickerid, 'D', high[1], lookahead=barmerge.lookahead_on)
prevLow = request.security(syminfo.tickerid, 'D', low[1], lookahead=barmerge.lookahead_on)


openColour = dailyOpen != dailyOpen[1] ? na : close < dailyOpen ? #F23645 : #4CAF50
prevCloseColour = prevClose != prevClose[1] ? na : close < prevClose ? #F23645 : #4CAF50
highColour = dailyHigh != dailyHigh[1] ? na : #4CAF50
lowColour = dailyLow != dailyLow[1] ? na : #F23645


plot(timeframe.multiplier < 60 ? showOpen and dailyOpen ? dailyOpen : na : na, title='Daily Open', style=plot.style_line, linewidth=1, color=openColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevClose and prevClose ? prevClose : na : na, title='Previous Day Close', style=plot.style_line, linewidth=1, color=prevCloseColour, transp=60)
plot(timeframe.multiplier < 60 ? showHiLo and dailyHigh ? dailyHigh : na : na, title='Daily High', style=plot.style_circles, linewidth=1, color=highColour, transp=20)
plot(timeframe.multiplier < 60 ? showHiLo and dailyLow ? dailyLow : na : na, title='Daily Low', style=plot.style_circles, linewidth=1, color=lowColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevHiLo and prevHigh ? prevHigh : na : na, title='Previous Day High', style=plot.style_circles, linewidth=1, color=highColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevHiLo and prevLow ? prevLow : na : na, title='Previous Day Low', style=plot.style_circles, linewidth=1, color=lowColour, transp=20)

“仅当前会话”

我希望能够在此和此

I've been coding an indicator to display daily and previous day OHLC values. I know it's been done a million times been done a million times before but I wanted to make a version that's unobtrusive and easy to follow. I want to make a switch to give the option to display data for the current session only or for each trading session. Something like this:

showCurrent = input(true, title='Display current period only')

I also found a snippet of code which displays data fro the current trading day only

currentOnly = false

if year(timenow) == year(time) and month(timenow) == month(time) and dayofmonth(timenow) == dayofmonth(time) 
    currentOnly := true

I'd like to know how to combine them so that when showCurrent == true, yesterday's and today's levels are displayed on the current session only

This is what the code looks like. Very basic:

//@version=5
indicator(title='Daily OHLC', overlay=true)


showCurrent = input(true, title='Display current period only')
showOpen = input(true, title='Daily open')
showPrevClose = input(true, title='Previous day close')
showHiLo = input(true, title='Daily high & low')
showPrevHiLo = input(false, title='Previous day high & low')


currentOnly = false

if year(timenow) == year(time) and month(timenow) == month(time) and dayofmonth(timenow) == dayofmonth(time) 
    currentOnly := true


dailyOpen = request.security(syminfo.tickerid, 'D', open, lookahead=barmerge.lookahead_on)
prevClose = request.security(syminfo.tickerid, 'D', close[1], lookahead=barmerge.lookahead_on)
dailyHigh = request.security(syminfo.tickerid, 'D', high, lookahead=barmerge.lookahead_on)
dailyLow = request.security(syminfo.tickerid, 'D', low, lookahead=barmerge.lookahead_on)
prevHigh = request.security(syminfo.tickerid, 'D', high[1], lookahead=barmerge.lookahead_on)
prevLow = request.security(syminfo.tickerid, 'D', low[1], lookahead=barmerge.lookahead_on)


openColour = dailyOpen != dailyOpen[1] ? na : close < dailyOpen ? #F23645 : #4CAF50
prevCloseColour = prevClose != prevClose[1] ? na : close < prevClose ? #F23645 : #4CAF50
highColour = dailyHigh != dailyHigh[1] ? na : #4CAF50
lowColour = dailyLow != dailyLow[1] ? na : #F23645


plot(timeframe.multiplier < 60 ? showOpen and dailyOpen ? dailyOpen : na : na, title='Daily Open', style=plot.style_line, linewidth=1, color=openColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevClose and prevClose ? prevClose : na : na, title='Previous Day Close', style=plot.style_line, linewidth=1, color=prevCloseColour, transp=60)
plot(timeframe.multiplier < 60 ? showHiLo and dailyHigh ? dailyHigh : na : na, title='Daily High', style=plot.style_circles, linewidth=1, color=highColour, transp=20)
plot(timeframe.multiplier < 60 ? showHiLo and dailyLow ? dailyLow : na : na, title='Daily Low', style=plot.style_circles, linewidth=1, color=lowColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevHiLo and prevHigh ? prevHigh : na : na, title='Previous Day High', style=plot.style_circles, linewidth=1, color=highColour, transp=20)
plot(timeframe.multiplier < 60 ? showPrevHiLo and prevLow ? prevLow : na : na, title='Previous Day Low', style=plot.style_circles, linewidth=1, color=lowColour, transp=20)

Current session only

I want to be able to switch between this and this

Past sessions included

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡月浅 2025-01-27 08:01:41

这应该符合您的预期。

//@version=5
indicator(title='Daily OHLC', overlay=true)

showCurrent     = input.bool(true,  title='Display current period only')
showOpen        = input.bool(true,  title='Daily open')
showPrevClose   = input.bool(true,  title='Previous day close')
showHiLo        = input.bool(true,  title='Daily high & low')
showPrevHiLo    = input.bool(false, title='Previous day high & low')

[dailyOpen, prevClose, dailyHigh, dailyLow, prevHigh, prevLow] = request.security(syminfo.tickerid, 'D', [open, close[1], high, low, high[1], low[1]], lookahead=barmerge.lookahead_on)

openColour      = color.new(dailyOpen != dailyOpen[1] ? na : close < dailyOpen ? #F23645 : #4CAF50, 20)
prevCloseColour = color.new(prevClose != prevClose[1] ? na : close < prevClose ? #F23645 : #4CAF50, 60)
highColour      = color.new(dailyHigh != dailyHigh[1] ? na : #4CAF50,                               20)
lowColour       = color.new(dailyLow != dailyLow[1]   ? na : #F23645,                               20)

isToday = year(timenow) == year and month(timenow) == month and dayofmonth(timenow) == dayofmonth
canShow = timeframe.multiplier < 60 and isToday or not showCurrent

plot(canShow and showOpen and dailyOpen      ? dailyOpen : na, title='Daily Open',          style=plot.style_line,    linewidth=1, color=openColour)
plot(canShow and showPrevClose and prevClose ? prevClose : na, title='Previous Day Close',  style=plot.style_line,    linewidth=1, color=prevCloseColour)
plot(canShow and showHiLo and dailyHigh      ? dailyHigh : na, title='Daily High',          style=plot.style_circles, linewidth=1, color=highColour)
plot(canShow and showHiLo and dailyLow       ? dailyLow  : na, title='Daily Low',           style=plot.style_circles, linewidth=1, color=lowColour)
plot(canShow and showPrevHiLo and prevHigh   ? prevHigh  : na, title='Previous Day High',   style=plot.style_circles, linewidth=1, color=highColour)
plot(canShow and showPrevHiLo and prevLow    ? prevLow   : na, title='Previous Day Low',    style=plot.style_circles, linewidth=1, color=lowColour)

This should do what you intended.

//@version=5
indicator(title='Daily OHLC', overlay=true)

showCurrent     = input.bool(true,  title='Display current period only')
showOpen        = input.bool(true,  title='Daily open')
showPrevClose   = input.bool(true,  title='Previous day close')
showHiLo        = input.bool(true,  title='Daily high & low')
showPrevHiLo    = input.bool(false, title='Previous day high & low')

[dailyOpen, prevClose, dailyHigh, dailyLow, prevHigh, prevLow] = request.security(syminfo.tickerid, 'D', [open, close[1], high, low, high[1], low[1]], lookahead=barmerge.lookahead_on)

openColour      = color.new(dailyOpen != dailyOpen[1] ? na : close < dailyOpen ? #F23645 : #4CAF50, 20)
prevCloseColour = color.new(prevClose != prevClose[1] ? na : close < prevClose ? #F23645 : #4CAF50, 60)
highColour      = color.new(dailyHigh != dailyHigh[1] ? na : #4CAF50,                               20)
lowColour       = color.new(dailyLow != dailyLow[1]   ? na : #F23645,                               20)

isToday = year(timenow) == year and month(timenow) == month and dayofmonth(timenow) == dayofmonth
canShow = timeframe.multiplier < 60 and isToday or not showCurrent

plot(canShow and showOpen and dailyOpen      ? dailyOpen : na, title='Daily Open',          style=plot.style_line,    linewidth=1, color=openColour)
plot(canShow and showPrevClose and prevClose ? prevClose : na, title='Previous Day Close',  style=plot.style_line,    linewidth=1, color=prevCloseColour)
plot(canShow and showHiLo and dailyHigh      ? dailyHigh : na, title='Daily High',          style=plot.style_circles, linewidth=1, color=highColour)
plot(canShow and showHiLo and dailyLow       ? dailyLow  : na, title='Daily Low',           style=plot.style_circles, linewidth=1, color=lowColour)
plot(canShow and showPrevHiLo and prevHigh   ? prevHigh  : na, title='Previous Day High',   style=plot.style_circles, linewidth=1, color=highColour)
plot(canShow and showPrevHiLo and prevLow    ? prevLow   : na, title='Previous Day Low',    style=plot.style_circles, linewidth=1, color=lowColour)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文