Прошу помочь в написании индикатора горизонтальной линии уровня Open определенной свечи на примере кода:
Согласно этому коду линия открытия свечи 16:30 соединяется кривой линией с открытием свечи 16:30 следующего дня.

Мне же требуется прямая горизонтальная линия до конца дня.
Пример:

Код примера:
| Код |
|---|
Settings =
{
Name = "*line",
line =
{
{
Name = "line",
Color = RGB(140, 140, 140),
Type = TYPE_LINE
}
}
}
function Init()
return 1
end
function OnCalculate(index)
if (T(index).hour == 16) and (T(index).min == 30) then
return O(index)
end
end |

Мне же требуется прямая горизонтальная линия до конца дня.
Пример:

Код примера:
| Код |
|---|
Settings=
{
Name="*DayOpenPrice",
line =
{
{
Name = "DayOpenPrice_line",
Color = RGB(0,0,255),
Type = TYPE_LINE,
Width = 2
}
}
}
local curDayOpenPrice = nil
local lastSize = 0
function Init()
return 1
end
function GetCandleDate(ind) -- Получить полную дату свечи по индексу ind
local dt = T(ind)
local candleDate = 0
if dt then
candleDate = (tonumber(dt.year) or 0) * 10000 -- 20230000
candleDate = candleDate + (tonumber(dt.month) or 0) * 100 -- 20230700
candleDate = candleDate + (tonumber(dt.day) or 0) -- 20230728
end
return candleDate
end
function OnCalculate(index)
if index == 0 then
return nil
end
if index == (lastSize-1) then -- Для проверки не каждый тик, а только при появлении новой свечи
return nil
else
lastSize = Size() -- Запомнить текущее количество свечей
local curDate = GetCandleDate(index) -- Дата текущей свечи
local lastDate = GetCandleDate(index - 1) -- Дата предыдущей свечи
if curDate > lastDate then -- Если дата на текущей свече больше даты на предыдущей (т.е. сменилась дата - начался новый торговый день)
curDayOpenPrice = O(index) -- Сохранить данные цены открытия текущей свечи для отрисовки на графике
end
end
return curDayOpenPrice
end
|