вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.02.2015 13:16:21
Цитата
Серж пишет: to разработчикам , было бы удобно, если бы в QUIK добавили тот функционал, что есть в QMinEditor, в частности: открытие графика из архива локальной БД.
А что касается пожелания. Зарегистрируете его?
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource, какое правильное расположение функции CreateDataSource?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.02.2015 13:09:18
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.02.2015 23:24:36
Со 2-м и 3-м пунктом понятно. По 1-му пункту нужно именно задавать в "человеческом" формате: "dd.mm.yyyy", "yyyy-mm-dd", "dd/mm/yy", "yyyymmdd" и т.д. Можно как в Эксель: "D.M.YY", "YY-M-D", "D/M/Y", "YYMD"
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.02.2015 22:54:02
Задача: написать функцию форматирования даты:
Код
_DateFormat(date, input, output),
где date - дата в строковом формате, input - формат ввода, output - формат вывода.
Надо делать так, как надо. А как не надо - делать не надо.
Определить время начала интервала для заданного таймфрейма
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.02.2015 22:03:20
Цитата
Серж пишет: определить время начала интервала для заданного таймфрейма
Есть время события, есть таймфрейм. Нужно определить время начала свечи, если угодно. Вроде, уже сам сделал:
Код
function getTimeInterval(Time, Interval)
Interval = Interval*60 -- приводим к секундам
local z = 3*60*60 -- приводим к часовому поясу Москвы
return os.date('!%d.%m.%Y %X', math.floor((Time+z)/Interval)*Interval)
end
local Time = os.time({year=2015, month=02, day=10, hour=18, min=40, sec=20}) -- Время в числовом формате
local Interval = 4*60 -- интервал (таймфрейм) в минутах: 4 часа
print(getTimeInterval(Time, Interval))
Надо делать так, как надо. А как не надо - делать не надо.
Zoya Vdovina пишет: Нов версии терминала 6.16.1, проблема была исправлена. (Задержки при открытии формы ввода заявки по опционам.)
Да, действительно, в v.6.16.1.15 проблема задержки открытия формы ввода заявки по опционам устранена. Ведь можете, когда хотите. И даже видео не понадобилось.
Но проблема со стоп-заявками осталась. Чтобы воспроизвести эту проблему вам не нужен архив терминала. Вам нужно подключение к реальному серверу. Утверждаю это с полной уверенностью, потому как проверил на чистом дистрибутиве QUIK-Junior, в котором проблемы нет, изменив настройки подключения к боевому серверу: на боевом сервере возникают описанные проблемы со стоп-заявками по опционам. Как говорится: "было бы желание"...
Надо делать так, как надо. А как не надо - делать не надо.
getSecurityInfo(ClassCode, secCode) возвращает значения nil
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.02.2015 14:15:32
В v.6.16 функция getSecurityInfo работает. Проверьте, содержится ли необходимый инструмент в списках getClassesList() и getClassSecurities(ClassCode) непосредственно перед вызовом getSecurityInfo()
Надо делать так, как надо. А как не надо - делать не надо.
Определить время начала интервала для заданного таймфрейма
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.02.2015 19:19:03
Задача: определить время начала интервала для заданного таймфрейма.
Код
function getTimeInterval(t, i)
i = i*60 -- переводим в минуты
return os.date('%d.%m.%Y %X', math.floor(t/i)*i)
end
local t = os.time({year=2015, month=02, day=10, hour=18, min=40, sec=20})
local i = 4*60 -- интервал 4 часа
print(getTimeInterval(t, i))
Но кажет не то время.
Надо делать так, как надо. А как не надо - делать не надо.
Подтверждаю, есть такая проблема на опционах. И не только для стоп-заявок. Для обычных заявок то же самое. Я писал об этом ещё в ноябре прошлого года. Тема "Ввод заявки". Меня просили снять видео, "как я открываю форму ввода заявки на опционах и на каком-нибудь другом классе". Извините, но снимать видео, чтобы подтвердить то, что я итак описал в письме, у меня нет желания.
Есть предположение, что это происходит из-за большого количества бумаг в классе SPBOPT.
Цитата
Zoya Vdovina пишет: Проверили на 6.16.1.15. Описанная Вами проблема не воспроизвелась.
Если проверяли на демо, то там такой проблемы нет: на боевом сервере по классу SPBOPT более 5 тыс. инструментов, на демо - всего 362.
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.02.2015 09:28:00
1) getSecurityInfo может вернуть nil, если список бумаг ещё не загружен, тогда получите ошибку: "attempt to index a nil value" 2) если seccode содержится в нескольких классах, то getSecurityInfo может вернуть не тот class_code, который вы ожидаете 3) если вы знаете код класса, тогда зачем getSecurityInfo("",seccode).class_code ?
Надо делать так, как надо. А как не надо - делать не надо.
iuplua, обсуждаем работу стороннего графического пакета
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.02.2015 23:34:09
Цитата
1: unexpected symbol near '»'
Надо делать так, как надо. А как не надо - делать не надо.
доступ к строкам таблицы изменений параметров, почему его нет?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.02.2015 16:09:10
А не проще данные брать из стакана? Тогда у вас всегда будет пара bid-offer
Надо делать так, как надо. А как не надо - делать не надо.
Перезаказать данные заново, Очистить все и начать новый сеанс, Перезаказать архив графиков
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.02.2015 09:27:34
Всё же хотелось бы получить ответ от разработчиков.
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.02.2015 08:54:14
class_code нужно задавать самому, т.к. нет гарантий, что getSecurityInfo будет всегда возвращать тот класс, который вы подразумеваете.
Надо делать так, как надо. А как не надо - делать не надо.
info.log - 220 Mb за сутки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.02.2015 08:52:28
Цитата
Constantin Constantin пишет: Еще бы сделали, чтобы в info.log меньше писалось всякой (ненужной) информации. Девять бумаг в ТТП и один открытый график дают файл info.log в более 30 мегабайт. Многовато.
Если оно вам не надо, отключите сохранение истории изменений. За всю торговую сесиию: info.log - 7.32 Мб curr_data.log - 18.9 Мб
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.02.2015 21:51:29
Цитата
lergen пишет: после обрывов связи хотя проверка на соединение проводится, т.е. если связи нет параметры не должны запрашиваться.
Если isConnected()=1, это ещё не значит, что необходимые параметры доступны в таблицах.
Цитата
lergen пишет: Как избежать остановки скрипта при кратковременных обрывах связи?
Для начала посмотреть номер строки, где возникает ошибка.
Надо делать так, как надо. А как не надо - делать не надо.
Перезаказать данные заново, Очистить все и начать новый сеанс, Перезаказать архив графиков
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.02.2015 14:18:29
Из документации:
Цитата
Перезаказать данные заново - Очистить полученные данные и заказать их заново Очистить все и начать новый сеанс - Очистить все накопленные данные и заказать их заново Перезаказать архив графиков - Очистить архив графиков и заказать заново данные с сервера
Описание довольно скудное. Не понятно, чем отличается "Очистить полученные данные и заказать их заново" и "Очистить все накопленные данные и заказать их заново". Поясните, пожалуйста, более подробно, что делает каждый пункт, какие настройки сбрасываются, какие файлы при этом очищаются/удаляются.
Надо делать так, как надо. А как не надо - делать не надо.
Надо делать так, как надо. А как не надо - делать не надо.
info.log - 220 Mb за сутки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.02.2015 13:46:06
Цитата
Radik Mingazov пишет: Из-за этого терминал долго запускается, каждый раз приходится перед запускам удалять этот файл руками. Сделайте в Настройках галочку "Удалять info.log перед запуском терминала"
Цитата
Дмитрий пишет: Очищать данные после смены даты - выбрать "На локальной машине"
Это не то. Есть параметр командной строки для info.exe. Сейчас не помню какой. Техподдержка подскажет.
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
04.02.2015 09:32:44
И да, проверьте также шлюзы к другим площадкам: то, что мы не видим на них подобных несоответствий вовсе не означает, что данные транслируются без ошибок.
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
04.02.2015 09:05:19
Цитата
Egor Zaytsev пишет: Мы исправим эту ошибку в одной из ближайших версий шлюза.
Егор, я могу вам помочь в исправлении ошибки, дабы ускорить этот процесс?
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
04.02.2015 09:02:26
Самое стрёмное в этой истории, что об этой ошибке я сообщил ещё год назад. И в течение этого времени никто этим вопросом не занимался, списав все грехи на биржу... Вот так и работаем...
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 16:04:12
Цитата
Egor Zaytsev пишет: Сергей, из локально БД, где хранятся данные в текстовом формате или dat файлы?
Да хоть из какого. При наличии доступного конвертера txt -> dat достаточно было бы открытие из dat-файла.
Надо делать так, как надо. А как не надо - делать не надо.
ветвь: "ст"
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 13:36:43
У меня для заявок по FORTS условие "По рыночной цене" всегда неактивно. Что нужно сделать, чтобы активировать этот чекбокс?
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 13:18:55
to разработчикам, было бы удобно, если бы в QUIK добавили тот функционал, что есть в QMinEditor, в частности: открытие графика из архива локальной БД.
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 13:02:22
s_mike@rambler.ru, QUIK и QLUA на сегодняшний день предоставляют широкие возможности для анализа данных, построения и тестирования своих стратегий. В QLUA можно реализовать то, что нельзя сделать в системах технического анализа (за Амиброкер не скажу - не пользовался). Правда, зачастую это требует и больших усилий.
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 12:44:38
Так, а что касается самого формата dat-файла. Разработчики так и не сказали, раскрываете вы формат или оставляете это на совести пользователей - копаться в его структуре?
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Надо делать так, как надо. А как не надо - делать не надо.
Запуск двух копий одного скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 12:06:03
Скрипт выдаёт какую-нибудь ошибку? Возможно, он не находит необходимый для работы файл, например QL.lua
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 10:05:20
Необходимы dat-архивы для удобного просмотра графиков средствами QUIK
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
03.02.2015 09:18:30
Цитата
Александр Шумилин пишет: Пока-что остаётся непонятным, зачем нужно анализировать dat-файлы
Например, для того, чтобы конвертировать из текстового файла, в случае, когда инструмент уже не торгуется, а брокер не предоставляет данные по архивным инструментам.
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 15:25:37
Egor Zaytsev, Версия QUIK v.6.16.0.42. На этой версии проблема имеет место быть, как и на предыдущих. Данная проблема также наблюдалась у других участников форума. Поэтому, я уверен, что настройки рабочего места на это не влияют. Скажите, для чего вам архив моего рабочего места? В течение года вам не удалось воспроизвести проблему?
Что касается брокера, то он прежний. Но судя по разным результатам тестирования других пользователей, я могу сделать вывод, что мы с ними работаем, по-крайней мере, на разных серверах.
Если есть затруднения, я могу скопировать сюда код скрипта для тестирования (который я неоднократно приводил в письме и предыдущей теме). Но, когда спрашивал о помощи, я имел ввиду реальную помощь, а не повторение по второму кругу действий годичной давности. Егор, если вами не было ничего предпринято по данному вопросу, то не стоит ожидать, что проблема сама собой рассосётся.
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 14:11:20
Остались у кого архивы котировок SRU4, SiU4, RIU4?
Цитата
s_mike@rambler.ru пишет: Формат двоичных файлов с котировками разработчики не раскрывают.
А что говорят сами разработчики?
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 12:49:47
Да, речь про стакан котировок FORTS. Я вижу, что изменений нет. Это слишком сложная задача - поиск и устранение ошибки? Я могу вам помочь в этом деле? А что-нибудь вообще предпринималось по этому вопросу?
Надо делать так, как надо. А как не надо - делать не надо.
Пожелания по развитию форума
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 12:30:58
При цитировании можно добавлять ссылку на цитируемое сообщение.
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 12:20:52
Спасибо за более развёрнутый ответ. Потому, как
Скрытый текст
между
Цитата
Такая ситуация невозможна.
и
Цитата
Сервер сможет изменить статичные параметры бумаги только после рестарта.
есть большая разница.
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 12:03:14
Michael Bulychev, Повторюсь: на Московской бирже иногда происходят ситуации, которых быть не должно. Из последних: транслируется информация по сделкам и заявкам за предыдущую торговую сессию, загружаются "левые" лимиты...
Поэтому вашего утверждения, что "такая ситуация невозможна" недостаточно: на основании его нельзя возместить убытки, понесённые в результате сбоя. Я понимаю, что такой вариант вы даже не закладывали при разработке системы. Но всё же хочется узнать, что произойдёт если шлюз пришлёт код бумаги, который уже есть в списке, с новыми статичными параметрами? Параметры заменятся для данного кода бумаги?
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 11:16:20
Скрытый текст
Слово "новая", взятое в кавычки не имеет никакого отношения к тем сбоям, которые могут произойти на бирже. Поэтому не надо к нему цепляться.
Цитата
Sergey Gorokhov пишет: Сервер QUIK в течение торговой сессии может получить со шлюза новый код бумаги или список кодов.
Что произойдёт, если шлюз пришлёт код бумаги, который уже есть в списке, с новыми статичными параметрами бумаги?
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 10:57:48
Начало:
Добрый день.
Прошёл почти год с момента обнаружения проблемы и отправки вам необходимой информации по данному вопросу. Ваша ИТС выдаёт неверные данные. Нужно выявить причину и устранить ошибку. Какие предприняты для этого меры?
Ответ типа "мы действительно не виноваты. Все необходимые данные для анализа мы передали специалистам биржи." не канает. Прошёл почти год. Ситуация не изменилась. Я ни за что не поверю, что в век информационных технологий вы отправили гонца с письмом пешком из Новосибирска в Москву, и по дороге в лесу его съели волки. Если "вы не виноваты", то нужно назначить "крайних" и пусть занимаются проблемой.
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 10:51:44
Известно, что на бирже случаются сбои, и могут произойти ситуации, "которых даже теоретически быть не может". И я не зря взял в кавычки слово "новая". Итак, сервер QUIK в течение торговой сессии может получить со шлюза новый код бумаги или список кодов шлюз передаёт только один раз в момент подключения?
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 10:12:33
Это ответ на оба вопроса?
1) getClassInfo() возвращает таблицу Lua, содержащую описание класса, в т.ч.:
Цитата
nsecs
NUMBER
Количество бумаг в классе
Если список кодов бумаг измениться может, то данный параметр также изменится, верно?
2) getSecurityInfo(). Что произойдёт, если поступит с сервера "новая" бумага с кодом, который уже есть в списке? Она заменит существующую бумагу с новыми параметрами?
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 09:21:33
Также может измениться информация, получаемая функциями getClassInfo() и getSecurityInfo() без переподключения к серверу?
Надо делать так, как надо. А как не надо - делать не надо.
Пожелания по развитию форума
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 08:55:56
Цитата
Sofia Fedurina пишет: Сразу о том, чего сделать не сможем: 1. Открыть возможность редактировать свои сообщения.
Это принципиальная ваша позиция или технически невозможно? Если первое, то можно открыть возможность редактировать своё последнее сообщение, если оно не было закрыто другим сообщением - ничего страшного в этом нет.
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 08:48:01
Отправил
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 08:43:48
Как робот может об этом узнать (без постоянных вызовов функций getClassesList() и getClassSecurities()) ?
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 00:47:00
Цитата
Возвращаемые значения:
t – таблица, содержащая запрашиваемые свечки
Где индексы свечек также начинаются с нуля. (В документации об этом почему-то не сказано)
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.02.2015 00:44:16
Цитата
Николай Камынин пишет: В Lua принято индексы таблицы начинать с 1. иначе неправильно работает # (размер массива).
В QLUA это не принято:
Цитата
getCandlesByIndex
Функция предназначена для получения информации о свечках по идентификатору (заказ данных для построения графика плагин не осуществляет, поэтому для успешного доступа нужный график должен быть открыт).
Формат вызова:
TABLE t, NUMBER n, STRING l getCandlesByIndex (STRING tag, NUMBER line, NUMBER first_candle, NUMBER count)
Параметры:
tag – строковый идентификатор графика или индикатора, line – номер линии графика или индикатора. Первая линия имеет номер 0, first_candle – индекс первой свечки. Первая (самая левая) свечка имеет индекс 0
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
01.02.2015 20:49:42
Наблюдается также и в QUIK v.6.16.1.15
Надо делать так, как надо. А как не надо - делать не надо.
Закладки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
01.02.2015 11:51:33
Нужны закладки по избранным темам. Что-то, вроде подписок, но чтобы по ним не приходили сообщения на e-mail
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
31.01.2015 20:23:28
Последний абзац - возможно, преждевременный вывод... Но не охота ковыряться... Разбирайтесь сами.
Надо делать так, как надо. А как не надо - делать не надо.