Pine Script Рисование горизонтальной линии справа от столбцов

В настоящее время я пытаюсь написать скрипт на Pine Script для TradingView, и у меня возникают трудности с рисованием горизонтальной линии, которая проводится только между последней ценой/временем закрытия и концом графика. Изображение для справки прилагается. Ссылка

В настоящее время я пытаюсь использовать line.set и line.new, чтобы я мог ввести пользовательскую цену и передать оператор в функцию if.

Любая помощь в этом будет оценена по достоинству.

Код здесь прилагается, с возможностью рисования линии по всей диаграмме или только так, как указано выше.

show1 = input(true, title="|- Use Line1?")
dS1 = input(true, title="|- Short Line1")
price1 = input(title="Price1", type=input.integer, defval=0)

var line l1 = na
if show1 
    line.set_x2(l1, bar_index)
    line.set_extend(l1, extend.none)
    line.set_color(l1, color.green)
    line.set_style(l1, line.style_solid)
    line.set_width(l1, 2)
    if dS1
        l1 := line.new(bar_index, price1, bar_index, price1, extend=extend.right)
    else
        l1 := line.new(bar_index, price1, bar_index, price1, extend=extend.both)

    label label1 = label.new(bar_index, price1, "Line1", textcolor=color.green, style=label.style_none), label.delete(label1[1])

person ta_zoa    schedule 15.08.2020    source источник
comment
Ответы здесь обычно представляют собой исправления кода, поэтому для них требуется код. Какой код вы пробовали?   -  person PineCoders-LucF    schedule 15.08.2020
comment
Отредактировал мой пост с моим кодом. Спасибо :)   -  person ta_zoa    schedule 16.08.2020


Ответы (1)


В исходном коде было несколько проблем, в том числе:

  • переопределение не распространяется на none
  • не удаление строки ранее напечатанного бара (как и метка была)

Это сделает то, что вы ищете, с одной оговоркой (она рисует его из предыдущего бара). немного сложнее нарисовать его из текущего бара.

//@version=4
study("Line Example [MS]", overlay=true)

show1 = input(true, title="|- Use Line1?")
dS1 = input(true, title="|- Short Line1")
price1 = close

var line l1 = na
if show1 
    l1 := line.new(bar_index[1], price1, bar_index, price1, color=color.red, style=line.style_solid, width=2, extend=dS1 ? extend.right : extend.both)
    label label1 = label.new(bar_index, price1, "Line1", textcolor=color.green, style=label.style_none)
    
    line.delete(l1[1])
    label.delete(label1[1])

Я предлагаю прочитать больше на line.new: https://marketscripters.com/how-to-use-pine-scripts-v4-line-function/

person André    schedule 18.08.2020