Глубина истории на графиках акций

Страницы: 1
RSS
Глубина истории на графиках акций, Как увеличить количество свечей?
 
Мне надо выполнить тестирование на исторических данных по акциям на 10 минутном графике, но не хватает глубины истории и из-за этого нельзя получить статистически значимые результаты.

В руководстве в разделе "перезаказ данных" написано, что на рабочем месте QUIK хранится до 65000 свечей. Такое количество свечей имеется только на минутном графике, а с увеличением периода оно уменьшается. На примере акций Сбербанка картина такая:
1 минута - 66061 свечей с 27.12.2017
5 минут - 21642 свечей с 10.05.2017
10 минут - 3106 свечей с 30.04.2018
1 час - 4270 свечей с 16.09.2016
1 день - 3142 свечей с 12.12.2005
В целом наблюдается закономерность: чем больше интервал графика, тем глубже история свечей. Поэтому непонятно, почему на 10 минутном графике  история начинается позднее, чем на 1 и 5 минутном графиках и свечей на порядок меньше. Может это связано с тем, что раньше я постоянно работал с 1м, 5м, 1ч и 1д, а 10 минутные графики никогда не вызывал?

Вопрос такой: можно ли увеличить глубину истории на 10 минутном графике соразмерно с другими периодами, скажем до 10000-15000 свечей?  может где-то есть архивы исторических данных?
 
Добрый день.
3000 свечей + текущая сессия это кол-во свечей, которое берется с сервера брокера, все остальное накапливается локально на рабочем месте QUIK. После перезаказа архива графиков история удалится и останется то, что есть у брокера, максимальное кол-во это 3000 свечей.Чем выше интервал, тем больше история.

Цитата
Поэтому непонятно, почему на 10 минутном графике  история начинается позднее, чем на 1 и 5 минутном графиках и свечей на порядок меньше. Может это связано с тем, что раньше я постоянно работал с 1м, 5м, 1ч и 1д, а 10 минутные графики никогда не вызывал?
Да это так.
 
Цитата
Egor Zaytsev написал:
Да это так.
А если это так,  то для накапливания  истории сверх 3000 свечей надо ежедневно вызывать графики всех интересующих  акций на всех интересующих интервалах, что трудоемко  и практически нереализуемо.
Если же  в течение дня график акции не просматривал, или не запускал терминал, то должна образоваться  дыра истории.
В Lua есть функция CreateDataSource для заказа данных по нужному интервалу. По идее если написать скрипт с перебором интересующих акций и интервалов и запускать его ежедневно 1 раз, то можно накопить историю.
Но и здесь я столкнулся с непонятной проблемой: функция не работает - выдает сообщение "attempt to call global 'CreateDataSource' (a nil value)".
 
Добрый день.


Выложите полный скрипт на котором возникает проблема.
 
Я вызывал функцию CreateDataSource из индикатора, а в списке доступных из индикатора функций ее нет. Видно в этом и есть причина, что не работает.
Однако функции getCandlesByIndex тоже нет в этом списке, но она в индикаторе работает нормально.
Если вызвать CreateDataSource из скрипта, то сообщения   "attempt to call global 'CreateDataSource' (a nil value)" уже нет, но извлечь элементы таблицы data_source не получается. Полный код приведен ниже.
Операторы message  и PrintDbgStr выдают сообщение  S=function: 152CAE70 Cl=nil
Пробовал получить цену close 1-й свечи так: Cl=data_source[1].С и тоже безуспешно.

Код
function main()
 data_source=CreateDataSource("TQBR","SBER",INTERVAL_M1) 
 S=data_source.Size -- кол-во свечей 
 Cl=data_source.C(1) -- Close 1-й свечи
 PrintDbgStr("Size=" .. tostring(S) .. " Close1=" .. tostring(Cl))  
 message("Size=" .. tostring(S) .. " Close1=" .. tostring(Cl))
end
 
Добрый вечер, у Вас ошибка в коде:
Вместо точек, укажите двоеточие:Сейчас так:
S=data_source.Size -- кол-во свечей
  Cl=data_source.C(1) -- Close 1-й свечи
Сделайте так:

S=data_source:Size -- кол-во свечей   Cl=data_source:C(1) -- Close 1-й свечи
 
Цитата
Egor Zaytsev написал:
Добрый вечер, у Вас ошибка в коде:
Вместо точек, укажите двоеточие:Сейчас так:
S=data_source.Size -- кол-во свечей
  Cl=data_source.C(1) -- Close 1-й свечи
Сделайте так:

S=data_source:Size -- кол-во свечей  
Cl=data_source:C(1) -- Close 1-й свечи
Поправимся:


S=data_source:Size()-- кол-во свечей   Cl=data_source:C(1) -- Close 1-й свечи
 
Да, с двоеточием работает. Чтобы таблица data_source содержала ненулевые значения, график должен быть открыт, интервал графика не важен.
Страницы: 1
Читают тему
Наверх