Как я могу провести линию конкретной свечи в определенное время определенного символа?

Я хочу нарисовать линию конкретной свечи в определенное время (9:30) определенного символа (цены открытия) в качестве ступенчатой ​​линии; когда откроется следующая свеча в 9:30, линия принимает новое значение новой свечи. Я пытался сделать это сам, но это выглядит не так, как мне хотелось бы.

Поэтому я ввожу данные как открытые, возможно, проблема с датой времени; Я назвал это сеансом, но input.time, похоже, не работает; по крайней мере, с моими навыками. Я извлекаю данные по значению (Данные * 1), потому что это постоянная линия цены открытия, и рисую ее.

Может ли КТО-нибудь изменить его, чтобы он работал так, как он должен работать? как постоянная горизонтальная линия от 9:30 до следующей свечи 9:30, затем начиная с новой свечи 9:30 (ступенчатая линия?)

//@version=5
indicator("ONE LINE", overlay=true)

show1 = input(true, "LINE ONE", inline = "LINE ONE")
color1 = input(#ff0000, "", inline = "LINE ONE")


LineOneData = input.source(open, title = "LINE ONE")
LineOneDate = input.session("0930-0931")
LineOneValue = LineOneData * 1

plot(show1 ? LineOneValue : na, color=color1, linewidth=4, title = "LINE ONE")


Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Community 02.09.2024 08:01
Работа с датами и временем в языке Java
Работа с датами и временем в языке Java
Работа с датами и временем в языке Java была сильно переработана начиная с версии Java 8 и далее с появлением библиотеки java.time.
0
1
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

с not na и time имеет логическую переменную

issession = not na(time(timeframe.period,LineOneDate))

что-то вроде этого

//@version=5
indicator("ONE LINE", overlay=true)

show1 = input(true, "LINE ONE", inline = "LINE ONE")
color1 = input(#ff0000, "", inline = "LINE ONE")


LineOneData = input.source(open, title = "LINE ONE")
LineOneDate = input.session("0930-0931")

issession = not na(time(timeframe.period,LineOneDate))
LineOneValue = issession ? LineOneData * 1 : na

plot(show1 ? LineOneValue : na, color=color1, linewidth=4, title = "LINE ONE")

Привет! Большое спасибо за уделенное время. Мы почти у цели;

Bor Maszyna 02.09.2024 23:12
ibb.co/J5FXBMB
Bor Maszyna 02.09.2024 23:13

Ваша линия на загруженной мной картинке красная, и я хочу, чтобы она была такой же, как синяя; как ось, горизонтальная линия.

Bor Maszyna 02.09.2024 23:16

Если бы Вы могли немного подкорректировать код, я был бы очень признателен.

Bor Maszyna 02.09.2024 23:24

И если у меня есть просьба; Необходимо определить значение линии (как сейчас), чтобы я мог использовать его позже в своих следующих вычислениях, эту часть я могу сделать самостоятельно; просто нужна эта строчка ;-D Заранее спасибо.

Bor Maszyna 02.09.2024 23:52
Ответ принят как подходящий

Вы должны переназначить переменную LineOneValue

//@version=5
indicator("ONE LINE", overlay=true)

show1 = input(true, "LINE ONE", inline = "LINE ONE")
color1 = input(#ff0000, "", inline = "LINE ONE")


LineOneData = input.source(open, title = "LINE ONE")
LineOneDate = input.session("0930-0931")

issession = not na(time(timeframe.period,LineOneDate))
var LineOneValue = 0.0
LineOneValue := issession ? LineOneData * 1 : LineOneValue

plot(show1 ? LineOneValue : na, color=color1, linewidth=4, title = "LINE ONE")

Другие вопросы по теме