но мне не нужно, поверьте я тоже программист и тоже с нехилым опытом.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 13:28:57
Цитата
Владимир написал: Я абсолютно точно знаю, что мне пришлось бы МЕСЯЦ рассказывать, что и как делает код
НЕ надо ничего рассказывать.
Цитата
Владимир написал: Вы хотели отслеживать a? Ну, рискните - вот её описание:
Никто у Вас не спрашивал "описание"
нужен просто код. Всё. без слов. без объяснений. скопировать содержимое проблемного lua файла и вставить сюда. так можно?
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 13:10:26
Цитата
Владимир написал: , Не вижу смысла. Тем более, что я за это время самостоятельно разобрался, почему возникают глюки.
Цитата
Sergey Gorokhov написал: 4) Если не хотите сотрудничать то увы ничем помочь не можем.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 13:07:47
Цитата
Владимир написал: , SP- строка (массив) на три числа, а - сложное, разветвлённое дерево объектов с разнообразной информацией по тикерам, отследить которое не представляется возможным. В частности, этот код выполняется в "большом" прерывании, инициализация - в main, визуализация результатов - малом,обновление - в разных местах.
В виде КОДА а не слов.
Цитата
Владимир написал: , Сергей, я 40 лет программистом, причём системщик, был даже когда-то в соавторы бортовой операционки включён. Поверьте, я кое-что смыслю в программировании. ::
Для того чтобы выложить "полную версию кода которая не работает" не надо быть программистом
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 13:00:14
Владимир, У Вас есть понимание что фраза "полная версия кода которая не работает." означает что в коде должно быть всё для того чтобы его можно было запустить и получить ошибку?
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 12:59:00
Цитата
Владимир написал: Вот, я "повторил проблему на более компактном коде" - ошибка очевидна: у интерпретатора краша съезжает при вложенной индексации.
где в Вашем примере кода "a" и "SP"?
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 12:53:54
Цитата
Владимир написал: Там алгоритмически сложный код, в котором любой запутается, а тут простейшее действие, выделенное мною после "ругательств" интерпретатора на арифметику.
1) Поверьте, поддержку это совсем не пугает 2) Вы понимаете что без отслеживания значений в "a" и "SP" разобраться в причинах не представляется возможным? 3) Можно повторить пробелму на отдельном, более компактном коде. 4) Если не хотите сотрудничать то увы ничем помочь не можем.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 12:42:36
Владимир, Логично предположить что Вам надо привести свою версию кода которая не работает. ПОЛНУЮ версию кода, а не пару строк которые ничего не значат
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
15.10.2020 12:38:23
Цитата
Nikolay написал: Если у Вас в SP[a[i][1][1]] ничего нет, т.е. nil, то и будет ошибка.
он говорит что в SP[a[i][1][1]] что-то есть. иначе, вот это ..SP[2]); - вернуло бы nil, а оно возвращает "0: SP[2]=0" a[i][1][1]] равно 2, потому что message(i..": SP["..a[i][1][1].."]"); -- печатает "0: SP[2]"
Если требуется анализ приложите полную версию скрипта.
перестало работать снятие активной заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
13.10.2020 18:40:10
Цитата
Владимир написал: , А зачем там вообще double? Код заявки - ЦЕЛОЕ число! Эксперимент показал, что его разрядности достаточно. Какому дебилу понадобилось объединить int и float в идиотский number, да ещё и на уровне исполнения использовать именно float? Мало других способов поймать приключения на свою задницу?
Просьба сдерживаться в выражениях иначе придется принять меры.
The type number uses two internal representations, or two subtypes, one called integer and the other called float.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
13.10.2020 12:11:14
Цитата
Владимир написал: ОЙ! Спасибо, конечно, Sergey Gorokhov , И повторяю пожелание: нельзя ли дать возможность редактировать свои комменты - скажем, в течение 5 минут?
К сожалению ядро форума не предоставляет такой возможности. В ближайшее время подобный функционал к добавлению не планируется.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
13.10.2020 11:55:36
Цитата
Владимир написал: Я не понимаю, ЧТО Вы считаете "примером кода".
например так:
Здравствуйте, у меня не работает функция SetColor, помогите. пример кода:
Код
function main()
local iT = AllocTable()
AddColumn(iT, 1, "test1", true, QTABLE_CACHED_STRING_TYPE, 10)
AddColumn(iT, 2, "test2", true, QTABLE_CACHED_STRING_TYPE, 10)
CreateWindow(iT)
SetWindowCaption(iT,"test")
InsertRow(iT,1)
SetCell(iT, 1, 1, "test1")
SetCell(iT, 1, 2, "test2")
SetColor(iT, 1, 2, 255, 0)
end
ответ такой:
У Вас не хватает параметров в функции SetColor, исправьте так:
Код
SetColor (iT, 1, 2, 255, 0, -1, -1)
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 23.01.2015
13.10.2020 10:55:17
Цитата
Владимир написал: Sergey Gorokhov ,Господи, да я и привёл пример кода, даже с комментариями!
Это не пример кода, а лишь пара строк по которым нет никакой возможности воспроизвести проблему.
Владимир написал: 1. Не работает раскраска ячеек: вызов SetCell меняет содержимое ячеек "автоматически", а вот на SetColor она пилюёт: всё остаётся чёрно-белым, а я бы хотел раскрасить таблицу как попугая: цвет - это тоже информация, и весьма наглядная.
Для анализа нужен пример кода, на котором воспроизводится проблема.
Цитата
Владимир написал: 2. Попытка динамически обновлять количество строк в таблице закончилась крахом. Я делал так:
Для анализа нужен пример кода, на котором воспроизводится проблема. Словесное описание во всех подобных вопросах только вносит смуту и порождает лишние вопросы. Проще - быстрее - надежней, привести пример кода на котором повторяется проблема (а не пару строк), тогда и решение Вы получите в разы быстрее.
Более быстрый способ, all_trades
Пользователь
Сообщений: Регистрация: 23.01.2015
12.10.2020 11:49:19
Попробуйте SearchItems
Развитие Trans2Quik
Пользователь
Сообщений: Регистрация: 23.01.2015
09.10.2020 13:22:02
Цитата
Юрий Z написал: Данное API уже позволяет получать тики в обход qlua/qpile? Как знаю, оно уже давно значительно не обновлялось.
Нет не позволяет, но это же не делает его не "API для внешних программ" если Вам нужен аналог qlua/qpile то для этого уже есть но он платный.
Запуск скрипта через dofile
Пользователь
Сообщений: Регистрация: 23.01.2015
09.10.2020 07:46:02
Цитата
Сергей написал: В случае, если lua скрипт, запускаемый через окно Доступные скрипты, будет содержать только одну строчку dofile("Адрес скрипта lua, который хотим запустить"), могут ли быть какие то странности в работе такого скрипта по сравнению с тем, если бы он был запущен напрямую?
Если скриптов будет несколько, то в них не должно быть функций с одинаковыми именами, в остальном не должно быть проблем.
Развитие Trans2Quik
Пользователь
Сообщений: Регистрация: 23.01.2015
09.10.2020 05:20:15
Цитата
Юрий Z написал: Так же бы хотелось видеть расширение API для внешних программ, взаместо уступающих qlua/qpile.
Trans2Quik - это и есть расширение API для внешних программ
Как убрать нуль после точки?, .0
Пользователь
Сообщений: Регистрация: 23.01.2015
08.10.2020 14:31:41
Владимир, То что ситуация повторяется не всегда, совершенно не значит что мы сможем разобраться по отдельным строкам кода. Просьба привести полный пример кода на котором повторяется проблема, иначе разбор может затянуться на века.
Например, Вы знаете что функция tonumber может принимать два параметра, а не один, и если случайно передать туда что попало во второй параметр, то тоже будет nil? мы же не знаем что Вы туда передаете. ну "s" и что? а вдруг эта самая "s" и не "s" вовсе, а функция или еще что. Вот и получается что мы можем только гадать как у Вас там устроено, а Вы будете эти догадки отметать. И так по кругу пока воображения на догадки хватает.
вот и приведите эту последовательность. Или последовательности.
только желательно в общем виде. Я пытался многими способами и все равно время от времени получаю от людей, которые пользуются моими роботами логи, в которых видны невообразимые чудеса в вопросе получаемых роботами данных.
Как уже было сказано и еще раз повторим, надежного способа НЕТ. Нельзя надежно определить что данные актуальны в условиях непрерывно поступающих данных. Можно примерно оценить актуальность, сравнивая текущее время с временем на самих данных (тут уже могут быть разные варианты с синхронизацией часов и т.п.) Если Вы скажите, что это не надежно, то будете абсолютно правы, потому что как уже было сказано надежного способа НЕТ.
Роботы всякие и прочие глупости
Пользователь
Сообщений: Регистрация: 23.01.2015
30.09.2020 09:38:55
s_mike@rambler.ru, Михаил, к чему это все? Мы же с Вами уже не один год общаемся и ровно этот вопрос совершенно точно уже обсуждали. ответ не поменялся, надежного способа нет, есть разные варианты которые могут дать более менее правдивую оценку актуальности данных.
Таблица транзакций
Пользователь
Сообщений: Регистрация: 23.01.2015
25.09.2020 20:52:59
Цитата
Старатель написал: В OnTransReply как прочитать этот параметр?
Такой возможности нет
таблицы сделки и позиции, добавить поле
Пользователь
Сообщений: Регистрация: 23.01.2015
25.09.2020 20:37:05
Попробуйте настройку
Преобразование целого числа в строку в QUIK 8.8+
Пользователь
Сообщений: Регистрация: 23.01.2015
24.09.2020 16:39:35
Nikolay, Тема про "math.tointeger" возникла из-за появления ".0", к большим числам она не относится. Автор хотел исследовать вопрос и ему было предложено такое решение для ознакомления
Цитата
Nikolay написал: С другой стороны, не очень понятно зачем вообще применять форматирование для чисел типа integer. tostring итак их выводит корректно. Если только вы не гарантируете тип integer для номера заявки. Но тогда это будет уже другой разговор
применять форматирование не нужно, в той же ветке сказано что tostring будет работать с большими числами, собственно Вы и сами это говорили.
По сути, с числами есть две проблемы, первая это появление ".0" у любых чисел, и эта проблема чинится предложенной функцией. Вторая это некорректное преобразование 19ти значных дробных чисел в строку и решения для нее нет. Но в практике, 19 ти значные числа есть только в номерах заявок/сделок, а для них нет никаких практических задач которые могли бы привести к преобразованию их в дробное число.
Преобразование целого числа в строку в QUIK 8.8+
Пользователь
Сообщений: Регистрация: 23.01.2015
24.09.2020 16:18:14
Nikolay, Допустим. А зачем делать арифметические операции с номером заявки/сделки?
Статус сессии.
Пользователь
Сообщений: Регистрация: 23.01.2015
24.09.2020 15:39:48
Kolossi, Да Вы правы, предложенный вариант с tradingphase не решает поставленной задачи. Согласно , в указанном параметре tradingphase нет отдельного признака для вечерней сессии, а значит и в QUIK Вы его никак увидеть не сможете.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
17.09.2020 11:50:57
Цитата
Сергей написал: Правда, хелп QUIK'а (info.chm от 20.07.20) версии 8.8.4 (ftp.quik.ru//public/updates/8.8/quik_8.8.4_upd.zip от 21.08.20) все еще упорно говорит нам о том, что там decimal, да еще и с 15 знаками в целой части.
Это ошибка в документации приносим извинения. Документацию обязательно поправим
SetCell
Пользователь
Сообщений: Регистрация: 23.01.2015
16.09.2020 12:14:16
Цитата
Старатель написал: Это указано и в 6, 7, 8.1 версиях. И там SetCell работает нормально с необязательным пятым параметром
Это ничего не значит Как уже было сказано в соответствии с документацией, последнего параметра не должно быть, а Вы его передаете. Значит формально функция SetCell выдает правильный результат. Если ранее работало по другому значит ранее работало не правильно.
SetCell
Пользователь
Сообщений: Регистрация: 23.01.2015
16.09.2020 11:28:55
В документации сказано:
Цитата
Для столбцов со строковыми типами данных параметр «value» не задается.
т.е. формально, Вы указали параметр которого не должно быть и значит должен быть false если его убрать то функция вернет true
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
16.09.2020 09:50:49
Цитата
Алексей Украинцев написал: Сергей, почему тогда у меня это не получается?
Читайте внимательней.
Цитата
Sergey Gorokhov написал: К сожалению произошла ошибка, через терминал QUIK при экспорте по ODBC передать параметр номера заявки в виде числа нельзя.
Цитата
Sergey Gorokhov написал: Да, это просто опечатка. В виде строки нельзя.
SetCell
Пользователь
Сообщений: Регистрация: 23.01.2015
15.09.2020 15:56:36
Старатель, просьба уточнить что передается в переменных. А еще лучше приведите полный код на котором повторяется проблема
Предлагаем быть более внимательным в передаче параметров в функцию. от куда у Вас возьмется параметр "x" если есть только переменная "a"?
Функция getParamEx возвращает нули по параметрам максимальная, минимальная цена для акций, проблемы с переходом на новую версию qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
15.09.2020 15:00:12
Alexey, Откройте в терминале QUIK Таблицу Текущих Торгов и добавьте туда параметры Мин и макс возможной цены по классу TQBR Убедитесь что они там действительно есть и в них действительно есть числа, после чего повторите попытку запуска скрипта.
Преобразование целого числа в строку в QUIK 8.8+
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 19:17:35
тут надо заметить что метод работать только для чисел меньше 9223372036854775807
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 18:04:47
Цитата
Юрий Балашов написал: Вы наверное описались, когда пишите, что "передать параметр номера заявки в виде ЧИСЛА нельзя" и имели ввиду что в виде СТРОКИ нельзя?
Да, это просто опечатка. В виде строки нельзя.
Цитата
Юрий Балашов написал: Не могли бы Вы дать ссылку как создать таблицу при помощи QPILE.
Это описано в документации на терминал QUIK, глава "Раздел 8. Алгоритмический язык QPILE"
Цитата
Юрий Балашов написал: Это секретные данные???MSSQL слишком специфичная база, не могли бы Вы сказать будет ли работать на базе Oracle 8?
Будет работать вообще на любой БД в которой есть подходящий тип данных. Сколько таких БД существует к сожалению затруднимся сказать, наверное очень много. И по этому мы не можем привести такой список.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 17:32:08
Цитата
Юрий Балашов написал: В соседнем обсуждении Вы пишите, что номер заявки передается как строковый, я попробовал, но Квик (версия 8.5) не дает возможности передать в базу данных строку "Номер" заявки как строковую переменную, только как числовую.
К сожалению произошла ошибка, через терминал QUIK при экспорте по ODBC передать параметр номера заявки в виде числа нельзя. Альтернативный вариант в виде использования QPILE таблиц, где указать строковое значение в виде номера заявки, далее эту таблицу сохранять по ODBC.
Цитата
Юрий Балашов написал: Вы можете сказать, на каких КОНКРЕТНО базах данных, желательно с версией базы, такая передача данных проверялась.
нет не можем. на MSSQL совершенно точно проблем не обнаружено, можете использовать ее.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 17:14:27
Цитата
Юрий Балашов написал: Да, проблема действительно в FB, Квик передает данные, но усеченные, не все 19 цифр. Поэтому и был вопрос, на какой базе данных тестировали передачу данных по ODBC?
на разных базах, но FB точно не проверялся.
Цитата
Юрий Балашов написал: На какой тип данных изменить, в самой базе у меня стоит DOUBLE PRECISION?
рекомендуем ознакомиться с документацией на FB и в ней найти нужный тип, который вмещает 19 символьные числа (если вообще там такой имеется).
Цитата
Юрий Балашов написал: Вдогонку, можно ли передать номер заявки как строковый?
По идее да, если в базе строковый тип данных, однако совершенно точно именно для FB мы сказать не можем. рекомендуем проверить это самостоятельно.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 16:11:31
Цитата
Юрий Балашов написал: Сегодня, при переходе на 19-тизначный номер заявки произошел сбой передачи данных по ODBC и соответственно робот встал :(. База на FB сервере, система Win7, Квик 8.5.2.11, Брокер - Кит_Финанс. Насколько я понимаю причина в том, что FB не поддерживает 19 знаков. На какую базу можно перейти? Надеюсь разработчики не отказались полностью от передачи данных по ODBC и тестировали ее хоть на какой-то базе?
Дополним, Если проблема действительно в FB то обновление терминала никак не поможет. ответ следует искать на форумах где обсуждается FB. Еще можно попробовать изменить тип данных в самой базе.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 16:09:55
Цитата
Юрий Балашов написал: Сегодня, при переходе на 19-тизначный номер заявки произошел сбой передачи данных по ODBC и соответственно робот встал :(. База на FB сервере, система Win7, Квик 8.5.2.11, Брокер - Кит_Финанс. Насколько я понимаю причина в том, что FB не поддерживает 19 знаков. На какую базу можно перейти? Надеюсь разработчики не отказались полностью от передачи данных по ODBC и тестировали ее хоть на какой-то базе?
Попробуйте обновиться до последней версии, сейчас это 8.8.4
Цитата
Юрий Балашов написал: Кстати, теперь номер заявки идет не по порядку выставления заявки, а по какому-то другому принципу. Например заявки по SiU0 имеет меньший номер чем GDU0, даже если она была выставлена намного позже. Так и было задумано или это какой-то сбой? И как теперь упорядочить таблицу заявок?
Это вопрос к бирже а не к нам, они так транслируют. Если вкратце, то на бирже произошло так называемое портицирование метчинга, в результате которого сделки нумеруются в зависимости от базового актива, а не от инструмента.
Неправильная работа TRANS2QUIK.DLL после перехода на 19-значные номера заявок и сделок, тип данных double не может вместить 19 знаков корректно
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 15:33:48
Здравствуйте, Используйте версию 1.3, которая вышла уже очень много лет назад. Скачать можно на нашем сайте
futures_client_holding выдает значение nil
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 14:06:17
Здравствуйте, Проверьте визуально есть ли нужная строчка в таблице Позиции по клиентским счетам (фьючерсы) Если нужной строчки нет, то и значения не будут возвращаться
MOVE_ORDER на фондовом рынке мос.биржи?
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 12:15:07
Цитата
Старатель написал: На Junior будет этот вид транзакций?
на Junior нет биржевой фондовой секции и никогда не было, там работает наш эмулятор. так что у него нет ничего общего с ядром ТС, в том числе и транзакции перестановки заявок. Доработка в этом месте не планируется
Квик сжирает оперативку, Квик сжирает оперативку
Пользователь
Сообщений: Регистрация: 23.01.2015
28.08.2020 18:16:35
СергейК, Еще раз если не понятно. Список изменений - один у всех, потому что у всех одинаковые терминалы, отличаются только настройки. Дистрибутивы на нашем сайте это дистрибутивы настроенные на наш демо контур. Из этого следует что читать списки изменений можно, а вот ставить дистрибутив джуниора в надежде подключиться к брокеру лучше не стоит.
Квик сжирает оперативку, Квик сжирает оперативку
Пользователь
Сообщений: Регистрация: 23.01.2015
28.08.2020 18:13:43
Цитата
СергейК написал: Ну я б не стал себе ставить Junior когда мне надо обновить программу.
А кто Вас заставляет?
Квик сжирает оперативку, Квик сжирает оперативку
Пользователь
Сообщений: Регистрация: 23.01.2015
28.08.2020 17:57:55
СергейК, Кстати, без разницы изменения в Junior или нет, потому что терминалы у всех брокеров одинаковые, отличаются только настройки.
Есть проблема с метками, удаляются все метки, а не конкретного инструмента
Пользователь
Сообщений: Регистрация: 23.01.2015
28.08.2020 16:14:12
Mikhail Ran, Михаил, что именно не понятно во фразе "все метки на диаграмме"? диаграмма означает как раз все окно.
Квик сжирает оперативку, Квик сжирает оперативку
Пользователь
Сообщений: Регистрация: 23.01.2015
28.08.2020 15:23:33
Цитата
СергейК написал: Я спросил про ссылку на дистрибутивы:
Как уже было сказано у нас етсь только дистрибутивы нашего демо контура:
Следует понимать что у каждого брокера свои настройки, в связи с чем, если поставите дистрибутив и попытаетесь подключиться к своему брокеру у Вас ничего не выйдет, пока не поменяете настройки на нужные. Так что не удивляйтесь.