Узнать таймфрейм графика

Страницы: 1
RSS
Узнать таймфрейм графика
 
Как узнать таймфрейм графика с заданным идентификатором?
Надо делать так, как надо. А как не надо - делать не надо.
 
если я правильно понял, то функция getDataSourceInfo - работает только в скриптах-индикаторах, а без неё - врядли...
 
можно попытаться получить данные свечи с помощью getCandleByIndex и сравнить её с O,H,L,V свечи, полученной с помощью CreateDataSource, но, похоже одним CreateDataSource тут не обойтись - т.к. придётся сканировать все интервалы.
 
http://bot4sale.ru/blog-menu/qlua/spisok-statej/419-how-to-know-timeframe.html
 
Цитата
Валентин пишет:
http://bot4sale.ru/blog-menu/qlua/spisok-statej/419-how-to-know-timeframe.html
Я думал об этом... Довольно не надёжное решение, к тому же слишком затратное, если нужно мониторить, не изменился ли таймфрейм.

Задача стоит следующая: построить индикатор, рассчитанный по значениям с графика
1) на который индикатор наложен
2) и с другого, заданного идентификатором tag

Так вот, при изменении таймфрейма второго графика индикатор должен автоматически пересчитаться.
Надо делать так, как надо. А как не надо - делать не надо.
 
таймфрейм графика это что? 5 мин, часовой, дневной?
getCandlesByIndex возвращает в том числе timedate
запрашиваем две свечи рядом (предпоследняя и предпредпоследняя), вычисляем разность времени и вот?
 
Цитата
Валентин пишет:
getCandlesByIndex возвращает в том числе timedate
запрашиваем две свечи рядом (предпоследняя и предпредпоследняя), вычисляем разность времени и вот?
Этот способ не всегда даст верный результат.
Он не сработает, если между двумя последними свечами был перерыв (промежуток времени), когда не совершались сделки.
 
Цитата
Дмитрий пишет:
Цитата
Валентин пишет:
getCandlesByIndex возвращает в том числе timedate
запрашиваем две свечи рядом (предпоследняя и предпредпоследняя), вычисляем разность времени и вот?
Этот способ не всегда даст верный результат.
Он не сработает, если между двумя последними свечами был перерыв (промежуток времени), когда не совершались сделки.
Зачем две последние? любые две рядом. еще две любые рядом и еще две любые рядом. получаем три значения, берем то значение, которое чаще всего встречается. Конечно как то через одно место, но чем не вариант
 
http://www.bot4sale.ru/blog-menu/qlua/spisok-statej/419-how-to-know-timeframe.html
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Валентин пишет:
Зачем две последние? любые две рядом. еще две любые рядом и еще две любые рядом. получаем три значения, берем то значение, которое чаще всего встречается. Конечно как то через одно место, но чем не вариант
Цитата
Старатель пишет:
Цитата
Валентин пишет:
http://bot4sale.ru/blog-menu/qlua/spisok-statej/419-how-to-know-timeframe.html
Я думал об этом... Довольно не надёжное решение, к тому же слишком затратное, если нужно мониторить, не изменился ли таймфрейм.
 
Можно в начале работы получить время самой первой и второй свечи для каждого таймфрейма с помощью CreateDataSource и сохранить их в таблице.
Если брокер предоставляет графики цены за предыдущие дни, то в большинстве случаев для каждого таймфрейма время первой свечи будет отличаться от других таймфреймов (кроме случаев, когда по данному инструменту начиная с какого-то таймфрейма и для более крупных таймфреймов история будет насчитывать меньше 3000 свечей, но на этот случай мы сохраняем еще время второй свечи).
Данные из этой таблицы будут актуальны в течение всего торгового дня.
Дальше проверяем - если у нас нет совпадающих пар значений времени в полученной таблице, то можно смело их использовать для идентификации таймфрейма на открытом графике, к которому обращаемся посредством getCandleByIndex.
В подавляющем большинстве случаев это будет работать, а проверка значений пары свечей не будет слишком затратной.
 
Цитата
Дмитрий пишет:
Можно в начале работы получить время самой первой и второй свечи для каждого таймфрейма с помощью CreateDataSource и сохранить их в таблице.
Правда если речь идет об индикаторе, то CreateDataSource в нем использовать нельзя  :(
Если только делать это в отдельном скрипте, сохранять таблицу в файл, а в индикаторе читать ее из файла.
 
Цитата
Дмитрий пишет:
Можно в начале работы получить время самой первой и второй свечи
Да, спасибо. Для моей задачи (отслеживание изменения таймфрейма на втором графике) можно запомнить время первых двух свечей с помощью getCandlesByIndex. Если время любой свечи изменилось - значит изменён таймфрейм.
Правда есть вероятность, что при изменении таймфрейма время свечей не изменится. Но она не велика.
Надо делать так, как надо. А как не надо - делать не надо.
 
задача легко решается размещением графиков в одном окне но разных подокнах
 
Оба графика имеют разные таймфреймы.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Оба графика имеют разные таймфреймы.
Вообще-то , свечи - это нелинейное сжатие исходных данных.
Поэтому непонятна сама постановка задачи обработки двух свечных графиков разного тайма.
Какую задачу решаете?
--------------------------------------
Можно, например,
взять оба графика одного тайма(наименьшего) и далее вычислять нужные параметры на любом тайме больше исходного.
 
если рынок ликвидный,то можно определить разность времени двух соседних закрытых свечей
Страницы: 1
Читают тему
Наверх