Kolossi (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Настройки и их сохранение.
 
Цитата
BlaZed написал:
Сталкивался с такой проблемой
https://forum.quik.ru/messages/forum1/message51971/topic6116/#message51971

Был косяк в версии 8.11.0.66, в 8.12 был исправлен
Так что либо обновиться, либо (если не желаете обновляться) перед закрытием программы, отключитесь и подключитесь к серверу заново, тогда настройки котировок сохранятся.
Спасибо. Потрясу бубном пока брокер не обновит версию.
Настройки и их сохранение.
 
Я чего-то недопонимаю в логике настроек переноса заказа данных в настройки (?).
Стоял фильтр заказа котировок. Снимаю галочку "фильтр инструмента" класса в
/Программа/Получение данных/Котировки и уверен что все хорошо. Однако при следующем входе галка на месте.
Ручное сохранение настроек эффекта не дает.   Версия 8.11
Получение тикеров инсрументов
 
Цитата
Артем написал:
getClassSecurities ( class )
Спасибо! Как-то я проскочил мимо нее в доках.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Артем написал:
Kolossi, это неважно - размер датасорца меняется в момент завершения загрузки данных. При работе с колбеками тоже неважно - они явно указывают какая свеча была загружена.
Те вы утверждаете, что ds(Size) будет отличен от нуля только после завершения загрузки?
Получение тикеров инсрументов
 
Добрый день всем.

Подскажите, есть ли возможность получить с сервера в свою таблицу список ВСЕХ тикеров по конкретному классу?
Типа той которая используется в таблицах квика для настройки фильтров и тп.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Как много ответов от умных людей. Читал, много думал.))
Может быть все можно будет сделать гораздо проще, если кто-нибудь скажет правду:
c какой свечи CreateDataSource начинает грузить данные - с нулевой или с последней?
запуск из работающего скрипта другого скрипта или скриптов
 
Цитата
swerg написал:
Цитата
Kolossi написал:
или привязку пользовательской таблицы к вкладке

https://quik2dde.ru/viewtopic.php?id=329
Спасибо! Завтра поверчу в необходимых вариантах и отпишусь.  Очень востребованный костыль )
запуск из работающего скрипта другого скрипта или скриптов
 
Цитата
Юрий С написал:
Цитата
Артем написал:
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
Поддержу Юрия. Мне бы тоже хотелось запускать все свои скрипты при помощи одного. Как это делается в операционках при помощи .bat или .sh файлов. Однако я полагаю такая мечта несбыточна.
Может быть в следующих версиях мы увидим еще перенос какого-то параметра из одного пункта меню, однако полагаю что мне уже не увидеть даже иконки окна скриптов на панели или привязку пользовательской таблицы к вкладке. Жизнь коротка (
Отладка QUIK 8.12
 
Цитата
Евгений написал:
А кто просил форму ввода пароля с текущим языком клавиатуры, покажите эту просьбу, это же в каждом виндовс есть. Кому счастье привалило и его желание исполнилось, где эта толпа пользователей?
Ну например мне привалило. И всем у кого квик на виртуальной машине под mac os или linux. Это сильно беспокоит?
PostMessage из LUA
 
Прочитал.  Преодоление трудностей наше все.  Если их нет, надо создать ))
Пару лет назад понадобилась отправка из скрипта e-mail сообщений. Сделал папку ..mail\ куда скрипт кладет файл сообщения.
Как только он там появляется штатный Automator операционки его подхватывает и отправляет. Все. До сих пор все шлется без нареканий.

Правда потом сделал создание файла в ..\tmp, а уже потом копирование его в ..mail\ что бы шустрый автоматор не отправил его частями в момент создания.
Подкиньте идею
 
Цитата
Nikolay написал:
Цитата
Легко давать советы не особенно вникая.)
Передать колбэк не проблема только вот что бы принять его другим скриптом механизма прерывания и включения параллельного потока нет. Или вы предлагаете main() в цикле опрашивать переменную на случай наступления события?
Да, опрашивать по изменению количества в очереди. Собственно, это не такая и редка задача: Квик исполнитель, а интерфейс может быть в базе данных, на таблицах.
Ясно, что лучше написать прямую библиотеку, но раз ее нет, надо передавать команды по каналам связи.
Попробую объяснить на пальцах.
В скрипте робота есть таблица в которой по дабл-клик на ячейку меняется значение некоторой переменной.
Таблица перенесена в другой скрипт.  Что дальше?
Никаких проблем нет с обработкой клика и передачи этого события в первый скрипт в виде изменения содержимого общей для двух скриптов переменной. Вопрос как ее получить в первом скрипте?
Постоянно опрашивая изменение в цикле? Это значит, что в определенном месте обработки скрипта. Замечу, что в первом случае это обрабатывается в параллельном потоке.
Подкиньте идею
 
Цитата
Nikolay написал:
Если у Вас ячейки привязаны к конкретному скрипту (т.е. реакция на нее однозначно для скрипта №2), особой разницы нет, где событие прошло. Делаете очередь событий и передаете события с параметрами обратно в скрипт через тот же механизм. А скрипт уже, в свою очередь, опрашивает на предмет нового события из своей области обмена.
Легко давать советы не особенно вникая.)
Передать колбэк не проблема только вот что бы принять его другим скриптом механизма прерывания и включения параллельного потока нет. Или вы предлагаете main() в цикле опрашивать переменную на случай наступления события?
Подкиньте идею
 
Swerg   огромное спасибо за библиотеку !!!
Все работает как хотелось. Дальше дело техники - передать цветовые коды и тп.

К сожалению часть таблиц, которые хотелось бы вынести в общие, обрабатывают мышинный callback
и решения как его отдать из скрипта общей таблицы роботу с созданием параллельного потока я не вижу.

Ну и ладно, и так хорошо. Еще раз спасибо.
Подкиньте идею
 
Цитата
swerg написал:

Один скрипт выводит все таблицы, включая "сводную", другой кидает ему данные через

Цитата
Nikolay написал:
Библиотеки обмена: раз - StaticVar от swerg   https://quik2dde.ru/viewtopic.php?id=61   два - luashare от toxa   https://quik2dde.ru/viewtopic.php?id=306  

Ну или даже один скрипт выводит сводную таблицы, остальные ему кидают данные через указанные механизмы.
Спасибо, буду пробовать.
Подкиньте идею
 
Цитата
Старатель написал:
Вот  тут  пример организации обмена с двумя файлами: 1-й файл для передачи данных, 2-й - пустой файл, служит флагом для индикации готовности данных к считыванию.
И я плавно приехал от идеи общей таблицы к необходимости замены hdd на ssd
Подкиньте идею
 
Проверил. Нумерация окон меняется конкретно для каждого скрипта-увеличивается с каждым перезапуском начиная с запуска Квика.
Запустив два одинаковых скрипта при помощи перезапусков легко получил окна с одинаковыми идентификаторами.
Облом.
Подкиньте идею
 
Однако сейчас проверил. Номер окна выдает каждый раз следующий.
16-17-18-19... и так по порядку каждый раз при убиении и запуске скрипта.
Подкиньте идею
 
Цитата
Старатель написал:
Цитата
s_mike@rambler.ru написал:
Имея номер окна, можно писать в него из любых скриптов.
Не знаю, может у меня версия квика какая-то другая. Но нумерация окон не сквозная, у каждого скрипта своя, начинающаяся с 1.
Т.е., идентификаторы окон разных скриптов могут совпадать. И писать в окно другого скрипта не получается.
Ндааа, полил холодной водичкой (((
Подкиньте идею
 
Хотя...если проверять при помощи IsWindowClosed() и обращаться к файлу в случае получения true, то вроде рабочий вариант.
Спасибо.
Подкиньте идею
 
Опять же скрипты роботов должны постоянно проверять этот файл не сменился ли идентификатор в связи с перезапуском скрипта таблицы. Гемор с постоянным обращением к диску.
Подкиньте идею
 
Цитата
s_mike@rambler.ru написал:
Передайте один раз через файл номер окна. Имея номер окна, можно писать в него из любых скриптов.
Вы имеете ввиду идентификатор таблицы создаваемый CreateTable() ? Логично, но все равно через файл (
Подкиньте идею
 
Привет всем.

У меня работает несколько роботов с выводом данных каждый в свою таблицу.
Возникла необходимость сделать сводную таблицу для всех.
Пока не понимаю как передавать данные из скрипта в скрипт.  Вернее одно решение есть - отдавать через сохраняемый и затем читаемый файл, но во первых это криво, во вторых медленно.
Буду благодарен за рабочую идею.
Сохранение параметров некоторых окон
 
Спасибо, со стаканом подойдет.
Сохранение параметров некоторых окон
 
Здравствуйте!
При изменении шрифтов в настройках Квика естественно приходится корректировать ширину столбцов и размеры таблиц.
Особых проблем в большинстве таблиц это не создает.  Кроме стакана. Т. к. отсутствует возможность сохранить параметры окна и каждый раз при вызове стакана из таблицы текущих торгов стакан является в корявом виде и размере по умолчанию. Прошу зарегистрировать возможность изменять и сохранять размеры и ширину столбцов по умолчанию.

Кроме того прошу аналогично дать возможность изменять размер окна "Доступные скрипты"

Спасибо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
Цитата
Roman Azarov написал:
Kolossi, здравствуйте!

Спасибо, что уточнили.
Ваше пожелание зарегистрировано, мы постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Спасибо Роман за то, что зарегистрировали это в третий раз. Однако это не предложение, а уведомление о баге в работе терминала Квик. Хотя доработку функций в плане привязки к вкладкам можно рассмотреть как предложение.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
Цитата
Roman Azarov написал:
Kolossi, добрый день!

Правильно Вас поняли, речь идет о возможности закрепить окно на вкладке?
Программно это выполнить нельзя, только руками, через пункт меню "Окна/Закрепить окно".
Нет!
Если открыть несколько таблиц в разных вкладках, а потом не останавливая скриптов выйти из Квика, то при следующем входе все таблицы будут открыты в той вкладке, которая была активна при выходе из Квика.
Второй год пытаюсь тут доказать разработчикам, что это баг.

Ну а по-хорошему должна быть возможность прописать имя вкладки при создании таблицы.  
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
16.  ...  или хотя бы к той, в которой она была открыта.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
 Я бы добавил:

16. Как привязать таблицу к конкретной вкладке?
Статус сессии.
 
Цитата
Sergey Gorokhov написал:
Kolossi,
Да Вы правы, предложенный вариант с tradingphase не решает поставленной задачи.
Согласно  биржевому протоколу , в указанном параметре tradingphase нет отдельного признака для вечерней сессии, а значит и в QUIK Вы его никак увидеть не сможете.
Ладно Сергей, замнем. Вариантов решения задачи достаточно, однако создание полу-инвалидных параметров с одинаковыми  возвращаемыми кодами для разных торговых фаз и статусов разработчикам чести не делает.  
Статус сессии.
 
Цитата
nikolz написал:
используйте сервер точного времени и не будете месяцами ничего согласовывать.
Биржа тоже его использует.
погрешность будет не более 10 мс. Это меньше, чем задержка интернета.
Ну я бы в жизни не догадался.
А ваш сервер точного времени точно учитывает перенос торговых дней на ММВБ или нужно еще смотреть "сервер точного торгового календаря" ? ))
Статус сессии.
 
Цитата
Sergey Gorokhov написал:
Kolossi,
для этого есть параметр tradingphase - Биржевой статус торговой сессии
В итоге я месяц решал с брокером проблему включения этого параметра по вашей рекомендации что бы убедиться что он просто дублирует tradingstatus.
--
09:50:03 Изменение фазы: 0==>10.0(АО). Статус 3(открытие)
09:59:43 Изменение фазы: 10==>0.0(Недоступно). Статус 0(закрыта)
10:00:04 Изменение фазы: 0==>5.0(Открыта). Статус 1(открыта)
18:40:00 Изменение фазы: 5==>0.0(Недоступно). Статус 0(закрыта)
18:40:05 Изменение фазы: 0==>6.0(АЗ). Статус 4(аукцион)
18:45:26 Изменение фазы: 6==>9.0(ЦАЗ). Статус 5(ЦАЗ)
18:50:03 Изменение фазы: 9==>0.0(Недоступно). Статус 0(закрыта)
19:00:25 Изменение фазы: 0==>10.0(АО). Статус 3(открытие)
19:04:36 Изменение фазы: 10==>0.0(Недоступно). Статус 0(закрыта)
19:05:00 Изменение фазы: 0==>5.0(Открыта). Статус 1(открыта)
23:50:02 Изменение фазы: 5==>0.0(Недоступно). Статус 0(закрыта)
--
 Я прошу больше от меня не отмахиваться, а рассмотреть мои предложения по существу
Перестали скачиваться тиковые данные
 
Да тут слип только для отладки, что бы message() слишком часто не мелькал.
Перестали скачиваться тиковые данные
 
Перезапуск терминала не помогал. Скрипт получил данные только после того как я вручную толкнул кнопку "Получить заново данные по обезличенным сделкам" в меню "Заказ данных".
Перестали скачиваться тиковые данные
 
С "INTERVAL_D1" все работает как надо.
Перестали скачиваться тиковые данные
 
Сегодня обновил квик до версии 8.8.4.3 , перестали скачиваться тиковые данные.

Скрипт
--
local ldsa={}
local error_desc=""
ldsa,error_desc = CreateDataSource(p_classcode, p_seccode, INTERVAL_TICK)
while not ldsa or ldsa:Size()==0 do
sleep(10000)
message("ожидание данных")
if error_desc ~= nil and error_desc ~= "" then
message(p_classcode.."/"..p_seccode.."/".."Source2 error ==>" .. error_desc)
end
end
message("получено "..tostring(ldsa:Size()))
--
висит в "ожидание данных".

Что за .....? Что-то добавили в настройки?
Статус сессии.
 
Цитата
nikolz написал:
полагаю что потеряли вы не по причине что забыли перевести время.
это лишь вариант самоуспокоения.
Если Вы включили комп позже начала сессии, то никакие сигналы Вам не помогут.
и статус сессии здесь не причем.
Конечно решать Вам, я лишь изложил свой опыт решения данной проблемы
Напрасно полагаете. И опыт ваш не пригодится. И комп я вообще не выключаю т.к. часто уезжаю на несколько недель оставляя робота работающим. В общем спасибо за заботу, вопрос был об уточнении статуса сессии.
Статус сессии.
 
Цитата
nikolz написал:
Есть очень простое решения проблемы статуса сессии.
Делаем раз - синхронизируем компьютер по серверу времени.  Это позволяет нам синхронизироваться с временем биржи с погрешностью не более 0.01 сек
Делаем два - пишем константы начала и конца сессий
Делаем три - где надо и не надо просто сравниваем текущее время с константами и решаем какое сейчас состояние сессии без каких либо кодов с биржи
------------------------
Самое смешное в том,  что биржа(брокер)  свои коды формируют точно так же.
Как для автомобиля - крутить рукоятку если стартер не заводит автомобиль - простое решение ). Я перешел к пользованию статусом сессии именно потому, что однажды, пользуясь простым решением, забыл перевести сезонное время (я живу в стране где его надо переводить) и потерял прилично денег на этом.
Статус сессии.
 
Сергей , не хотите дублировать, хотя бы указывайте где смотреть.
Если я пишу скрипты на Lua и пользуюсь вашей документацией для этого каким чудом я должен догадаться, что параметры к getParamEx мне нужно искать в документации к QPILE которым я вообще не пользуюсь?
Статус сессии.
 
...
local st=getParamEx(p_classcode,p_seccode, "TRADINGSTATUS").param_value
local pa=getParamEx(p_classcode,p_seccode, "TRADINGPHASE").param_value
local pb=getParamEx(p_classcode,p_seccode, "TRADINGPHASE").param_image
...
st=1
pa=0
pb=""

Ладно, "брокер не настроил".

Возвращаемся к моим просьбам по статусу
Статус сессии.
 
Что то я не нашел параметра TRADINGPHASE у GetParamEx. Откуда это вообще?
Приведенный мной протокол был сделан по параметру TRADINGSTATUS.
Статус сессии.
 
Спасибо , сейчас поставлю протокол на этот параметр.
Статус сессии.
 
Господа разработчики, в связи с появлением на ММВБ вечерней сессии есть пара замечаний и предложений по теме.

Вот протокол изменения статуса сессии в течении дня:
--
09:50:01    Ststus 0==>3 (открытие)
09:59:40    Ststus 3==>0 (закрыта)
10:00:00    Ststus 0==>1 (открыта)
18:39:59    Ststus 1==>0 (закрыта)
18:40:05    Ststus 0==>4 (аукцион)
18:45:20    Ststus 4==>5 (ЦАЗ)
18:50:01    Ststus 5==>0 (закрыта)
19:00:01    Ststus 0==>3 (открытие)
19:04:31    Ststus 3==>0 (закрыта)
19:05:00    Ststus 0==>1 (открыта)
23:50:00    Status 1==>0 (закрыта)
--
Предложения:
1. Сделать разными статусы открытия дневной и вечерней сессии с 9-50-00 до 9-59-40 и с 19-00-00 до 19-04-30.
   Сейчас оба периода имеют одинаковый статус 3.

2. Периоды с 09-59-40 до 10-00-00 и с 19-04-30 до 19-05-00 имеют статус сессии 0 (закрыта). Однако в это время сервером обрабатываются встречные заявки выставленные в период открытия сессии. Логично было бы этим периодам присвоить отдельный статус.

Спасибо за понимание.
Запуск и остановка скрипта в заданное время, Код запуска в Lua в необходимое время
 
По ряду причин лучше проверять не время, а статус сессии.
Скрипт индикатора
 
Разобрался сам, всем спасибо.

Индикатор CO.lua из архива arqatech.com. Афтар решил, что при передаче параметров в функцию присвоить имя ds локальной таблице это прикольно и оригинально. @#$  
Скрипт индикатора
 
Добрый день.

В тексте индикатора встретил выражение
x=ds[I]
подскажите что это и почему оно NUMERIC?

Если это база свечей текущего таймфрейма, то по идее такое должно возвращать nil.
Снова CreateDataSource
 
понятно, спасибо
Снова CreateDataSource
 
Добрый день,

подскажите пожалуйста есть ли возможность что бы CreateDataSource(classcode, seccode, INTERVAL_TICK) тащила с сервера только данные текущей сессии? А то это действо занимает около пяти минут.
Заодно как узнать, что данные получены полностью?
Изменение фильтра из скрипта
 
Или в случае вызова CreateDataSource с параметром INTERVAL_TICK по нужному инструменту
и подписки через SetEmptyCallback  таблица "all_trades" будет заполнена и функция getItem("all_trades",index) отработает как и в случае заказа через меню? Так?
Изменение фильтра из скрипта
 
Что-то никак не могу сообразить. Если я из таблицы обезличенных сделок могу получить набор битовых флагов и из них выбрать признак сделки покупка/продажа, то как я могу получить такой признак из тиковой базы данных ds: где только OHLCVT ?
 
Изменение фильтра из скрипта
 
бл. Lingvo решил поучаствовать в разговоре :)
Страницы: 1 2 3 След.
Наверх