Один раз тыкнул "SBER" в фильтре фьючерсов и всегда получаешь данные по его фьючам. Сделал это в фильтре опционов - и всегда есть инфа по опционам на фьючи Сбера.
Просим также прислать архив с копией используемого терминала (без файлов ключей pubring.txk, secring.txk). Вы можете загрузить архив на любой удобный Вам файлообменный сервис и прислать нам ссылку на файл.
Также просим уточнить, какая ОС используется и каким образом терминал запускается в wine.
Информацию Вы можете направить на нашу почту quiksupport@arqatech.com - в этом случае просим указать в письме ссылку на данную тему форума.
С крешем разобрался, в случае проблемы при отправке транзакции от вас летит DLL_DISCONNECTED вместе с нулевым указателем на строку, это я у себя обработал.
Осталась проблема, что транзакции не отправляются (ошибка 233 на шаге 4, надо полагать). Это воспроизводится с последними терминалом и trans2quik из ваших архивов. Операционки Gentoo и Ubuntu Oracular, Wine 10. Запускается всё из каталога с quik - `wine info.exe`, `wine <демо файлы из trans2quik>`, trans2quik.dll на месте, посмотрите логи в первом сообщении, CONNECTED приходят.
При получении TRANS2QUIK_DLL_DISCONNECTED необходим вызов TRANS2QUIK_CONNECT, а также вызов функций для установки callback'ов.
Именно в таком порядке? Нельзя сперва ставить колбеки, потом вызывать connect?
Я пробовал сценарий: 1. TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK, TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK 2. TRANS2QUIK_CONNECT 3. TRANS2QUIK_SEND_ASYNC_TRANSACTION (прилетает DLL_DISCONNECTED) 4. TRANS2QUIK_CONNECT Так вот после 2 и 4 connection callback срабатывал и без повторной установки.
Михаил Филимонов написал: TRANS2QUIK_DLL_DISCONNECTED - теряются ли коллбэки и другие настройки?
Это дисконнект DLL. Естественно сама DLL перестает работать, следовательно и колбеки перестают поступать. Или вопрос опять понят не правильно.
1. Какие действия предпринимать при приходе TRANS2QUIK_DLL_DISCONNECTED? 2. Надо ли и имеет ли смысл после этого вызывать TRANS2QUIK_CONNECT? 3. Надо ли после этого вызывать TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK, TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK?
Quik 10.2.3.7 при подключении к серверу в начале дня выдаёт диалоговое окно и пока его не закроешь - не получает никаких данных. Т.е. и в квике таблицы стоят пустые, и в скрипты ничего не приходит. Караулить каждый день начало торгов, чтоб закрыть окно - так себе идея. Сначала это было окно обновления программы, отключил проверку. Теперь это про истёкший инструмент - опцион с экспирой 19 июля, которого у меня нигде нет, включая менеджер окон. Сегодня отрубил, посмотрим что будет. Но обе настройки хотелось бы иметь включенными без блокировки терминала.
Ну и чтоб два раза не вставать - вроде была тема, не могу найти. В обновлениях висит файл vcomp140.dll, который хоть заобновляйся - все равно неактуальный.
Когда стакан привязан к таблице и там могут показываться активы разных классов, то его место расходуется крайне неэффективно. Например, у облиг есть доходность, у акций нет. Для акций хотелось бы этот столбец прятать, например, опцией стакана "Скрывать пустые столбцы". Или у одного актива для цены надо много места, у другого для объёма. Чтоб всё вместить у всех, приходится оба столбца делать достаточно широким. Было бы неплохо, чтоб Квик автоматически подбирал ширину столбцов при смене актива и возможно периодически/по событию. В принципе эта опция могла бы и предыдущую проблему решить.
Максим написал: О, так гораздо лучше, спасибо! А как якорь отключить? Что-то не нашёл.
Повыключать их в таблицах "текущие торги"
А. Это не подходит, туда доска опционов привязана. Но и так хорошо, спасибо!
Карина, пожелание можно отменять, тут подходящее решение подсказали. Разве что сделайте галку "не показывать якорь" у определённой таблицы) Ну или скрывайте его иконку, когда окно закреплено, по аналогии с другими кнопками.
Максим написал: Ну, хотя бы опцию "Показывать короткий код в заголовке" или сделать тултип, когда наводишь на заголовок. Или возможность внутри окна название писать.
Есть же опция "показывать полные коды опционов". Если ее снять - разве это не то что нужно?
Если открыто несколько стаканов на опционы, то по ним не понять кто есть кто:
Приходится либо сопоставлять с доской опционов, либо растягивать в ширину, чтоб всё название влезло. Можно что-то сделать, чтоб было проще их различать? Ну, хотя бы опцию "Показывать короткий код в заголовке" или сделать тултип, когда наводишь на заголовок. Или возможность внутри окна название писать.
Откуда вы знаете, что не выдаст? Завтра они начнут для ручных транзакций выдавать last_seen_trans_id + 1 и привет. Ваша система тоже рухнет. Моя тоже какое-то время держалась, пока они ноль возвращали.
Я делаю так: ------------------------------ назначаем роботам номера например num_bot=134548 а текущее значение id=125657 -номер транзакции ----------- формирует для отправки серверу trans_id=id+(num_bot<<31) --------------- из принятого c сервера trans_id й транзакции с сервера вычисляем num_bot =trans_id>>31 id=trans_id&0xffffffff ----------------- По такой схеме, Вы можете иметь более миллиарда роботов, которые могут послать более миллиарда уникальных транзакций
У меня похожая схема, но сгенерированные номера транзакции могут быть от 111. В десятичной системе: transid + botid + botidlen. В итоге номера перекрываются. Но даже если я просто взведу старший бит как признак моей транзакции, нет никаких гарантий, что Квик не выдаст и такой большой trans id. Хотелось бы надёжного решения, а выходит только какая-то магия. В этом-то и проблема.
Так а туда брокер код клиента подставляет. Мне квик на разных счетах у разных брокеров от 11 до 13 лимит на длину делает. Вместе с кодом клиента выходит 20 макс длина. Если код клиента будет большой, вплоть до 20 (вряд ли, но всё же)? Выходит и не воткнёшь туда transaction id. И как с ФР быть? https://forum.quik.ru/messages/forum10/message30624/topic3423/#message30624 Проверил своих брокеров, вроде везде пропускает камент, но что у других?
Тот же вопрос всплыл с новым аспектом. Заявки, поданные через терминал руками, теперь имеют связанные транзакции, у которых есть ID. И теперь совсем не ясно как роботу отличить свои транзакции от ручных. Идеи?
Уточните пожалуйста, почему для Ваших целей не подходит сохранение/загрузка файла настроек (info.wnd)?
Цитата
Максим написал: Было бы неплохо иметь возможность отдельно сохранить и восстановить: настройки конкретной таблицы по типу, шаблоны стаканов, состояние вкладки (открытые таблицы с их настройками).
Первое и второе можно перенести (отдельно) как раз при помощи файла настроек:
Вкладки также переносятся в .wnd файле, но, при желании, их можно перенести и без него - "сохранить вкладку в файл/загрузить вкладку из файла" в контекстном меню вкладки.
Здравствуйте, Не подходит по причине пункта 2. У меня всё настроено и работает, я не хочу закрывать всё ради переноса настроек одной таблицы. Про вкладки спасибо, слона не приметил. Этого хватит, можно ничего не регистрировать.
Здравствуйте, Возникла потребность скопировать настройки таблиц из одного квика в другой. info.wnd для этих целей не подходит. Руками все настройки копировать - то ещё удовольствие. Было бы неплохо иметь возможность отдельно сохранить и восстановить: настройки конкретной таблицы по типу, шаблоны стаканов, состояние вкладки (открытые таблицы с их настройками).
В настройках Программа/Получение данных есть опция по добавлению нового инструмента во все таблицы. Это неудобно, когда есть таблица, в которую добавлен ограниченный круг инструментов, а следом в неё начинает прилетать всякий мусор. Предложение: либо сделать эту галку на каждой конкретной таблице, а не глобально, либо сделать возможность зафиксировать набор инструментов в таблице и не добавлять автоматически туда ничего.
Это как раз не на практике, а бла-бла заинтересованных лиц. На практике ядро циркон написал один человек достаточно быстро, гуголь потом на нем фуксию налепил (опять по привычке выкачав весь гитхаб со всем мусором и списав на это баблеца, но это уже другая история). Затем, сама идея делать ось на все существующее железо - провальная, надо делать платформу на конкретных деталях и под нее пилить конкретную ось с конкретными драйверами, главное тут зафиксировать апи оси и придерживаться его в дальнейшем, а не менять в каждой минорной версии. И все, будет щасте. Конкретно для рф по шагам: поддержать байкал-м, на нем сделать линейку плат по типу хоть бы малины, под платы разработать ось, опубликовать апи и сдк, портировать несколько приложений, файрфокс там, ллвм, еще что-то. И все, полетит штуковина, если ценник не ломить (продотировать из бюджета по первому времени).
Ну да, ну да. Все в интернете знают сколько стоит разработать софт кроме тех в Ростелекоме и этих заинтересованных (чем?) в Вики.
новичок написал: куда розтелеком якобы вбухал 9 ярдов
Примерно 2500 человеко-лет хорошего программиста. По идее, за этот бюджет должны были сделать свой компилятор, свой рантайм, свое ядро и весь софт тоже свой.
Та же ерунда, только версия 7.26.0.26, раз в неделю и под wine. Один раз OOM killer грохнул, сегодня некий unhandled exception случился, логов не сохранилось где именно. В директории 'dmp' без изменений. Запустите квик сами, подключитесь к настоящему брокеру, дождитесь падения и будет вам архив рабочего места.
Максим написал: Есть ли какая-то разница между Quik Junior, скачанным с вашего сайта, и Quik, полученным от брокера? Кроме ip.cfg, конечно? https://smart-lab.ru/blog/513482.php тут говорят, что есть, но не помнят в чём.
Абсолютно ничем не отличается. Текст написанный по ссылке на смартлабе полная чушь. Если версии идентичны, и (как я вижу в каментах на СМ) даже сравнились хеши модулей, очевидно что это тот же самый квик ;)
Конечно же настройки могут быть различны. И набор плагинов да. Другой вопрос, что серверная часть демо-квика и боевого могут быть разными и настроены по-разному. Но к терминалу это никакого отношения не имеет.
Вот мне тоже показалось, что разницы в коде быть не должно, край - настройки (потому только от кода и взял md5). На Смарте к демо-серверу подключаются и говорят есть разница чем подключаться.
Alexandr Shumilin написал: Добрый день! Функционально учебный терминал и "боевой" от брокера идентичны. Возможная разница - "боевой" терминал от брокера может быть дополнен различными модулями, такмими как модуль опционного аналитика, модуль торговли корзинами и.т.п., Т.е. функциональность может быть расширена. Мы ознакомились с тем , что приведено по ссылке - действительно написанно несколько туманно, поэтому постараемся привнести ясность. Функционального ограничения на торговые терминалы Quik на учебном сервере никогда не накладывалось - котировки не прореживаются, всё как на боевом сервере. Вот волатильность торгов на учебном сервере, динамика может легко отличаться от аналогичного в реальной жизни. Для большинства пользователей это не имеет существенного значания, но для некоторых пользователей, кто использует игровой сервер для отладки роботов иногда может быть важным фактором.
Здравствуйте, Есть ли какая-то разница между Quik Junior, скачанным с вашего сайта, и Quik, полученным от брокера? Кроме ip.cfg, конечно? https://smart-lab.ru/blog/513482.php тут говорят, что есть, но не помнят в чём. Хотелось бы знать - стоит так же заморачиваться (ставить отдельно боевой и давать ему настройки демо) или нет?
Алексей Дуванов написал: у меня такое недавно было с Открытием. вылечилось, не поверите! - сменой сервера, к которому присоединяюсь. поперебирал их в списке.
Когда столкнулся с проблемой, тоже попробовал переподключиться, правда, только к одному серверу - не помогло. Сегодня перебрал все из списка доступных, так ничего и не починилось. Тоже Открытие, версия 7.12.1.10, запускаю в Wine под Linux. У поддержки с моим архивом проблем нет, рекомендовали попробовать на Маке. Попробовал - там работает. Но сломалось-то на Линуксе. Пока сервера перебирал, обратил внимание, что один из них предлагал квик обновить. Скачал 7.14.1.7 с сайта брокера, поставил в отдельный WINEPREFIX - пофиг, пустые списки. В общем, видимо в моём случае что-то не дружит у квика с вайном именно под линуксом.
Максим. Я нашел Вашу проблему. У Вас установлен вайн выше релиза 3.0! Я сейчас поставил 3.4 (winehq-devel) точно так же себя проявляет квик как Вы описываете. Поставьте релиз 3.0 и всё у Вас будет работать. Кроме тех косяков, что я описывал здесь https://forum.quik.ru/messages/forum1/message29981/topic3509/#message29981 это несовместимость comctl32 в 3 ветке вайна.
Действительно, запуск 'winetricks comctl32' решил проблему. Благодарю! Стандартные диалоги пашут норм, но тема светлая. Тёмная при появлении не взлетела, я её и вырубил в info.ini theme=0.
Алексей Дуванов написал: у меня такое недавно было с Открытием. вылечилось, не поверите! - сменой сервера, к которому присоединяюсь. поперебирал их в списке.
Когда столкнулся с проблемой, тоже попробовал переподключиться, правда, только к одному серверу - не помогло. Сегодня перебрал все из списка доступных, так ничего и не починилось. Тоже Открытие, версия 7.12.1.10, запускаю в Wine под Linux. У поддержки с моим архивом проблем нет, рекомендовали попробовать на Маке. Попробовал - там работает. Но сломалось-то на Линуксе. Пока сервера перебирал, обратил внимание, что один из них предлагал квик обновить. Скачал 7.14.1.7 с сайта брокера, поставил в отдельный WINEPREFIX - пофиг, пустые списки. В общем, видимо в моём случае что-то не дружит у квика с вайном именно под линуксом.
Были перенесены. Попробовал их перенести в "Доступные", сохранил, перенёс опять в "Выбранные" - все равно списки счетов и кодов клиента в форме заявки пустые.
Если есть доступ к скриптам, то надёжней будет нечто вроде global_trans_id = trans_id * 10 + robot_id trans_id = trans_id + 1
Если роботов до 10 включительно - умножаем trans_id на 10, до 100 - на 100 и т.д.
Ну и разбирать обратно это проще простого, пришёл ответ на транзакцию с global_trans_id - берём остаток от деления на 10 (100, 1000, etc) и обрабатываем только если совпадает с текущим robot_id.
В кои-то веки решил запульнуть заявку руками, а в форме ввода заявки куда-то пропал список кодов клиента и торговых счетов (поле для ввода данных есть, значений в выпадающем списке нет). Раньше было. Когда пропало - не знаю, т.к. давно не делал ручных заявок. Пробовал менять настройки формы ввода - ничего не помогло. Заполнил поля сам, всё сработало, заявка ушла. Как вернуть списки?
Фёдор Сухов написал: Вы про какую сейчас версию Квика пишете?
Добрый день. Речь шла о 7 версии терминала и выше.
Попробовал 7.4.0.79, правда на демо, может на реальном счёте иначе будет. Вот скрипт
Код
local stopped = false
local f = io.open(getScriptPath() .. "\\alltrades.log", "w")
function OnAllTrade(trade)
f:write(trade.trade_num .. "\n")
end
function OnStop(signal)
stopped = true
end
function main()
while not stopped do
sleep(100)
end
end
если все остальные скрипты остановлены и ТВС закрыта - в файле alltrades.log ничего не появляется. При этом в настройках "Получение данных" выбрано "С учётом настроек лалала". В "Система/Заказ данных" для котировок и сделок выбраны все инструменты.
Но стоит открыть ТВС хоть для одного инструмента - в файле начинают появляться записи.
Хотелось бы в списке доступных соединений иметь возможность игнорировать некоторые сервера, не удаляя их навсегда. Просто галочка "выкл" и он в списке есть, а подключаться к нему не пытаемся.
Можно ли в таком случае добавить в таблицу depo_limits что-то из следующего: 1. либо поле вроде balance_in_lots=true/false, и lot_size=XXX (т.к. например у SMAL&TQBR для одной и той же бумаги разные размеры лота, надо знать какой именно используется в депо) 2. либо продублировать currentbal полем currentbal_items где всегда выдавать штуки.
Покупаем 1 лот QJSIM/SBER (lot_size=10), смотрим в луа на содержимое depo_limits. Видим currentbal=1. У брокера показывается в штуках, т.е. currentbal=10. И это логично, т.к. понятие размер лота применимо к торгам (e.g. TQBR vs SMAL), а не депозиту. Может ли у какого-то другого брокера qlua так же возвращать депо в неких лотах или это только на демо так? Если это глюк демо, то можно ли его исправить? Если не глюк или исправить нельзя, то откуда брать размер тех лотов, которые фигурируют в depo_limits?
А 64-битный квик планируется? Странно выпускать продукты, которые должны работать друг с другом на одном хосте, но при этом имеют разные разрядности. Ну или дайте из квика не пайп, а сокет и раскройте протокол - каждый сам себе какую хочет trans2quik напишет.
В общем, если возможно, просьба зарегистрировать хотя бы одно из пожеланий: 1. 32битный trans2quik 1.3+ 2. 64битный квик 3. Открытую альтернативу trans2quik через сокет