Подписался на источник данных, установил тайм-фрейм месяц и прошёл по списку инструментов. Что выяснилось - у некоторых инструментов есть свечи, имеющие разные индексы (id), но с одной и той же датой и РАЗНЫМ содержимым:
Подписываюсь и читаю исторические данные следующим образом:
Код |
---|
SECURITIES[scode][tf].DS, _error = CreateDataSource('TQBR', scode, tf_value)
SECURITIES[scode][tf].LastBarIndex = SECURITIES[scode][tf].DS:Size()
for i = 1, SECURITIES[scode][tf].LastBarIndex-1 do
FillTableRow(SECURITIES, scode, tf, i)
end
функция FillTableRow - просто выводит в таблицу данные:
function FillTableRowCandles(SECURITIES, scode, tf, index)
tmp = InsertRow(t_id_IND, -1)
SetCell(t_id_IND, tmp, 0, string.format("%04d-%02d-%02d %02d:%02d:%02d",
SECURITIES[scode][tf].DS:T(index).year, SECURITIES[scode][tf].DS:T(index).month, SECURITIES[scode][tf].DS:T(index).day,
SECURITIES[scode][tf].DS:T(index).hour, SECURITIES[scode][tf].DS:T(index).min, SECURITIES[scode][tf].DS:T(index).sec))
SetCell(t_id_IND, tmp, 1, tostring(scode))
SetCell(t_id_IND, tmp, 2, 'TQBR')
SetCell(t_id_IND, tmp, 3, tostring(tf))
SetCell(t_id_IND, tmp, 4, tostring(index), index)
SetCell(t_id_IND, tmp, 5, tostring(SECURITIES[scode][tf].DS:O(index)))
SetCell(t_id_IND, tmp, 6, tostring(SECURITIES[scode][tf].DS:L(index)))
SetCell(t_id_IND, tmp, 7, tostring(SECURITIES[scode][tf].DS:H(index)))
SetCell(t_id_IND, tmp, 8, tostring(SECURITIES[scode][tf].DS:C(index)))
SetCell(t_id_IND, tmp, 9, tostring(SECURITIES[scode][tf].DS:V(index)))
end
|
Вот даты с дублями (что характерно они все на тайм-фрейме месяц, хотя я подписываюсь и на другие тайм-фреймы):
│ 2007-03-01 00:00:00 │ GAZP │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ SNGS │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ IMOEX │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ PLZL │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ GMKN │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ LKOH │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ SNGSP │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ NVTK │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ ROSN │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ TATN │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ SBER │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ LKOH │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ SBER │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ ROSN │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ TATN │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ SNGSP │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ NVTK │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ GMKN │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ PLZL │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ GAZP │ MN1 │ 2 │
│ 2007-02-01 00:00:00 │ SNGS │ MN1 │ 2 │
│ 2007-03-01 00:00:00 │ IMOEX │ MN1 │ 2 │
Примеры дублей (для первой строки GAZP):
Код |
---|
┌────dt_date─┬─────────dt_datetime─┬─symbol─┬─class─┬─tf──┬──open─┬───low─┬───high─┬──close─┬────volume─┐
│ 2007-03-01 │ 2007-03-01 00:00:00 │ GAZP │ TQBR │ MN1 │ 266 │ 249 │ 270.4 │ 256.42 │ 7683639 │
│ 2007-03-01 │ 2007-03-01 00:00:00 │ GAZP │ TQBR │ MN1 │ 258.5 │ 239.8 │ 277.45 │ 270.87 │ 108418206 │ |
первая запись - свеча №15, вторая запись - свеча №17. На графике данные второй свечи (17), но перебор по данным источника находит именно две свечи. Квик - 8.0.5.2
Возможно ли проверить у вас корректность получаемых исторических данных на этом же таймфрейме и по этим инструментам?
С уважением, Сергей.