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

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 23 След.
Закладки
 
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/

Короче гугл - мощная штука :)
callback OnAllTrade, поля exchange_code & exec_market
 
Ну вот вам и ответ ;)
В луа же нет волшебства, информации там не больше, чем в терминале
callback OnAllTrade, поля exchange_code & exec_market
 
А терминал в своей таблице соответствующие параметры показывает?
[BUG] CreateDataSource не заказывает обезличенные сделки
 
Что увивительно: вы подробно и многословно излагает ваши домыслы и предположения, а также оценки. В то же время ваши "баг репорты" (ну вам так кажется, что это баг репорты, судя по оформлению) крайне скудны и даже бесполезны именно из-за этой скудности; т.е. явно видно, что это слив эмоций, о чем я и пишу.
Я же, в свою очередь, хотел бы пробудить вас к конструктиву, ибо лишь конструктив способен изменить мир. И именно изменение мира мне бы хотелось видеть.
Да, я бы хотел пробудить вас к большему конструктив.

Ну а уж приносить конструктив в ваши сообщения для всеобщего блага или продолжать лишь бессмысленный слив эмоций - это ваше решение, это ваша жизнь; наполнять её смыслом или нет - решать вам.
[BUG] CreateDataSource не заказывает обезличенные сделки
 
Я ж и говорю
Ответ вам не нужен, да и вопроса нет
Используете форум для слива эмоций
Вот бы понять как так выходит
[BUG] CreateDataSource не заказывает обезличенные сделки
 
Что за список удаления? Какой именно скрипт? Какова последовательность действий+не поеять
Эмоции, как обычнo, впереди.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 23 След.
Наверх