Озадачился сделать dll не на студии, а с помощью MSYS2 . Собирается, но не работает в квике ((
Есть подозрение, что не линкуется как следует lua53.lib, погуглил исходный код (чтоб собрать под тем же MSYS2) - а нету, может, плохо искал. Вылезают ссылки с уже откомпилированной библой.
Кто знает, можно ли найти исходники?
Не хочет запускаться на сервере, Хотя на домашнем компе работает отлично
Пользователь
Сообщений: Регистрация: 27.05.2015
08.10.2021 08:23:11
Переношу аккуратно папку с квиком на сервер, запускаю квик, и выдаётся вот что:
Периодически в течении 2-х лет провожу такую процедуру (отлаживаю на домашнем компе, потом копирую квик на сервер), ранее проблем не было вообще. Как можно решить проблему?
Отладка QUIK 8.13
Пользователь
Сообщений: Регистрация: 27.05.2015
14.04.2021 11:18:26
TGB,а как квик может обновиться "неожиданно для вас"? Появляется оповещение "На сервере появилась новая версия, обновить?" Если нажмёте кнопочку "нет" , то будете работать на старой версии.
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
Пользователь
Сообщений: Регистрация: 27.05.2015
17.03.2021 12:36:01
Цитата
Владимир написал: Так делайте на тесте - получайте текущие значения не из TTT, а из файла
Дык, визуализация ж нужна! На графике квика можно посмотреть, как и что, понаставить меток, где купил, где продал, воочию, так сказать, оценить стратегию.
Чего не сделаешь с бездушным файлом с миллионами байтов...
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
Я делаю прогон алгоритма на истории, например. Чем больше диапазон данных - тем лучше.
Что происходит утром?
Пользователь
Сообщений: Регистрация: 27.05.2015
03.02.2021 17:42:37
Let_it_go, в понедельник утром скрипты запускаются, в субботу утром останавливаются - все данные в переменных и структурах сохраняются...
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
25.01.2021 22:55:39
swerg, время используется не только в OnQuote. В OnQuote просто всплыл вышеупомянутый ворнинг.
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
25.01.2021 21:53:57
Цитата
swerg написал: Положите весь код в OnQuote - и будет счастье.
На малоликвидных инструментах OnQuote может и по 10 секунд не срабатывать - а время желательно чтоб было актуальное.
Вроде бы проблема решилась с помощью локальных переменных перед проверкой, спасибо всем за советы!
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
24.01.2021 19:15:54
Игорь М,в OnQuote(). Никаких действий с hcc и mcc , кроме получения времени и преобразования строк в числа, не производится.
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
24.01.2021 19:12:55
BlaZed, os.date() выдаёт время на компьютере с квиком, а нужно именно время брокерского сервера, которое и выдаёт getInfoParam("SERVERTIME")
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
24.01.2021 19:07:55
Константин Рейм, мне нужно, чтобы в числах были отдельно часы и минуты.
BlaZed, первый фрагмент кода находится в main(), второй - в OnQuote() , ворнинг возникает в рабочее время биржи.
Выскакивает ворнинг "Compare string with number", А его не должно быть, по идее!
Пользователь
Сообщений: Регистрация: 27.05.2015
24.01.2021 18:00:53
Определяю время сервера так:
Код
HHMMSS = getInfoParam("SERVERTIME")
if string.len(HHMMSS) == 7 then hcc, mcc, scc = string.match(HHMMSS,"(%d)%p(%d%d)%p(%d%d)") else hcc, mcc, scc = string.match(HHMMSS,"(%d%d)%p(%d%d)%p(%d%d)")
end
hcc = tonumber(hcc) if type(hcc) ~= 'number' then hcc = 0 end
mcc = tonumber(mcc) if type(mcc) ~= 'number' then mcc = 0 end
scc = tonumber(scc) if type(scc) ~= 'number' then scc = 0 end
потом работаю с часами и минутами:
Код
if type(hcc) == 'number' and type(mcc) == 'number' then
if hcc > 10 and mcc < 5 then
-- какие-то действия
end
end
И на строку "if hcc <= 10 and hcc >= 9 and mcc < 5 then" периодически вылетает вышеупомянутый ворнинг. Почему он выскакивает? Ведь вроде все преобразования в числа и дополнительные проверки произведены!
На работу скрипта не влияет, но неприятно...
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
07.12.2020 20:53:46
Первый раз о такой слышу. Вы не ошиблись?
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
07.12.2020 13:59:03
,так в getsecurityinfo всё равно нужно задавать class_code, sec_code, а хотелось бы обойтись без этого.
По всей видимости, придётся как-то комбинировать isconnected с временем сервера...
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
07.12.2020 09:26:56
Цитата
написал: узнать , идут ли торги по инструменту, можно в таблице текущих торгов
т.е., нужно использовать getParamEx и вводить параметры конкретного инструмента, что в индикаторе не очень удобно...
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
06.12.2020 12:42:43
, т.е. чтобы определить, что последняя или предпоследняя свеча является закрытой, нужно знать, идут ли торги. А прямой функции, позволяющей это определить, я так понимаю, нет?
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
06.12.2020 11:00:38
, спасибо, действительно самый простой вариант.
Тогда такой вопрос: на дневном графике в ходе торговой сессии Size() указывает на свечу предыдущего дня, я правильно понял?
Как определить абсолютный путь к исполняемому файлу lua?
Пользователь
Сообщений: Регистрация: 27.05.2015
03.12.2020 18:00:58
Цитата
Владимир написал: при нажатии кнопки "добавить" при загрузке скриптов он открывает не папку "своего" Квика, а ту, из которой была последняя загрузка.
Вы правы, причина в этом, просто надо быть внимательнее при добавлении скриптов в окне...
Как определить абсолютный путь к исполняемому файлу lua?
Пользователь
Сообщений: Регистрация: 27.05.2015
01.12.2020 20:47:57
Использовал относительный путь, но имеется несколько папок с квиками от разных брокеров и мой фреймворк почему-то "путает" папки (папки типа "С:\Quik1" , "C:\Quik2" , и т.д.). Поэтому решил использовать абсолютный путь для исключения ошибок. Как определить абсолютный путь?
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
Пользователь
Сообщений: Регистрация: 27.05.2015
21.11.2020 14:32:44
Как в OnCalculate индикатора определить, что данная свеча является последней рассчитанной (правой на графике) свечёй на данный момент времени?
quik 8.5 + lua 5.3 = ошибка
Пользователь
Сообщений: Регистрация: 27.05.2015
02.06.2020 21:36:16
Anton,всё оказалось до смешного проще: я скомпилировал dll со сборкой с sourceforge для 64bit lua 5.1
После замены на 64bit lua53 и небольшой коррекции кода всё заработало как по маслу )))
quik 8.5 + lua 5.3 = ошибка
Пользователь
Сообщений: Регистрация: 27.05.2015
01.06.2020 20:20:25
Запускаешь скрипт первый раз - выдаёт ошибку на скрине. Запускаешь второй - квик слетает, не оставляя дампа. Имеет смысл снять дамп с помощью for_dump ?
quik 8.5 + lua 5.3 = ошибка
Пользователь
Сообщений: Регистрация: 27.05.2015
01.06.2020 20:14:34
Цитата
Egor Zaytsev написал: Если совет Александра не поможет, то пришлите архив рабочего места QUIK (без ключей доступа и файла chm) а также Ваш скрипт
Это сделать затруднительно, т.к. совместно с lua работает фреймворк, написанный на С++
Вот, выдаёт такую ошибку. Что бы это значило?
quik 8.5 + lua 5.3 = ошибка
Пользователь
Сообщений: Регистрация: 27.05.2015
01.06.2020 13:41:02
Цитата
Александр М написал: Копать в сторону перекомпиляции скрипта под lua 5.3
Скрипт в обычной текстовой форме, не компилирован.
Цитата
Александр М написал: с изменением синтаксиса естественно под новую версию
Где можно почитать об отличиях синтаксиса 5.1 от 5.3 ?
quik 8.5 + lua 5.3 = ошибка
Пользователь
Сообщений: Регистрация: 27.05.2015
01.06.2020 10:40:41
Ну вот, обновил до 8.5.2.11 (до этого была 8.3.2.4) , и при запуске работавшего ранее без проблем скрипта квик вылетел с сообщением что-то вроде "закрыто рабочее место QUIK". Откатил обратно к 8.3.2.4 - всё нормально работает.
В какую сторону хоть копать, подскажите?
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
06.05.2020 15:37:54
Цитата
Anton написал: обычно это повреждение стека тем или иным способом.
Вы правы, функция из C++ возвращала слишком много параметров в LUA-скрипт (оказывается, по умолчанию 20 элементов стека, у меня было больше)
Проблема решилась увеличением количества элементов стека с помощью lua_checkstack
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
05.05.2020 12:49:27
Nikolay,объясните ещё раз для тупых )) Сначала запускаем fordump , потом QUIK ? Или fordump сама запускает QUIK ?
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
05.05.2020 09:25:57
Nikolay, файлы *,dmp могут расшифровать только в ARQA? Самостоятельно понять причину невозможно?
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
26.04.2020 14:08:54
Цитата
Anton написал: где происходит урезание 64 бит до 32 и где signed/unsigned mismatch в сравнениях, скорей всего откуда-то оттуда ноги растут
unsigned переменных нет вообще, код написан очень просто. Я просто взял проект из VS2013, поместил в VS2017, открыл, пофиксил все ворнинги, на которые ругалась новая версия VS, переключил выход с 32bit на 64bit - и всё!
Т.е., отлично работающий код, с многократно пофиксиными багами на периоде 3,5 года, просто перекомпилирован на новую битность - и не работает!
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
26.04.2020 13:53:45
Nikolay,эта утилита - ForDump - публичная? Или нужно персонально обращаться в компанию?
И ещё: причину "падения" вы так и не нашли? А как работал ваш драйвер на 32bit?
QUIK 8.0
Пользователь
Сообщений: Регистрация: 27.05.2015
25.04.2020 09:18:48
Пытаюсь постепенно переходить на 64bit QUIK )) Имеется сложный фреймворк, связка lua с .dll , памяти занимает много, но выделение памяти контролируется.
Ранее .dll под 32bit компилировал в VS2013, работало всё на последней 32bit версии QUIK на слабом ноуте с 4ГБ памяти с процессором Intel (так же всё работало и на выделенном сервере)
Под 64bit компилируется на VS2017, версия QUIK 8.3.2.4 , работает на достаточно мощном ноуте, 12ГБ памяти, но с процессором AMD.
32bit вариант мог работать неделями, не закрывая квик, и работало зараз по 5-6 роботов, проблем не было совершенно.
64bit запустил одного робота, работает около часа, потом QUIK внезапно слетает, даже приблизительную причину аварийной остановки определить невозможно, т.к. не остаётся ни дампов , ни каких-то записей в моём логгере, т.е. причина останова, по всей видимости, очень серьёзная.
Вопрос1: была у кого-нибудь такая ситуация?
Вопрос2: может это быть как-то связано с особенностями процессоров AMD?
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
Пользователь
Сообщений: Регистрация: 27.05.2015
19.07.2019 21:51:58
Какая минимальная оперативка нужна? Что-то ноут странно себя ведёт при запуске...
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
Пользователь
Сообщений: Регистрация: 27.05.2015
15.07.2019 18:26:33
Подскажите, пожалуйста, как перекомпилировать *.dll для работы с lua под новую версию QUIK, старая не работает по причине своей 32-битности, я правильно понимаю?
Не работает .dll в новой версии QUIK, просит увеличить файл подкачки
Пользователь
Сообщений: Регистрация: 27.05.2015
15.07.2019 11:41:38
Обновился QUIK до 8-й версии и "обрадовал" ошибкой:
На предыдущей версии работали 6 скриптов безо всяких проблем.
Как устранить? Файл подкачки увеличил до максимума - всё равно вылазит ошибка (((
Пользователи Telegram-Bot! Как организовать работу через proxy?
Пользователь
Сообщений: Регистрация: 27.05.2015
30.04.2018 21:33:04
Цитата
Все бы хорошо, но у меня скрипт работает с обратной связью, т.е. он не только отсылает через бот информацию на телефон, но и анализирует, какие команды бот получает с моего телефона.
Ого! А есть библиотеки LUA, которые позволяют осуществить подобное?
Пользователи Telegram-Bot! Как организовать работу через proxy?
Пользователь
Сообщений: Регистрация: 27.05.2015
22.04.2018 14:53:50
После некоторого периода возни с библиотеками, делающими вызов по http, плюнул на это, написал функцию, запускающую Internet Explorer с заданным URL, т.о., отсылал сообщение на телефон с Telegram.
Теперь Telegram через IE недоступен, буду реализовать такую же цепочку через Firefox с установленным анонимайзером.
Можно ли по графику определить таймфрейм этого графика?, Можно ли по графику определить таймфрейм этого графика?
Пользователь
Сообщений: Регистрация: 27.05.2015
03.04.2018 10:11:49
Понятно, что можно взять 2 соседние свечи и по разнице в их таймах вычислить.
Но, может быть, есть более простой способ?
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 27.05.2015
19.03.2018 22:28:50
Дмитрий, не сказал бы, что это нормально. Закончилась торговая неделя, хочется проанализировать данные, а программа конвертирует данные только по четверг ((
Разумеется, с помощью Qlua я получаю доступ к графику и вывожу свечи полностью за неделю, включая последний день - но зачем "костыли"? Почему бы не реализовать это полноценно в QMinEditor?
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 27.05.2015
18.03.2018 11:07:16
Подниму тему. Почему-то выводит данные без последнего торгового дня.
Например, на FORTS по инструменту BRJ8 таймфрейм 120 min последний торговый день - 16.03.2018 (в квике данные на графике присутствуют)
В QMinEditor последний день - 15.03.2018. Так было задумано или это баг?
Активные-снятые заявки
Пользователь
Сообщений: Регистрация: 27.05.2015
02.11.2017 15:20:00
В догонку к ,
полскажите, какие флаги активны у частично исполненной заявки? Флаг 0 имеет значение 1 ?
Изучаем Qlua., "hello world"
Пользователь
Сообщений: Регистрация: 27.05.2015
21.10.2017 12:59:45
Здравствуйте! Есть вопрос по снятию частично исполненных лимитных заявок.
Выставлено 5 лотов, исполнено 2. Ещё действующая заявка на оставшиеся 3 лота снимается по общим правилам или есть какие-то особенности?
Кто как решил вопрос уведомления о сделках?
Пользователь
Сообщений: Регистрация: 27.05.2015
20.10.2017 20:34:34
Вот, попробуйте. Распакуйте все файлы и папки в папку c QUIK, где лежит info.exe.
Никаких дополнительных библиотек, по идее, не нужно, всё должно быть в этой сборке.
quick api
Пользователь
Сообщений: Регистрация: 27.05.2015
20.10.2017 14:26:12
Здравствуйте! Где можно посмотреть документацию по trans2quik.dll ?
Кто как решил вопрос уведомления о сделках?
Пользователь
Сообщений: Регистрация: 27.05.2015
17.10.2017 17:45:50
Сергей, если будет полезно, могу выложить (попозже) все собранные мной файлы для работы с инетом в QUIK.
На Win 7 64 bit работает, на сервер ещё не закидывал, но запросы проходят с 10-15 секундной задержкой (об этой проблеме писали выше), и побороть эту задержку никак не получается...
Кто как решил вопрос уведомления о сделках?
Пользователь
Сообщений: Регистрация: 27.05.2015
17.10.2017 09:02:17
Сергей, а на десктопной Windows пробовали? Тоже виснет?
Что обрывает break
Пользователь
Сообщений: Регистрация: 27.05.2015
13.10.2017 20:16:20
Разумеется, цикл for
Закрытие терминала QUIK средствами QLUA - возможно ли?, Закрытие терминала QUIK средствами QLUA - возможно ли?
Пользователь
Сообщений: Регистрация: 27.05.2015
29.09.2017 10:51:53
, спасибо! А не в курсе, выключение квика таким способом происходит с сохранением рабочего пространства в файл basic.wnd (или в подобный) при установленном пункте в настройках "Сохранять настройки в файл при выходе"?