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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 25 След.
Уничтожаем фейки
 
Хорошее исследование, особенно что касается понимания OnParam
Ошибка в коде справки?
 
Вот бы вы сюда эюпроблемеый код скопировали, было бы проще понять
Закрытие контракта QUIK, LUA
 
Вот бы вы сюда этот пример скопировали, было бы проще понять
Закрытие контракта QUIK, LUA
 
Что такое первый и последний контракт?
onDepoLimit() после onTransReply()
 
NiKO, заявка на покупку или продажу выставляется?
Закладки
 
https://quik2dde.ru/viewtopic.php?id=329
Как разместить таблицу на нужной вкладке
Прием данных и стаканов в различных потоках
 
Цитата
В функции main для каждого инструмента запускается свой поток.  Потоки берутся из пула.

Без иллюстрации кодом вот этого момента, сказать что-то предметное - невозможно.
Ибо не понятно чем ваши потоки (где не работает) отличаются от потока main (где работает).
Сохранение результатов работы скрипта в файл
 
Цитата
Владимир написал:
О, Господи!.. Теперь уже и таблица стала "типом данных"?

Здесь бы местному дурачку сбегать почитать документацию, но это не поможет.
Изучаем Qlua., "hello world"
 
Перевожу:

Сохранение результатов работы скрипта в файл
 
Как-то все в одну кучу.
1. При работе в QLua надо четко различать два абсолютно разных термина "таблица":
1) Таблица как тип данных в программе Lua, т.е.
Код
    а = {}   -- здесь переменная a - таблица в терминах языка программирования Lua
    a[1] = 5  -- так к ней можно обращаться в программе

2) Таблица как элемент визуального интерфейса, таблица, которую вы видите на экране, визуальная таблица с данными.
[/CODE] a = AllocTable() -- здесь переменная a содержит в программе идентификатор визуально отображаемой таблицы в терминале QUIK
                   -- дальше вы знаете как работать с такой таблицей, раз у вас она отображается[/CODE]

Теперь понимаете? вы в своём вопросе смешали в кучу две эти совершенно разные "концепции", называемые, к сожалению, одним термином "таблица".

Цитата
и в итоге:
attempt to call a nil value (global 'SaveTable')
Потому что штатно нет в QLua функции SaveTable(t_id, SaveResalt)
Вам надо найти реализацию нагугленной вами этой функции или написать ее самостоятельно.
Замечу, что в данном случае будет идти речь про сохранение значений из "таблицы" в смысле 1), а никак не про визуальные!
Не могу заставить работать функцию Subscribe_Level_II_Quotes()
 
Цитата
Вася написал:
цикл убрать, то функция отрабатывает и отписки не происходит.
Как определили, что не происходит?
не все то золото, что блестит
 
Цитата
Старатель написал:
Но существует такая вещь, как маржинальная торговля. Есть бумаги разного типа: маржинальные/не маржинальные
А еще есть комиссия. Которая не всегда просто процент от суммы сделки.
Бесконечный цикл функции с заданным интервалом времени
 
Roffild, а что этот код делает? Содержательно
Вы не можете заменить заявку ..., так как ее обработка еще не завершена.
 
Цитата
Старатель написал:
Так тут вопросов больше не брокеру, а к разработчику.
Обработкой заявок занимается торговая система биржи.
Какой смысл обрабатывать заявку, если пользователь хочет её снять? Это лишняя работа.

Заявка уже в обработке на бирже.
По поводу кому какой вопрос - у разработчиков просто недостаточно информации, чтобы предметно ответить на ваш вопрос. Более того, у вас просто нет требуемой им информации. Но есть у брокера, потому и просят зайти через брокера.
Последовательность статусов лимитной заявки
 
Все верно.
Не ожидайте какого-либо последовательного изменения статусов. Заявка к вам может приехать в любом статусе, как сразу исполнена, так и частично исполнена, так и сразу снята.
Бесконечный цикл функции с заданным интервалом времени
 
Володя, ты бы прежде чем дебилами разбрасываться, свой пример привёл в этой ветке.
Идиот хренов.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
Цитата
Денис написал:
Прежде всего, низкий Вам поклон за Ваш форум, если бы не он, я бы бросил изучать Lua ровно там же, где и начал.
Спасибо Вам на добром слове  :oops:  :smile:

Цитата
Например, в скрипте получены значения переменных и он должен просто их сложить. Все прекрасно до тех пор, пока не нажата кнопка "Остановить" - тут скрипт вылетает со словами "Не могу сложить а и б, потому что б равно nil.
С какого перепугу, имеющая определенное значение переменная б, вдруг, его теряет после отработки функции OnStop?
Тут бы пример.
Честно говоря не верится мне, что если OnStop() содержит только
{
  Stopped = true;
  return 5;
}
то переменные, используемые только в main() внезапно становятся равными nil после этого.
Ну а по примеру уже можно было бы и подсказать что там не так.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
2. Из OnStop() возвращаем 0
Зачем? принуждаем QUIK мгновенно по выходу из OnStop() прибиваь поток main() - чтобы что? чтобы не дать функции потока корректно доработать (хотя доработает она очень быстро в приведенном слуучае), т.к. взводим флаг Stopped
Делаем всё, чтобы насильно прибить потоковую функцию, от нее ожидаемо повисают сопли незакрытых ресурсов, куски незафинализированных вызовов Lua.
А после - удивительно! - оставшаяся часть софта начинает глючить (и я подозреваю, что QUIK эти 5..7 минут не просто сам по себе живет, наверняка выполняются другие Lua-скрипты)

Ну т.е. сделано все, чтобы ожидаемо получить глюки.
Но зачем?? В чем ценность этой демонстрации?
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
(это рука-лицо а не форум)
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
По-моему, код в первом сообщении специально написан так, чтобы максимально пройтись по граблям.

1. Открываем файл в main(), а закрываем зачем-то в другом потоке в OnStop().
Это и само по себе некрасиво просто-напросто (открывать в одном месте, в закрывать в другом, совершенно не связанном ни визуально, ни логически), да еще и ожидаемое может приводить (и приводит) к появлению сообщения "attempt to use a closed file", механизм появления которого вполне понятен. (нет? уточните, мне не сложно, напишу, но потом, не буду это сообщение разбухать).2.
MySQL и кириллица
 
Если записать в QLuа, потом прочитать в QLua и отобразить в quik через message данные - корректно отобразится?
Если да - разбирайтесь с тем средством, каким вы просматривает базу , там проблема
Скрипт для перезапуска другого скрипта
 
Цитата
Aleb написал:
Подскажите, можно ли написать скрипт, который бы перезапускал первый скрипт допустим раз в день в определенное время.

Тут все умело постебались.
Но ответ прост: возможности такой нет.
Обратитесь к автору dll, пусть устранит проблему с потреблением памяти.
Как из скрипта открыть окно на нужной вкладке?
 
Вот здесь все описано
https://quik2dde.ru/viewtopic.php?id=329
как мне скомпилировать или достать luasql
 
Цитата
но на выходе только mysql.dll, как получить  luasql.mysql

Так вам и нужна mysql.dll
Просто ее надо положить в папку luasql внутри quik, и тогда, по правилам библиотек Lua, возьмётся библиотека luasql/mysql.dll при загрузке require("luasql.mysql ")
Вопрос по написанию скрипта
 
Да, предоставляет
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Не баг, а фича :D
И вообще не до этих мелочей
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Старатель написал:
v(0) -> 4.9 сек
v(10000000) -> 4.4 сек

QUIK 8.1.0.30:
v(0) -> 5.7 сек
v(10000000) -> 5.9 сек

QUIK 8.13.1.16, Lua 5.4:
v(0) -> 6.4 сек
v(10000000) -> 6.0 сек

QUIK 9.3.1.11, Lua 5.4:
v(0) -> 7.7 сек
v(10000000) -> 17.3 сек

QUIK 9.3.1.11, Lua 5.3:
v(0) -> 7.9 сек
v(10000000) -> 17.4 сек

Деградация от версии к версии определённо печалит. Хоть я и поставил бы под сомнение корректность некоторых полученных результатов (v(0) больше, чем v(10000000) ??). Но, похоже, в 9.3 точно случилось что-то.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Старатель написал:
Цитата
swerg написал:
если вы просто возьмете Луа без привязки к квик - вызов среди десятков тысяч переменных тоже будет тормозить.
Пруф в студию.

Для экспериментов возьмем online lua https://qlua.ru/demo/
Результаты выходят не очень стабильными, но все же проведя пару десятков экспериментов и выкинув пару экстремально отличающихся результатов, получил следующее время выполнения:
100 глобальных переменных - 1,4753 сек
100 тыс. глобальных переменных - 1,5608 сек

Да, разница не фантастически великая. Но какая-то явно есть. Разница много меньше, чем в ваших экспериментах внутри квика, это стоит отметить.

Тестовый код:
Скрытый текст
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Только сейчас разглядел создание 50 тыс глобальных переменных
Ну и чего вы хотите? функция в ЛУА - это просто глобальная переменная типа "функция".
Чтобы функцию вызвать - ее надо найти, на это, очевидно, уходит время.
Давайте десятки миллионов глобальных переменных создадим и будем требовать оптимизации. Зачем? кому интересен этот сценарий??

Уверен, если вы просто возьмете Луа без привязки к квик - вызов среди десятков тысяч переменных тоже будет тормозить. Т.е. это такое вполне понятное свойство интерптетатора Луа.
Просто не надо заводить десятки тысяч глобальных переменных.

Так что в данном случае я согласен с первыми высказавшимися "флудерам". Завалить можно любую систему. Вот только не со всеми "завалами" есть смысл разбираться, ибо некоторые из них (как здесь) будут сугубо не жизненные.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Я про приведённый скрипт.
А если main убрать - станет лучше?
В целом в самом деле не понятно по каким критериям вы говорите, что есть загрузка процессора.
А совсем этот скрипт остановить - какая загрузка? А запустить скрипт какая загрузка? И сколько ядер у вас процессор, чтобы отмасштабировать цифры.
Потому как "большая загрузка" - не понятная вводная. Надо бы знать что такое небольшая для вас и наоборот что большая, в цифрах. Чтобы масштаб проблемы был понятен.

Все-же скрипты с кольеками есть буквально у всех и как-то не особо слышно чтобы тормозил от колбеков так, что прям работать невозможно.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
А если колбеки убрать станет лучше? И какие именно колбеки убрать, от убирания которых становится лучше?
Не всегда исполняется require в начале скрипта
 
Нет, вы не описали "простой случай". Вы написали свои фантазии про неввполняющийся require. После и вовсе пустились в какие-то фантащийные рассуждения о причинах.
Описывать же следует только факты. Т.е. последовательность ваших действий и наблюдаемые эффекты.
Просто рекомендация для будущих сообщений
Не всегда исполняется require в начале скрипта
 
Предлагаю просто вот это вот "переопределял глобальную системную ф-цию" вынести в отдельную функцию в модуле, а не в общем коде.
И добавить вызов этой функции в вашем скрипте после require

Вообще ваше исходное сообщение очень путанное. лучше бы вы описали последовательность действий, приводящих в ошибке. Как я понял - при повторном запуске того же самого скрипта не не работает переопределение глобальных функций, описанное в подгружаемом через require модуле.
Не всегда исполняется require в начале скрипта
 
Что такое "код модуля"?
Какая конкретно функция в DLL не выполняется при выполнении нового скрипта?
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Цитата
BVladimir написал:
PYTHON39.DLL тоже в корень Quik ? Ну он в системном path сидит ?

Давно б уже проверили.
Вопросительный знак после второго предложения? если так - то не понятно к кому вопрос
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Интересно было бы сравнить  зависимости для библитеки, которая таки работает
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
И все эти доп. библиотеки вы в корень квика сложили, верно?
Тогда не знаю
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Берете программку Dependency Walker
Открываете в ней вашу Lua_535_x64_dll_for_Quik.dll, смотрите зависимости.
Видно, что зависит (из не выложенных вами) от python39.dll
У вас на компьютере если вашу библиотеку открыть - напротив python39.dll тоже будет вопросительный значок в желтом кружке?
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Выложите куда-то собранную длл и все нужные для неё длл
Быть может удастся разобраться
Иначе разговор далее беспредметный
Critical error ACCESS_VIOLATION in script...
 
Дополнительные DLL библиотеки используются?
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Изучайте как устроена загрузка DLL в Windiws
В частности, переменная среды path
Если дело в самом деле в dll-ках, то самое простое положить все требуемые DLL в каталог с quik
Определение экземпляра терминала в скрипте в офлаине
 
getWorkingFolder
Основные библиотеки для QLua 5.4.1
 
https://quik2dde.ru/viewtopic.php?id=293
Что-то выложено, что-то по запросу.

Цитата
Тем более, что особых усилий прилагать не надо, просто в одном месте собрать и "причесать".

Когда усилия прилагает другой - да, особых не требуется.
Ошибка загрузки файла
 
"Доктор, болит!"

В какой момент выдается это сообщение?
Если это при выполнении скрипта - нужен его текст.
[BUG] CreateDataSource не заказывает обезличенные сделки
 
Цитата
swerg написал:
Цитата
Старатель написал:
Месяц назад я   сообщил   о том, что эта функция не работает.
Я бы дополнил "у меня не работает". Это сразу намекнёт на нюансы.

Как пример - ваше же предпоследние сообщение вот в этой теме
https://forum.quik.ru/forum1/topic6631/

Оказывается, есть нюанс :)

Удачи вам! Вы много полезного делаете для исправления ошибок в этом кривоватом QUIK
Не запускается "Quik"
 
Цитата
Egor Zaytsev написал:
К нам можно отправить до 10 мб, более почта не пропускает.

И при этом вы в сообщении терминала просите отправить вам файл дампа на почту.
Умно, да.
Я понимаю, что всем плевать - одни пишут, другие читают. Но неужели ни у кого нигде не щелкает, что что-то тут не так?
info.log
 
не, приврал я про фотки, 200 фоток
info.log
 
Цитата
QApplication написал:
Что нужно сделать чтобы отключить логирование в файл   info.log
 Сегодня размер файла достигал более 1.2 GB плюс файл   alltrade.dat   порядка 800 MB.

Никак. Это необходимые данные для работы терминала.
Вы заказываете кучу данных - терминал вынужден их где-то хранить. Вот и хранит, для собственных нужд.

Файл info.log можете смело стирать между перезапусками QUIK.

Я только не пойму: по нынешним меркам 2 Гб на диске - это вообще ни о чем, два десятка фоток с телефона буквально.
Об чем печаль-то?
[BUG] CreateDataSource не заказывает обезличенные сделки
 
Цитата
Старатель написал:
По поводу конструктива, раз уж вы напрашиваетесь.

Парниша, не надо хамить незнакомым людям.

Цитата
Старатель написал:
Месяц назад я  сообщил  о том, что эта функция не работает.

Я бы дополнил "у меня не работает". Это сразу намекнёт на нюансы.

Цитата
Старатель написал:
На мой взгляд, этого короткого сообщения более, чем достаточно, чтобы проверить работоспособность новой функции.
Спустя месяц, поддержка застряла на выяснении есть ли такое на Демо-доступе (блин, а самому проверить не быстрее было бы) и наименовании класса (как будто на демке, кроме SPBFUT есть другие классы с транзакцией замены заявки).

Вот не в плане спора, исключительно с заботой об улучшении мира напишу я это. Пожалуйста, попробуйте посмотреть на всю ситуацию под другим углом.
Нет, не проще. Нет никакого смысла кидаться что-то проверять без уточнения всех деталей. Потому как, я уверен, поддержка проверить именно там, где работает. После этого что - обвинять вас в том, что вы неправду говорите? Да нет же! вы пишете правду, уверен, что у вас в самом деле не работает. Но в каких условиях? на какой бирже? в каком режиме торгов?
Причем ваше сообщение о такой проблеме - единственное на форуме. Что тоже странно. Обычно при действительно неработающей фиче форум заваливается сообщениями об одинаковых ошибках.

Я ж потому и говорю. Эмоции ваши  прекрасно понимаю; и то, что годами не правятся ошибки - меня дико бесит.
Но краткость изложения для баг репорта - штука довольно бессмысленная. Чем полнее - тем полезнее.

Уверен, мир вокруг вас будет непременно становиться лучше!  :wink:
callback OnAllTrade, поля exchange_code & exec_market
 
У меня - пустые.

Есть на форуме тема. Там в логе видно, что тоже пустые значения в этих же полях
https://forum.quik.ru/forum10/topic3170/

А вот здесь, кстати, толковое уточнение по наименованию от пользователя. Поправили в документации или нет - не проверял.
https://forum.quik.ru/forum10/topic2988/

А вот здесь у кого-то заполняется, но и режим торгов (class) не тот, в котором смотрите  вы
https://forum.quik.ru/forum10/topic3983/

Короче гугл - мощная штука :)
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 25 След.
Наверх