Старатель пишет: В обоих случаях должно возвращаться одинаковое число свечей. Если это не так, - ищите ошибку у себя.
Интересно, кто прав? :)
Цитата
Старатель пишет: В настройках графика нет пункта "отображать данные за один день", но есть настройка Intra-day, где указывается нужное время.
Хотел вставить скриншот, но сценарий страницы глючит, даже браузер "не отвечает". На словах объясню. Можете без ЭЦП и без подключения к серверу Квик запустить - там ищите. Контекстное меню графика - "Параметры текущего окна" - появится окно "Настройка параметров диаграммы" - вкладка "Диаграмма" - " Показывать графики" есть пункт "выбрать с" - можно выбрать на определённый день, но только до 18:45, так что, хоть там и
Цитата
Старатель пишет: нет пункта "отображать данные за один день"
однако, есть пункт с другим названием, но отображающий данные именно за один день.
Цитата
Старатель пишет: есть настройка Intra-day, где указывается нужное время.
Видимо, это может подойти тем, кто каждый день будет сохранять историю после 23:49. Приятного им времяпрепровождения.
Некто пишет: Хочу сделать скрипт, сохраняющий в файл историю, как с Финама (потом сравню ).
Как я и хотел, скрипт сохраняет в файл историю в том же формате, что и один из возможных при скачивании с Финама. Есть только одна сложность: в текущей версии мой код просто сохраняет данные всех свечей на минутном периоде. Чтобы сравнить с файлами Финама, пришлось в текстовом редакторе вырезать данные по трём дням в отдельные файлы. Сравнил - они совпадают байт-в-байт. Чтобы не возиться с редактированием в текстовом редакторе, я хотел установить через контекстное меню графика Квика ограничение - отображать график за один день, сохранять моим скриптом его данные в файл, потом сравнивать с файлом с Финама с данными за тот же день. На графике, при настройке в контекстном меню отображать данные за один день, отображаются данные по фьючерсам только до вечерней сессии (кажется, до 18:49). Но мне-то надо до 23:49!
Вопрос: можно ли как-то настроить в Квике отбражение минутных графиков фьючерсов с 10:00 до 23:49?
Если нет, то придётся мне совершенствовать код, чтобы он сам сохранял историю за каждый день по отдельным файлам.
В своём скрипте сначала вызываю getNumCandles(), потом getCandlesByIndex(), потом сравниваю кол-во свечей, которые они вернули. Для графика Сбера периодов 1 и 2 мин они равны. Для Si getNumCandles() в 21:30 возвращает бОльшее число. Возможно, это связано с тем, что на FORTS после 19:00 начинается новая сессия?
Некто пишет: Вопрос: как из функции, которая вызвана из другой, возможно, с большой вложенностью, вывести сообщение и затем завершить работу скрипта без цепочки "return"?
Завершить работу скрипта прямо в той функции, где обнаружена ошибка, без возврата и обработки. error() во-первых требует вызова ра?ом во-вторых, возвращает управление.
Из main() вызов функции f(p), в начале которой проверяется параметр p:
Код
if p==nil then
message("Ошибка.")
os.exit()
end
Раньше я os.exit() никогда не использовал, ожидал, что просто завершится скрипт. Вместо этого Quik закрылся в один миг, окна с сообщением "Ошибка" я не видел. Обычно Квик спрашивает подтверждение "Вы действительно желаете завершить работу?", но в данной ситуации этого не было.
Вопрос: как из функции, которая вызвана из другой, возможно, с большой вложенностью, вывести сообщение и затем завершить работу скрипта без цепочки "return"?
Sergey Gorokhov пишет: Остальные ограничения из перечисленных такие же как и в обычном LUA
Ища в интернете ответ на вопрос
Цитата
Некто пишет: Какая максимальная длина идентификаторов (имён функций, перемеменных, ну и что там ещё бывает) поддерживается в QLua?
я находил примерно такое: "Именами (идентификаторами) переменных в Lua могут быть любые последовательности из букв, цифр и символа подчеркивания, начинающиеся не с цифры. " и ни слова про длину.
Sergey Gorokhov пишет: Кстати у нас даже готовый пример есть:
Просматривая код скрипта, я сразу обратил внимание, что в нём без нужды используется OnInit(), OnStop(), while WORK do. Я делаю без этого. Запустил скрипт, жду... А он всё работает и работает... Пришлось останавливать. А выход из while WORK do ... end сделать нельзя?
Sergey Gorokhov пишет: Попробуйте поискать например в документации Qlua.chm
Я нашёл нужную инфу и закодировал раньше, чем прочёл написанные Вами строки :D
Цитата
Sergey Gorokhov пишет: Нет это не "из пушки по воробьям" а вполне нормальный доступ к данным.
Изучать 2 функции, кодировать код с колбэком, изучать "то что создается функцией CreateDataSource", и т. д. и т. п. вместо элементарного использования getCandlesByIndex? Теперь понятно, почему Quick такой глючный - его программируют не по KISS, а по "вполне нормальным" принципам.
Теперь мне надо форматированно сохранять данные из таблицы в файл истории. Я подозреваю, что форматирование будет сложнее того, что я делал на Lua раньше.
А я уж начал с getCandlesByIndex возиться... Все темы на этом форуме, в инете, которые через поиск нашел посмотрел, но не нашёл инфу о структуре TABLE t, которую возвращает эта функция. Может, кто подскажет?
Цитата
Sergey Gorokhov пишет: Задачу можно решить без открытия окна с графиком, через функции CreateDataSource и SetUpdateCallback
А это не "из пушки по воробьям"? Мне всего-то надо раз в день сохранить в файл истории новые данные.
s_mike@rambler.ru пишет: Создайте таблицу с целочисленными индексами и присваивайте по этим индексам таблицы с нужными вам полями.
С этим разобрался.
Теперь подскажите, пожалуйста, как получать год, месяц, число, час, минута, OHLC для свечи? Пытался по справке разобраться, по разделу "Функции для доступа к источнику данных" и "Функции O, H, L, C, V, T", но там всё очень сумбурно - не понял.
Хочу сделать скрипт, сохраняющий в файл историю, как с Финама (потом сравню ;-) ). Думаю сделать это по данным свечей графика (а как-то иначе можно?).
Для начала помогите, пожалуйста, разобраться с таблицами. Планирую сделать таблицу, в которую потом будут помещены данные всех свечей с графика. Нужны: год, месяц, число, час, минута, OHLC. На Си я бы описал структуру с OHLC и прочим, затем объявил бы массив таких структур. А как сделать это на Lua?
1. Какую точность для чисел с плавающей точкой обеспечивают переменные Lua?
2. Если надо будет передать переменную из скрипта на Lua в модуль, написанный на Си, то в переменных какого типа языка Си лучше хранить значения High, Low, Open, Close? Нужно использовать long double, или хватит double?