Я наношу на графики значки / ярлыки с использованием функции AddLabel
Один из ее параметров - дата и время свечи.
Я получаю время свечи из источника данных с помощью
Выглядит для постановки ярлыка на последнюю свечку это приблизительно так:
local DATE, TIME = fCheckLastBarDateTime(ds)
fAddLabel (TheBaseSec.chart_name, "=", lastprice, DATE, TIME, R, G, 20, FONT_HEIGHT, HINT)
function fCheckLastBarDateTime(ds, index)
local lastbar_index
if index then
lastbar_index = index
else
lastbar_index = ds:Size() -- индекс последнего бара
end
local datetime = ds:T(lastbar_index)
local sdatetime = {} -- стринговая переменная с датой и временем
-- Приводим параметры к значению хх (вместо х)
for k, v in pairs (datetime) do -- перебираем таблицу datetime извлеченную из временного параметра последнего бара для добавления символов к одиночным значениям
local param = tostring(v) -- параметр в которое считывается значение отдельного поля
if #param == 1 then param = "0"..param ; end -- если только один символ, значит усечен 0 и его надо вновь добавить
sdatetime [k] = param -- записываем измененный параметр
end -- конец перебора полей таблицы времени
-- Формируем дату и время в нужном формате
local ddate = tostring(sdatetime.year)..tostring(sdatetime.month)..tostring(sdatetime.day) -- дата в виде строки
local ttime = tostring(sdatetime.hour)..tostring(sdatetime.min)..tostring(sdatetime.sec) -- время в виде строки
return ddate, ttime, datetime
end
Однако, позиционируется ярлык на 1-2 бара раньше чем нужно? С чем это может быть связано? С путаницей времени начала и конца свечи? Иди с тем, что к началу бара привязывается край значка?
Один из ее параметров - дата и время свечи.
Я получаю время свечи из источника данных с помощью
Выглядит для постановки ярлыка на последнюю свечку это приблизительно так:
local DATE, TIME = fCheckLastBarDateTime(ds)
fAddLabel (TheBaseSec.chart_name, "=", lastprice, DATE, TIME, R, G, 20, FONT_HEIGHT, HINT)
function fCheckLastBarDateTime(ds, index)
local lastbar_index
if index then
lastbar_index = index
else
lastbar_index = ds:Size() -- индекс последнего бара
end
local datetime = ds:T(lastbar_index)
local sdatetime = {} -- стринговая переменная с датой и временем
-- Приводим параметры к значению хх (вместо х)
for k, v in pairs (datetime) do -- перебираем таблицу datetime извлеченную из временного параметра последнего бара для добавления символов к одиночным значениям
local param = tostring(v) -- параметр в которое считывается значение отдельного поля
if #param == 1 then param = "0"..param ; end -- если только один символ, значит усечен 0 и его надо вновь добавить
sdatetime [k] = param -- записываем измененный параметр
end -- конец перебора полей таблицы времени
-- Формируем дату и время в нужном формате
local ddate = tostring(sdatetime.year)..tostring(sdatetime.month)..tostring(sdatetime.day) -- дата в виде строки
local ttime = tostring(sdatetime.hour)..tostring(sdatetime.min)..tostring(sdatetime.sec) -- время в виде строки
return ddate, ttime, datetime
end
Однако, позиционируется ярлык на 1-2 бара раньше чем нужно? С чем это может быть связано? С путаницей времени начала и конца свечи? Иди с тем, что к началу бара привязывается край значка?