Нашел такой код для считывания данных от брокера (может есть и проще?), но не понимаю пока механизм/принцип работы этой функции
Код
...
DS = CreateDataSource("TQBR", sins, INTERVAL_M1)
if DS:Size() == 0 then
DS:SetEmptyCallback()
sleep(200)
end
...
Считываю в цикле данные по нужным мне бумагам, в течении одной сессии и заметил, что
Код
DS:Size()
количество свечей в процессе повторных запусков этого кода меняется, стал анализировать полученные данные и запутался, решил вот сформулировать несколько вопросов, если Вы на них ответите, то может быть что-то прояснится и сделаю для себя какие-то выводы, вопрос Как работает эта функция?
Код
if DS:Size() == 0 then
Если понимать эту команду буквально, то данные (по идее) должны считываться в локальную базу данных только тогда, когда эта база пустая, но эта функция работает и тогда когда в текущей сессии, данные уже скачивались ранее. Я на своем опыте заметил, что сначала , при первом запуске количество свечей около 3000 , а позднее при повторных запусках этой функции, по текущему инструменту, количество свечей увеличивается и доходит до 4 с лишним тысяч в течении дня. Вот не могли бы Вы как то "разжевать" как выполняется механизм заполнения свечей из бд брокера или биржи ( не знаю откуда идут данные, по идее должны идти с биржи) ко мне на комп в бд?
Андрей написал: Нашел такой код для считывания данных от брокера (может есть и проще?), но не понимаю пока механизм/принцип работы этой функции
Код
.. .
DS = CreateDataSource ( "TQBR" , sins, INTERVAL_M1)
if DS: Size () = = 0 then
DS: SetEmptyCallback ()
sleep ( 200 )
end
.. .
Считываю в цикле данные по нужным мне бумагам, в течении одной сессии и заметил, что
Код
DS: Size ()
количество свечей в процессе повторных запусков этого кода меняется, стал анализировать полученные данные и запутался, решил вот сформулировать несколько вопросов, если Вы на них ответите, то может быть что-то прояснится и сделаю для себя какие-то выводы, вопрос Как работает эта функция?
Код
if DS: Size () = = 0 then
Если понимать эту команду буквально, то данные (по идее) должны считываться в локальную базу данных только тогда, когда эта база пустая, но эта функция работает и тогда когда в текущей сессии, данные уже скачивались ранее. Я на своем опыте заметил, что сначала , при первом запуске количество свечей около 3000 , а позднее при повторных запусках этой функции, по текущему инструменту, количество свечей увеличивается и доходит до 4 с лишним тысяч в течении дня. Вот не могли бы Вы как то "разжевать" как выполняется механизм заполнения свечей из бд брокера или биржи ( не знаю откуда идут данные, по идее должны идти с биржи) ко мне на комп в бд?
Добрый день.
Да, количество свечей при DS: Size () будет меняться, так как функция возвращает текущее количество свечей в источнике данных, в процессе торговой сессии свечки естественно появляются на графике. Ограничение на кол-во свечей действительно 3000 тысячи + текущая сессия, но данное ограничение обусловлено сервером. Все что свыше этого кол-ва копится непосредственно на терминале пользователя. Кол-во свечей в этом случае может доходить до 65 тысяч.
Egor Zaytsev написал: Все что свыше этого кол-ва копится непосредственно на терминале пользователя. Кол-во свечей в этом случае может доходить до 65 тысяч.
Большое спасибо за ответ, но если все это так, почему нет функции в Квике, для чтения этих данных (непосредственно на терминале пользователя) , это было бы удобно и логично, каждый бы сам собирал у себя все необходимые исторические данные и тестировал на них свой код, а не пользовался бы этими данными через десятки вспомогательных программ тестирования, зачем весь этот огород придуман? И ведь Lua сам отлично строит графики, а в винде не трудно создавать окна (ну или в формате html, lua может и это). Конечно все это я думаю можно написать и самому, но времени уйдет очень много. Почему Квик не развивается в этих направлениях? Мне кажется так удобнее было бы работать.
Когда-то я вносил предложение: значение ограничения количества свечей по умолчанию (3000) вывести как параметр в настройках QUIK. Далеко не всем нужны даже 3000 свечей, не говоря уже о 65000. Лично меня устроили бы и 300 свечей. Экономия памяти, трафика и времени процессора - очевидны, а для меня просто необходимы. Работаю исключительно на малых ТФ, свечи копятся быстро, с какого-то момента QUIK начинает деградировать. Временно вынужден периодически делать обрезку через перезаказ данных.
Это предложение даже приняли к реализации, наряду с несколькими другими моими предложениями. Есть предположение, что его даже реализовали. В "Редактирование настроек графика" появился параметр "Диапазон" данных - "последние xxxxx интервалов". Он относится к графику, а не к источнику данных. На графике я стал видеть заданное количество свечей, но начальный размер источника при этом, естественно, не поменялся. А на график из скрипта я вообще не смотрю. Я недоумеваю - неужели я не был понят правильно? Извините, если это не реализация моего предложения и до него еще не дошла очередь, просто хотел определенности.
На всякий случай еще раз вношу свое предложение. Значение ограничения начального количества свечей для источника данных (по умолчанию 3000) вывести как параметр в настройках QUIK.
Egor Zaytsev написал: Все что свыше этого кол-ва копится непосредственно на терминале пользователя. Кол-во свечей в этом случае может доходить до 65 тысяч.
Большое спасибо за ответ, но если все это так, почему нет функции в Квике, для чтения этих данных (непосредственно на терминале пользователя) , это было бы удобно и логично, каждый бы сам собирал у себя все необходимые исторические данные и тестировал на них свой код, а не пользовался бы этими данными через десятки вспомогательных программ тестирования, зачем весь этот огород придуман? И ведь Lua сам отлично строит графики, а в винде не трудно создавать окна (ну или в формате html, lua может и это). Конечно все это я думаю можно написать и самому, но времени уйдет очень много. Почему Квик не развивается в этих направлениях? Мне кажется так удобнее было бы работать.
Добрый день.
Не совсем понятно, чем текущий функционал не удобен. Есть ряд функций для работы с графиками:
Egor Zaytsev написал: Не совсем понятно, чем текущий функционал не удобен
Я наверно плохо объясняю, попытаюсь еще раз, этими функциями можно тестировать данные в реальном режиме времени, но не все люди себе такое могут позволить, некоторые люди работают на своей основной работе, в то время когда открыта биржа. Поэтому им проще отлаживать код по историческим данным, а не по реальным. А исторические данные надо где то брать во первых, а во вторых эти функции на исторических данных не работают. (может так понятнее получилось, если нет, то тему можно закрыть. Видимо на бирже играют только те люди, которые могут себе позволить писать и отлаживать код днем, на реальных данных)
Борис Гудылин написал: Лично меня устроили бы и 300 свечей.
Я поддерживаю Бориса, меня бы тоже устроили 300 свечей, если кому то надо больше, то ничего не мешает написать еще один код и считывать данные за другой период свечей. Поэтому просьба к разработчикам - включить заявку Бориса Гудылина в план доработок программы.
И кстати кто ввел ограничение в 65тыс свечей?, на терминале пользователя мне кажется можно не ограничивать накопление количества сечей, может кто-то хочет собрать свечи на одном интервале за 10 лет, сейчас технические возможности, как оперативной памяти, так и жестких дисков достаточно большие, вполне позволяю хранить данные любого размера. Мне кажется эти 65тыс свечей могли прийти из ограничения количества строк в экселе, и сейчас эти ограничения можно тоже исправить. Каждый пользователь сам может регулировать количество исторических данных и сам оценивать в зависимости от своего железа, производительность работы в целом.
Egor Zaytsev написал: Не совсем понятно, чем текущий функционал не удобен
Я наверно плохо объясняю, попытаюсь еще раз, этими функциями можно тестировать данные в реальном режиме времени, но не все люди себе такое могут позволить, некоторые люди работают на своей основной работе, в то время когда открыта биржа. Поэтому им проще отлаживать код по историческим данным, а не по реальным. А исторические данные надо где то брать во первых, а во вторых эти функции на исторических данных не работают. (может так понятнее получилось, если нет, то тему можно закрыть. Видимо на бирже играют только те люди, которые могут себе позволить писать и отлаживать код днем, на реальных данных)
Добрый день.
Исторические данные как правило накапливает брокер, если он приобрел у нас модуль введения архива. Если брокер его приобрел, то проблем с получение исторических данных в графика быть не должно.
Цитата
а во вторых эти функции на исторических данных не работают
Почему? Если у Вас не работает, то приведите пример скрипта и описание проблемы.
Борис Гудылин написал: Лично меня устроили бы и 300 свечей.
Я поддерживаю Бориса, меня бы тоже устроили 300 свечей, если кому то надо больше, то ничего не мешает написать еще один код и считывать данные за другой период свечей. Поэтому просьба к разработчикам - включить заявку Бориса Гудылина в план доработок программы.
И кстати кто ввел ограничение в 65тыс свечей?, на терминале пользователя мне кажется можно не ограничивать накопление количества сечей, может кто-то хочет собрать свечи на одном интервале за 10 лет, сейчас технические возможности, как оперативной памяти, так и жестких дисков достаточно большие, вполне позволяю хранить данные любого размера. Мне кажется эти 65тыс свечей могли прийти из ограничения количества строк в экселе, и сейчас эти ограничения можно тоже исправить. Каждый пользователь сам может регулировать количество исторических данных и сам оценивать в зависимости от своего железа, производительность работы в целом.
Здравствуйте!
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Спасибо большое, что откликаетесь на наши пожелания, это очень приятно, когда разработчики идут на встречу пользователям, ведь Квик это бесплатная система. Но я уже давно заменит минус в диалоге работы разработчика с пользователем. В системе Квика нет прозрачности, это очень мешает всем и Вам и нам. Поясню на примере. Я одно время работал с Питерским Кодексом, работа по доработкам шла примерно так же пользователи просили, разработчики делали сколько могли и что считали нужным, но непонятки оставались, так как пользователи не видели и не понимали, что сделано, что нет, что в доработке, а что сделано, но работает не так как хотелось. А потом они выложили в открытый доступ, так же на форуме в одной из тем план своей работы, что планируется сделать, какая очередность доработок, кто просил эти доработки и что сделано, а что взято на перспективу. После этого стало работать легче всем и пользователям и разработчикам, их никто не упрекал и все ждали спокойно своей очереди доработки. Поэтому я предлагаю Вам поступить так же , создать отдельную тему в этом разделе и выкладывать в общий доступ план ваших доработок. Большинство пользователей понимают, что любая доработка может не сразу заработать, но мы поможем вам их тестировать, на это у разработчика тоже уходит много времени, вы его просто сэкономите. Большинство так же понимают, что любая доработка кода, может привести к изменению , ранее правильно работающего кода, мы это тоже поможем вам протестировать. Но поверьте, так будет проще всем и у пользователей будет больше доверия к разработчикам и меньше обид. От этого выиграют все. Кто за? Поднимите руки!