Мне нужно нарисовать горизонтальную линию для каждого сеанса до конца сеанса. Линия должна начинаться с определенного момента после начала сессии, а таймфрейм этой свечи составляет 3 минуты. Но мой график будет в другом временном интервале, скажем, 15 или 30 минут. Пример
Таймфрейм моего графика составляет 15 минут, и мне нужно нарисовать горизонтальную линию по цене открытия, скажем, 9:33, с таймфреймом свечи 3 минуты. То, что я получил на данный момент, приведено ниже
Это нарисует горизонтальную линию в данный момент времени.
//@version=5
indicator("My Indicator", overlay=true)
var barCount = 0
count = ta.barssince(session.isfirstbar)
if session.islastbar
barCount := count
var openPrice = 0.0
openPrice := (hour== 9 and minute == 33) ? open : openPrice
DayOpen = request.security(syminfo.tickerid, "1", open)
plot(openPrice)
Но этот код будет рисовать линию только в том случае, если время графика составляет 3 минуты. Если я переключусь на 15 минут, то приведенный выше код не будет рисовать линию.
Попробуйте использовать функции hour()
и minute()
с time
в параметре.
так
//@version=5
indicator("My Indicator", overlay=true)
var barCount = 0
count = ta.barssince(session.isfirstbar)
if session.islastbar
barCount := count
var openPrice = 0.0
openPrice := hour(time) == 9 and minute(time) == 33 ? open : openPrice
DayOpen = request.security(syminfo.tickerid, "1", open)
plot(openPrice)
//@version=5
indicator("Help openTF3m", overlay = true)
var barCount = 0
count = ta.barssince(session.isfirstbar)
if session.islastbar
barCount := count
var float openPrice = na
//openPrice := (hour(time) == 9 and minute(time) == 33 ) ? begin : openPrice
DayOpen = request.security(syminfo.tickerid, "1", open)
array<float> begin = request.security_lower_tf(syminfo.tickerid, "1", open)
int SizeArr = array.size(begin)
int tt = timestamp(year, month, dayofmonth, 09, 33, 00)
if time <= tt and tt <= (time_close - 1) and (timenow - time)/(60*1000) < 100000
i = SizeArr - (time_close("", 0) - tt)/(60*1000)
openPrice := array.get(begin, i)
plot(openPrice, "openPrice")
Обратите внимание, что:
Графики, основанные на внутрибарных данных, могут не отображаться на всех доступных столбцах диаграммы, поскольку request.security_lower_tf()
может получить доступ только к самым последним 100 000 интрабарам, доступным из запрошенного контекста. При выполнении этой функции на панели диаграммы, у которой нет доступных внутрибарных данных, она вернет пустой массив.
спасибо за ваш ответ. Нет, это не работает, когда я переключаюсь на более высокий таймфрейм. Я думаю, что для этого потребовалось использование request-security-lower-tf. Но я не уверен, как получить цену открытия из request-security-lower-tf для конкретной свечи?