можно ли нарисовать горизонтальную линию с помощью функции line.new () - PullRequest
0 голосов
/ 11 июля 2020

Я позаимствовал код из скрипта с открытым исходным кодом. Он показывает aws разворотные линии тренда максимум / минимум. Я также хочу, чтобы он рисовал горизонтальные уровни поддержки / сопротивления от каждой точки разворота, но я не уверен, как это сделать.

Я пробовал несколько возможностей, но поскольку line.new () не имеет offset или show_last, я не мог ' t исправить мою проблему.

проблема / решение: x2 необходимо установить после поворота, но bar_index [-1] невозможно

некоторые плохие результаты, которые у меня были: (1) строка извлекается из предыдущего бара за точкой поворота. (2) линия рисуется через 20 баров при подтверждении разворота. (3) линии нарисованы, кроме самого последнего поворота.

вот код. top3 - это переменная pivot high. Я написал первый оператор if. Второй оператор if в конце предназначен для диагональных линий тренда

ltop3 = valuewhen(top3, top3, 1)
bst3 = 0
bst3 := top3 ? 1 : nz(bst3[1]) + 1
float t_angle3 = 0.0
t_angle3 := t_angle3[1]
if not na(ltop3) and not na(top3)
    line tline = na
    line hline = na
    dt = time - time[1]
    if top3
        hline := line.new(bar_index - bst3 - rb3, high[bst3 + rb3], bar_index - rb3, high[bst3 + rb3], color = color.purple, extend = extend.right)
    if ltop3 > top3
        tline := line.new(bar_index - bst3[1] - rb3, high[bst3[1] + rb3], bar_index - rb3, high[rb3], color = color.red, extend = extend.right)

Link is image. Использование приведенного выше кода дает (1) плохой результат, когда линия проводится от предыдущего максимума, а не от точки разворота

1 Ответ

0 голосов
/ 12 июля 2020

Исправлено. Я установил y1 и y2 в качестве максимума точки поворота, а x1 - смещение назад на 25 баров, так что это начало с максимума точки поворота

    if top3
        hline := line.new(bar_index[25], top3, bar_index, top3, color = color.purple, extend = extend.right)
...