DestroyTable (и Clear) закрывает скрипт вместо таблицы, Тема описана в Названии и в Тексте сообщения
Пользователь
Сообщений: Регистрация: 20.03.2023
14.10.2025 07:54:48
Скорее не коллбек, а какой-то семафор, нужный для операций с окнами, заблокирован от момента нажатия на кнопку "Остановить" до завершения. Не только DestroyTable(), любые операции с таблицей не выполняются. Если к примеру вызвать SetWindowCaption(), возврата из нее не будет, но после таймаута остановки заголовок окна таки изменится.
DestroyTable (и Clear) закрывает скрипт вместо таблицы, Тема описана в Названии и в Тексте сообщения
Пользователь
Сообщений: Регистрация: 20.03.2023
13.10.2025 13:59:17
Есть такое
OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора
Пользователь
Сообщений: Регистрация: 20.03.2023
08.10.2025 08:00:31
Еще раз - последовательные вызовы onCalculate() никто не гарантировал. Вызов не по порядку - это не ошибка qiuk. Ошибка - рассчитывать на поведение, которого не обещали.
OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора
Пользователь
Сообщений: Регистрация: 20.03.2023
07.10.2025 14:50:37
Я бы вообще предполагал, что при прокрутке графика могут прилетать вызовы для тех баров, которые были не видны раньше.
OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора
Пользователь
Сообщений: Регистрация: 20.03.2023
07.10.2025 14:49:08
Полагаться на поведение, которого не обещали - косяк автора индикатора. Я бы
OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора, OI ломает данные индикатора
Пользователь
Сообщений: Регистрация: 20.03.2023
07.10.2025 13:21:46
Перечитал документацию. Нигде не увидел обещания вызова OnCalculate() в индикаторе в каком-то определенном порядке. Ну то есть в каком бы порядке вызовы не шли, это не является багом - слева направо, справа налево, да хоть вообще в случайном порядке.
"Трал" - В системе QUIK, Есть ли возможность настроить автоматическое перемещение стоп ордера от цены инструмента ?
Пользователь
Сообщений: Регистрация: 20.03.2023
09.09.2025 14:41:51
Почитайте документацию про заявки «Тейк-профит»
Рыночная заявка для торговли фьючерсами
Пользователь
Сообщений: Регистрация: 20.03.2023
29.08.2025 08:44:39
Цитата
Сергей Че написал: А то ведь не всякую цену можно указать, она должна быть в диапазоне минимуму до максимума, заданных биржей на текущий день.
Да, надо брать параметры PICEMAX / PRICEMIN.
Можно ли уточнить задержку в Интернете до выставления заявок?, Как можно раньше выставить заявку после начала их приёма
Пользователь
Сообщений: Регистрация: 20.03.2023
07.08.2025 10:03:08
Serge123, Хотите влезть в очередь заявок раньше маркетмейкера?
Технологические времена работы биржи
Пользователь
Сообщений: Регистрация: 20.03.2023
22.07.2025 11:34:06
У тинькова в апи есть расписание торгов по инструментам
Окончательное решение вопроса с getQuoteLevel2. Вопрос к разработчикам QLua, Нужно, наконец, что-то исправить?
Пользователь
Сообщений: Регистрация: 20.03.2023
01.07.2025 16:26:14
Цитата
Ivan Sizykh написал: В случае, если одно из полей "bid_count"/"offer_count" будет иметь значение, отличное от "0.000000", соответствующее поле будет таблицей таблиц со строками "price" и "quantity". Если при этом другое поле "bid_count"/"offer_count" будет равно "0.000000", то соответствующее ему поле "bid"/"offer" будет пустой строкой.
Но зачем? Ведь чтобы получить пустую строку, нужно это значение умышленно выставлять после каких-то проверок. А если делать "как проще", должно получиться либо nil, либо пустая таблица.
Доходность к оферте
Пользователь
Сообщений: Регистрация: 20.03.2023
24.06.2025 13:47:37
Биржа еще не определилась, как считать доходность
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
написал: Описанные изменения негативным образом скажутся на скорости получения информации терминалом.
1. Зачем пользователю быстро видеть "сырые" данные, которые нельзя использовать непосредственно в своем скрипте? 2. Сам факт многократного обсуждения данной темы пользователями показывает, что в обработке заявок есть проблема. Пользователю все равно приходится выполнять ту работу, которая не реализована разработчиком QUIK, а именно, писать фрагмент учитывающий и обрабатывающий записи заявок без trans_id. Где тут скорость?
Почему данные нельзя использовать? К примеру, если предполагается, что есть единственный скрипт, работающий с инструментом - все заявки его, trans_id вообще может быть неинтересен.
Отображение фандинга для вечных фьючерсов., Как посмотреть знак фандинга?
Пользователь
Сообщений: Регистрация: 20.03.2023
23.05.2025 07:54:32
Ну так вы с ценой квартального фьючерса сравните и задумайтесь. Не будь положительного фандинга, можно было бы продать квартальный фьючерс, купить вечный и ждать приближения экспирации...
Подписка и отписка SetUpdateCallback, Подписка и отписка SetUpdateCallback
Пользователь
Сообщений: Регистрация: 20.03.2023
15.04.2025 13:10:35
Поддержка вместо 1. #### и 2.#### предлагала SetEmptyCallback() перед Close().
Ошибка снятия заявки. [GW][3] "Сейчас эта сессия не идет."
Пользователь
Сообщений: Регистрация: 20.03.2023
11.04.2025 06:25:54
А sendTransaction ничего не возвращает?
Подписка и отписка SetUpdateCallback, Подписка и отписка SetUpdateCallback
Пользователь
Сообщений: Регистрация: 20.03.2023
10.04.2025 09:24:27
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 20.03.2023
07.04.2025 12:23:44
Можно провести тест - попробовать сломать lua, принудительно вызвав gc в main и коллбеке одновременно.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 20.03.2023
07.04.2025 12:21:44
Кажется, следует предполагать, что синхронизации в gc нет. И поэтому gc останавливают при вызове коллбеков. А также поэтому категорически нельзя в main вызывать collectgarbage('restart').
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 20.03.2023
07.04.2025 09:38:06
Цитата
TGB написал: nikolz забыл вас спросить: вы понимаете почему разработчики QUIK при выполнении коллбеков останавливают сборку мусора?
Сборка мусора не потокобезопасна? Ванильный lua вообще то однопоточный, threads там - это просто короутины, которые выполняются по очереди в одном реальном потоке ос, с явным переключением coroutine.resume()/coroutine.yield() Для поддержки многопоточности надо как минимум задефайнить свои макросы lua_lock()/lua_unlock(). Но блокировка идет только на время работы интерпретатора (то есть просто читать/писать в переменные параллельно можно), а вызовы С функций не блокируются. В том числе и встроенные функции insert/remove/sort не блокируются. Откуда и растут ноги у sinsert/sremove/ssort. На время сборки мусора видимо тоже нет блокировки. Так что если она запустится одновременно в main и колбеке - будет жопа. Так что лучше не трогать collectgarbage('stop')/collectgarbage('restart'). Ведь если вы его на время выключаете, то наверное и включаете потом? А если в этот момент выполняется колбек - сборщик мусора может запуститься в нем.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 20.03.2023
07.04.2025 09:09:42
lua_State это, как написано в документации и в комментарии в исходниках, "per thread state". Структура, одно из полей которой - указатель на global_State. Этот global_State общий для всех потоков, и именно в нем лежит все, связанное с с управлением динамически выделяемой памятью, сборкой мусора и глобальными переменными. У каждого потока есть свой стек, но на стеке живут только локальные переменные - их время жизни до выхода из функции, не сборщик мусора их освобождает.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Т е в каком стеке Вы вызовите сборщик, тот стек он и будет чистить.
Динамическая память - это не стек. Или имелся ввиду поток? Ну мы же можем передавать объекты между потоками. Не может быть разделения по потокам для сборки мусора.
Цитата
Each Lua state has one or more threads, which correspond to independent, cooperative lines of execution. The type (despite its name) refers to a thread. (Indirectly, through the thread, it also refers to the Lua state associated to the thread.)
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 20.03.2023
05.04.2025 20:52:20
Код вызова колбеков наверное не на lua. Надо в C api смотреть: lua_gc(...)
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
Пользователь
Сообщений: Регистрация: 20.03.2023
25.03.2025 07:52:28
Цитата
Сергей написал: В анонсе версии 12.2 действительно указано что "Ошибка при попытке загрузить в Карман транзакций заявки из файла" исправлена Но в последней версии 12.2.1.2 во всплывающем меню из Кармана нет опций "Загрузить заявки из файла", "Загрузить стоп-заявки из файла", "Загрузить адресные/безадресные заявки из файла" которые есть в версии 11.3.4 Есть только "Загрузить транзакции из tri-файла"
Ну так решили же проблему с ошибками. Нет возможности загрузить из файла - нет ошибок при загрузке. То есть закрыта проблема "ошибки при загрузке", а не "невозможно загрузить".
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
теперь можно читать из io.input и писать в io.output в конце надо закрыть потоки и аналогичным способом вызвать FreeConsole
Создать заявку с признаком - полностью или отклонить через формат .tri-файла
Пользователь
Сообщений: Регистрация: 20.03.2023
13.01.2025 08:23:20
Цитата
Роман Н написал: А если же такую же заявку я выставлю в ручном режиме в терминале с признаком "полностью или отклонить", то такая заявка будет ждать снижения цены и встречного предложения и не отменится.
Так не должно быть. Если вы выставляете заявку с признаком "полностью или отклонить", а она ждет - это ошибка.
API: ордер - Book-or-Cancel, вопрос дублирует аналогичные, но задается касаемо API
Пользователь
Сообщений: Регистрация: 20.03.2023
25.11.2024 09:04:57
1. Да 2. Нет
Обещанного, как известно, три года ждут. Но вот тут например между "будет рассмотрено и, возможно, реализовано в одной из следующих версий" и "было реализовано в версии..." прошло 9 лет.
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 20.03.2023
25.11.2024 08:44:45
Код
(math.modf(num + (num >= 0 and 0.5 or -0.5)))
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 20.03.2023
25.11.2024 08:42:53
Цитата
VPM написал: Да заметил не точность вот так будет работать
Код
-- Округление для любого числа
local rounded = math.floor (num * mult + 0.5 * (num > = 0 and 1 or - 1 )) / mult
round(-12.34, 2)) == -12.35
Работа терминала QUIK в Wine
Пользователь
Сообщений: Регистрация: 20.03.2023
22.11.2024 07:41:18
Цитата
У меня тоже Linux и тоже проблема с некорреткным обновлением файла vcomp110.dll. Обновляется всё, кроме него. Из-за чего, каждый раз при загрузке крика всплывает сообщение о необходимости обновить квик.
Запустите winecfg и на вкладке libraries добавьте эту библиотеку.
Kaк убрать uid cверху окна?, Надпись сверху окна
Пользователь
Сообщений: Регистрация: 20.03.2023
09.10.2024 07:34:26
Скачать надо w32.dll где-то там А скрипт нужно написать. Примерно так:
Код
w32 = require("w32")
QuikMainWindowHandle = 0
function OnInit()
QuikMainWindowHandle = GetMainWindowHandle()
end
function main()
if QuikMainWindowHandle ~= 0 then
-- тут можно писать, что вашей душе угодно
w32.SetWindowText(QuikMainWindowHandle, "Testing....")
end
end
function GetMainWindowHandle() -- Получить дескриптор главного окна QUIK
local CurrentProcessId = w32.GetCurrentProcessId()
local hWnd=0
while true do
hWnd = w32.FindWindowEx(0, hWnd, "InfoClass", "")
if hWnd == 0 then break end -- Окно не найдено
local ThreadId, ProcessId = w32.GetWindowThreadProcessId(hWnd)
if ProcessId == CurrentProcessId then break end -- Окно найдено
end
return hWnd
end
Kaк убрать uid cверху окна?, Надпись сверху окна
Пользователь
Сообщений: Регистрация: 20.03.2023
08.10.2024 15:24:12
Цитата
Kypat написал: Да добавьте в настройках галочку убрать uid , и добавьте время или бегущую строку мировых индексов типа типа hang seng nasdaq moex и ТД чтоб можно было видеть в % изменении и объем
Можно lua скриптом писать в заголовок окна все, что вам хочется...
Я сейчас уже точно не помню, в Windows чтобы окно можно было перемещать у него должен быть специальный атрибут. Если его нет, то окно не двигается, как сейчас закреплённый стакан. Если этот атрибут вернуть, окно может выглядеть немного иначе, что впрочем не должно быть проблемой.
В Windows, чтобы окно можно было перемещать, у него должен быть заголовок. Тот, который с кнопками.
Заявки в QUIK
Пользователь
Сообщений: Регистрация: 20.03.2023
24.09.2024 11:30:34
Цитата
ДмитрийР написал: а есть ли способ поставить лимитную заявку так, что бы если в этой цене окажется противоположная заявка, она не исполнилась как рыночная, а просто отменилась?
Условие исполнения: "Только пассивная"
Перенос заявки, не работает
Пользователь
Сообщений: Регистрация: 20.03.2023
13.09.2024 13:41:19
Все поля надо писать кириллицей.
текущий современный способ сделать робота без ежемесячных расходов?
Пользователь
Сообщений: Регистрация: 20.03.2023
01.08.2024 08:36:44
Цитата
funduk написал: API брокеров бесплатны, как я понимаю. Есть у тинька и финама, но у финама альфа версия и можно забыть про миллисекунды.
У финама есть transaq connector У алора есть Atentis
Я бы хотел иметь возможность в LUA видеть статус отправки сообщений в Телегу и если сообщения перестали уходить, то получить какой-то message, Версия с io.popen это позволяла бы сделать, как в приведённом выше примере, но он не работает :(. Ваш вариант отличный, но он позволит только постфактум узнать о проблемах. Но все равно, Вам огромное спасибо за идею в принципе! Это просто прекрасное решение почти всех моих запросов!
Не знаю, что у вас не так, у меня io.popen работает, и ответ от curl я получаю. Может, дело в версии curl
у меня io.popen вообще ничего не возвращает и команду не выполняет. Я пробовал просто dir отправить. У вас windows какой версии?
У меня в win10 работает. И под wine в линуксе тоже работает. Просто dir работать не будет, надо "cmd /c dir" Можно попробовать добавить в начало "cmd /c 2>&1 " перед curl - получите вывод сообщений об ошибках. Ну или в файл ошибки отправлять "cmd /c 2>errorfile.txt "
Я бы хотел иметь возможность в LUA видеть статус отправки сообщений в Телегу и если сообщения перестали уходить, то получить какой-то message, Версия с io.popen это позволяла бы сделать, как в приведённом выше примере, но он не работает :(. Ваш вариант отличный, но он позволит только постфактум узнать о проблемах. Но все равно, Вам огромное спасибо за идею в принципе! Это просто прекрасное решение почти всех моих запросов!
Не знаю, что у вас не так, у меня io.popen работает, и ответ от curl я получаю. Может, дело в версии curl
Ошибка: Значение "" превышает допустимый размер, постоянно пишется ошибка: Значение "" превышает допустимый размер
Пользователь
Сообщений: Регистрация: 20.03.2023
25.07.2024 20:45:28
Цитата
Александр написал: при обращении скриптом к его заявке постоянно пишется ошибка:
А что в скрипте то?
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 20.03.2023
24.07.2024 07:56:54
Потом подключаетесь к своему боту, пишите ему что-нибудь, дергаете api (можно прямо в браузере открыть) и ищите там chat id.
Изменено: - 24.07.2024 14:18:04
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 20.03.2023
24.07.2024 07:46:41
Пишите botFather /start потом /newbot придумываете имя, получаете токен
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 20.03.2023
24.07.2024 07:45:05
Открываете в телеграмм
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 20.03.2023
21.07.2024 07:41:21
Аккуратно обрабатываем спецсимволы:
Код
function tgmsg(text)
local curl = 'curl.exe'
local token = '.....'
local chatid = '....'
text = string.gsub(text, '[^0-9a-zA-Z\x80-\xff._~-]', function(chr) return string.format("%%%02x", string.byte(chr)) end)
local h, e, c = io.popen(curl .. ' -X POST --data-raw text="' .. text .. '" https://api.telegram.org/bot' .. token .. '/sendMessage?chat_id=' .. chatid)
if h then
local a = h:read('a')
return a, h:close()
else
return false, e, c
end
end
Где скачать TRANS2QUIK.dll x64 ? есть пример использования на delphi выставления заявки?
Пользователь
Сообщений: Регистрация: 20.03.2023
05.07.2024 16:06:02
Обработку внешних транзакций в quik запустили? "Сервисы / Экспорт/импорт данных / Внешние транзакции"
Работающая библиотека LuaSec
Пользователь
Сообщений: Регистрация: 20.03.2023
05.07.2024 12:14:16
К этой сборке надо libcrypto-1_1-x64.dll и libssl-1_1-x64.dll где-то еще взять.
Работающая библиотека LuaSec
Пользователь
Сообщений: Регистрация: 20.03.2023
05.07.2024 12:10:58
Если доверяете бинарникам, скачанным и неизвестных источников -