Pine script 谁能帮我一把?

Pine script 谁能帮我一把?,pine-script,Pine Script,我想看看谁能帮我编写一个代码,但我不能让它按我想要的方式工作。我不是程序员,但我一直在看教程,但我没有得到我想要的。我会附上一些图片,这样你可以直观地知道我想做什么。 现在,我附加一个图像,指示我正在寻找什么 现在对第二幅图像进行解释:如图1所示,背景色和高低线不像第二幅图像那样填充。。我的想法是,背景颜色是以方框的形式出现的,如果不是如图2所示,则不如图1所示。。 正如高低线匹配背景色一样,假设在我使用的时间范围是07:00到17:00,我将使用我应该使用的配置保留代码,我希望有人能帮助我

我想看看谁能帮我编写一个代码,但我不能让它按我想要的方式工作。我不是程序员,但我一直在看教程,但我没有得到我想要的。我会附上一些图片,这样你可以直观地知道我想做什么。

现在,我附加一个图像,指示我正在寻找什么

现在对第二幅图像进行解释:如图1所示,背景色和高低线不像第二幅图像那样填充。。我的想法是,背景颜色是以方框的形式出现的,如果不是如图2所示,则不如图1所示。。 正如高低线匹配背景色一样,假设在我使用的时间范围是07:00到17:00,我将使用我应该使用的配置保留代码,我希望有人能帮助我谢谢

 //@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/


study("High & Low Of Custom Session", shorttitle="High/Low Of Custom Session",overlay=true)

// Inputs
my_session = input("0700-1700", type=input.session, title='Custom Session')
Lines = input(true, title="Show High/Low Lines?")
FILL = input(true, title="Show Session BGcolor?")

// Determine if we are in a session
in_session = time(timeframe.period, my_session)
is_new_session(res, sess) =>
    t = time(res, sess)
    na(t[1]) and not na(t) or t[1] < t

new_session = is_new_session("0600", my_session)

// Start of Session
is_newbar(res,sess) =>
    t = time(res,sess)
    not na(t) and (na(t[1]) or t > t[1])
new = (is_newbar("0600", my_session) ? 1 : 0)

// Plot Start Of Session
col_Start_of_Session = new_session and new==1? color.aqua:na

    

// In Session High/Low Calculations
var float _low = low
var float _high = high

_low := new_session? low : in_session ? min(low, _low[1]) : na
_high := new_session  ? high : in_session ? max(high, _high[1]) : na

col_low = _low == low? na: Lines?color.red:na
col_high = _high== high? na:Lines? color.green:na

// Plot High/Low Line
Low=plot(_low, style=plot.style_line, linewidth=1, color=col_low)
High=plot(_high, style=plot.style_line, linewidth=1, color=col_high)

// BG Color
Fill_col = FILL ? color.aqua:na
fill(Low,High, color=Fill_col)
//

// End of Session
start_of_session_value = valuewhen((new==1),high,0)
end_session_condition = start_of_session_value !=start_of_session_value[1]?0: in_session?1:0 
end_session = (end_session_condition == 0) and (end_session_condition[1]==1)? color.orange:na
/@version=4
//此源代码受Mozilla Public License 2.0的条款约束https://mozilla.org/MPL/2.0/
研究(“自定义会话的高/低”,shorttitle=“自定义会话的高/低”,overlay=true)
//投入
my_session=input(“0700-1700”,type=input.session,title='Custom session')
行=输入(true,title=“显示高/低行?”)
FILL=输入(true,title=“显示会话颜色?”)
//确定我们是否正在进行会话
in_session=时间(timeframe.period,my_session)
是新会话(res、sess)=>
t=时间(res,sess)
na(t[1]),而不是na(t)或t[1]
t=时间(res,sess)
不是na(t)和(na(t[1])或t>t[1])
新=(是纽巴(“0600”,我的会话)?1:0)
//打印会话的开始
会话的col\u Start\u=新会话和new==1?颜色。浅绿色:na
//会话内高/低计算
var浮动_低=低
var浮动_高=高
_低:=新会话?低:在会话中?最小值(低,_低[1]):na
_高:=新会话?高:在你的会议?最大值(高,_高[1]):na
col\u low=\u low==低?线条?颜色。红色:不
col\u high=\u high==高?安娜:台词?颜色。绿色:na
//绘制高/低线
Low=绘图(_Low,style=绘图。style_线条,线宽=1,颜色=col_Low)
高=绘图(_高,样式=绘图。样式线,线宽=1,颜色=列高)
//背景色
填充=填充?颜色。浅绿色:na
填充(低、高、颜色=填充颜色)
//
//会议结束
会话的开始\u\u值=valuewhen((新==1),高,0)
结束会话条件=会话值的开始=启动\u会话\u值[1]?0:在\u会话中?1:0
结束会话=(结束会话条件==0)和(结束会话条件[1]==1)?颜色。橙色:na

你所要求的不能用松树来完成。
但是,您可以通过使用
对象使行从同一条开始。
一个简单的例子是:

var l1 = line.new(na, na, na, na, color=color.yellow)
var l2 = line.new(na, na, na, na, color=color.yellow)

if barstate.islast
    line.set_xy1(l1, bar_index-10, 1880)
    line.set_xy2(l1, bar_index,    1880)

    line.set_xy1(l2, bar_index-10, 1890)
    line.set_xy2(l2, bar_index,    1890)
不幸的是,您不能使用
对象来创建
填充()

不能让行与
plot()
同时开始的原因是
high/low
事先不知道,过去不能
plot()

您可以通过使用带有参数
lookahead=barmerge.lookahead_on
security()
函数来绕过历史会话的这一限制。这将检索“未来”值。
但是对于今天的会话,您不能这样做,因为该会话的
高/低
在会话结束之前是未知的

因此,总而言之,您必须在以下两者之间进行选择:

  • 使用
    plot()
    并具有
    fill()
    背景,但行不会同时开始
  • 使用
    line
    对象并使行同时开始,但不使用背景色
    fill()
  • 编辑:要播放的代码
    这将绘制出您想要的内容,但当出现新的高点/低点时,它不会在现场会话中画出一条直线。所有历史性会议都将有直线通过

    //@version=4
    study("Lookahead", overlay=true)
    
    var float   daily_high  = na
    var float   daily_low   = na
    
    newSession = change(time("D"))
    
    [hi,lo] = security(syminfo.ticker, "D", [high,low], lookahead=barmerge.lookahead_on)
    
    plot_color  = newSession ? na : color.green
    fill_color  = newSession ? na : color.gray
    
    plot_hi = plot(hi, "High", color=plot_color)
    plot_lo = plot(lo, "Low",  color=plot_color)
    
    fill(plot_lo, plot_hi, fill_color, 60)
    
    这就产生了这个输出

    编辑:代码可配置为仅在开始和结束时间之间绘制

    //@version=4
    study("Lookahead", overlay=true)
    
    var         session_info    = input("0700-1700", "Plot between these hours", input.session)
    
    var float   daily_high      = na
    var float   daily_low       = na
    
    
    newSession  = change(time("D"))
    inSession   = time(timeframe.period, session_info)
    
    [hi,lo]     = security(syminfo.ticker, "D", [high,low], lookahead=barmerge.lookahead_on)
    
    plot_color  = newSession ? na : color.green
    fill_color  = newSession ? na : color.gray
    
    plot_hi     = plot(inSession ? hi : na, "High", plot_color, style=plot.style_linebr)
    plot_lo     = plot(inSession ? lo : na, "Low",  plot_color, style=plot.style_linebr)
    
    fill(plot_lo, plot_hi, fill_color, 60)
    

    图片:这是一个私人指示器,但我需要一个我自己的指示器。这是我正在寻找的,这样我就可以玩代码。图片中图表的时间范围是什么?图表上的时间范围是H1。我添加了一些代码,可以根据您的需要添加一些额外的信息。正如我所说,这是不可能做到的(至少在现场会话中,当出现新的高点/低点时是不可能做到的)。但我想你会认为这是“可以做到的”:)哇,非常感谢!这可能对我有用,但我如何在一定的时间范围内使其成为标记?在这种情况下,从07:00到17:00?我非常感谢你的帮助,并花时间帮助我