Берете программку Dependency Walker Открываете в ней вашу Lua_535_x64_dll_for_Quik.dll, смотрите зависимости. Видно, что зависит (из не выложенных вами) от python39.dll У вас на компьютере если вашу библиотеку открыть - напротив python39.dll тоже будет вопросительный значок в желтом кружке?
Изучайте как устроена загрузка DLL в Windiws В частности, переменная среды path Если дело в самом деле в dll-ках, то самое простое положить все требуемые DLL в каталог с quik
Egor Zaytsev написал: К нам можно отправить до 10 мб, более почта не пропускает.
И при этом вы в сообщении терминала просите отправить вам файл дампа на почту. Умно, да. Я понимаю, что всем плевать - одни пишут, другие читают. Но неужели ни у кого нигде не щелкает, что что-то тут не так?
QApplication написал: Что нужно сделать чтобы отключить логирование в файл info.log Сегодня размер файла достигал более 1.2 GB плюс файл alltrade.dat порядка 800 MB.
Никак. Это необходимые данные для работы терминала. Вы заказываете кучу данных - терминал вынужден их где-то хранить. Вот и хранит, для собственных нужд.
Файл info.log можете смело стирать между перезапусками QUIK.
Я только не пойму: по нынешним меркам 2 Гб на диске - это вообще ни о чем, два десятка фоток с телефона буквально. Об чем печаль-то?
Старатель написал: По поводу конструктива, раз уж вы напрашиваетесь.
Парниша, не надо хамить незнакомым людям.
Цитата
Старатель написал: Месяц назад я сообщил о том, что эта функция не работает.
Я бы дополнил "у меня не работает". Это сразу намекнёт на нюансы.
Цитата
Старатель написал: На мой взгляд, этого короткого сообщения более, чем достаточно, чтобы проверить работоспособность новой функции. Спустя месяц, поддержка застряла на выяснении есть ли такое на Демо-доступе (блин, а самому проверить не быстрее было бы) и наименовании класса (как будто на демке, кроме SPBFUT есть другие классы с транзакцией замены заявки).
Вот не в плане спора, исключительно с заботой об улучшении мира напишу я это. Пожалуйста, попробуйте посмотреть на всю ситуацию под другим углом. Нет, не проще. Нет никакого смысла кидаться что-то проверять без уточнения всех деталей. Потому как, я уверен, поддержка проверить именно там, где работает. После этого что - обвинять вас в том, что вы неправду говорите? Да нет же! вы пишете правду, уверен, что у вас в самом деле не работает. Но в каких условиях? на какой бирже? в каком режиме торгов? Причем ваше сообщение о такой проблеме - единственное на форуме. Что тоже странно. Обычно при действительно неработающей фиче форум заваливается сообщениями об одинаковых ошибках.
Я ж потому и говорю. Эмоции ваши прекрасно понимаю; и то, что годами не правятся ошибки - меня дико бесит. Но краткость изложения для баг репорта - штука довольно бессмысленная. Чем полнее - тем полезнее.
Уверен, мир вокруг вас будет непременно становиться лучше!
А вот здесь, кстати, толковое уточнение по наименованию от пользователя. Поправили в документации или нет - не проверял. https://forum.quik.ru/forum10/topic2988/
Что увивительно: вы подробно и многословно излагает ваши домыслы и предположения, а также оценки. В то же время ваши "баг репорты" (ну вам так кажется, что это баг репорты, судя по оформлению) крайне скудны и даже бесполезны именно из-за этой скудности; т.е. явно видно, что это слив эмоций, о чем я и пишу. Я же, в свою очередь, хотел бы пробудить вас к конструктиву, ибо лишь конструктив способен изменить мир. И именно изменение мира мне бы хотелось видеть. Да, я бы хотел пробудить вас к большему конструктив.
Ну а уж приносить конструктив в ваши сообщения для всеобщего блага или продолжать лишь бессмысленный слив эмоций - это ваше решение, это ваша жизнь; наполнять её смыслом или нет - решать вам.
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
Владимир написал: Я всё-таки пробежался по сообщениям службы техподдержки. Слова же "Ваше пожелание было реализовано в версии X.X.X терминала QUIK" встретились лишь 6 раз.
Старатель написал: Про CQ01954637 тоже месяцами врали, что не воспроизводится и про CQ01939238 и мн. др... Потом признались, что проблема действительно есть.
Я таки сомневаюсь что "врали". В самом деле не воспроизводилось. Потом удалось нащупать условия. Часто пользователю кажется, что "так всегда", а по факту у него - комплекс неких частных условий. Причем возможно даже массовых, но отличающихся от тех, в каких живут разработчики по массе разных причин (очевидно, например, что разработчики не гоняют QUIK месяцами не закрывая; наоборот, постоянно перезапускают для проверки новодела).
Впрочем, это не объясняет не поправляемых годами признанных (т.е. воспроизведенных) проблем.
Андрей написал: Или вы про колбек OnMoneyLimit? Я не измерял насколько он раньше, чем 1й onTransReply, но экспериментально видел, что за 50мс отправлять создание не получается.
Изначально речь не шла про "быстро". Речь шла про "ненадежно". Именно в этом разрезе я вам и пишу. И т.к. нужна надежность - то хоть OnMoneyLimit, лимиты по нему меняются, как изменились лимиты - точно можно ставить заявку новую. А может и OnOrder попробовать. Еще раз подчеркну: речь про надежность, а не про "быстрее".
А если надо быстрее - долбить на все эти события, где-то да пройдет "побыстрее".
Андрей написал: Событийная модель и приводит к тому, что создание ордера требует паузы в 100-300мс после снятия.
После какого конкретно события 100-300мс? (нет события "снятие заявки"; есть отправка транзакции, получения ответа на транзакцию, изменение состояния заявки, изменение состояние лимитов; давайте уже выражаться более точно, для лучшего понимания; "кто ясно мыслит <-> тот ясно излагает")
Цитата
Андрей написал: как обеспечить функционал, аналогичный MOVE_ORDERS срочного рынка. Почему там это есть, а здесь нет?
Потому что такой функционал предоставляет секция срочного рынка. Пишите ваши пожелания на биржу, здесь про доработки биржевого ядра писать бесполезно.
Цитата
Андрей написал: Тогда я не совсем понимаю, чего ждет сервер QUIK от биржы на клиентский KILL_ORDER.
Сервер QUIK ждет ответа на эту транзакцию. Впрочем, этот ответ ему до лампочки, он его просто транслирует на клиента. А после, по другому каналу (дада, мир устроен сложнее, чем вам кажется), биржа отправляет информацию об изменении статуса заявки на "снято", в результате чего сервер QUIK уже разблокирует деньги на лимитах. Одна беда: если не ошибаюсь, сначала изменение заявки рассылается, а уж потом разблокируются лимиты, но это не точно. Впрочем, пока до клиента по сети доедет сигнал об изменении состояния заявки - скорее всего на сервере лимиты уже будут разблокированы; именно поэтому я и предложил именно на это событие реагировать; не понял только из ваших рассуждений: вы попробовали такой вариант?
Цитата
Андрей написал: Я никак не могу отправить изменение ордера за 20мс, хотя очевидно, что лимиты позволяют.
Возможно надо просто смириться с мыслью, что в рамках обычного клиента QUIK желаемые скорости недостижимы. И надо посмотреть какие еще есть варианты роботизированных подключений; а варианты эти есть. И что значит "лимиты позволяют"? Не торгуйте на всю котлету, если хочется чудес, торгуйте на пол-котлеты, тогда второй половины будет хватать на все эти move.
Старатель написал: За много лет менялись компы, ОС, ЦП, ПЗУ, ОЗУ... Неизменным осталось только отсутствие таймаута ожидания при установке связи с сервером.
Фиговатый канал связи? Особенно проблемы с демо очень удивляют.
Андрей написал: Проблема в том, что между этими транзакциями приходится ждать сколько-то много мс, иначе создание еще не понимает, что перед этим отправлена транзакция снятия.
Вроде бы тут как раз должна пригодиться событийная модель QLua: отправлять вторую транзакцию по изменению состояния первой заявки на "снята".
Цитата
Андрей написал: 1) Сделать вторую версию ф-ции sendTransaction, которая пропускает "проверку достаточности средств на сервере", идет сразу на биржу.
Заявки с разными ценами, так что средств от первой заявки может не хватить на вторую, так что проверка достаточности средств необходима.
Цитата
Андрей написал: Ведь ваша проверка на сервере Quik - это как пре(дварительный)фильтр. Без него ничего страшного тоже не произойдет
Произойдёт. Потому как сервер QUIK в данном случае - единственная проверка достаточности средств в случае фондового рынка. С точки зрения биржи (для фондового рынка) все операции выполняются на счете брокера, на весь лимит брокера.
Цитата
Андрей написал: Без него ничего страшного тоже не произойдет - получим отказ от биржи в реплае.
Либо первая заявка "сыграет" за это время - что делать со второй? Или сессия торговая закроется - что делать со второй заявкой? а в первой?
Однозначно "правильно" ответить на эти вопросы не представляется возможным, каждый видит приемлемый для себя вариант.
Так что только самостоятельно, ручками в своём роботе каждому придётся решать эту задачку. Сообразно своему видению правильных путей разрешения краевых сценариев.
Let_it_go написал: обычный код я ничего необычного с ним не делал
Главное никому этот код не показывайте!
PS номера строк в сообщениях об ошибках формирует интерпретатор Lua. QUIK тут ни при чем, QUIK вам не поможет. можете проверить ваш код на каком-нибудь online-Lua - результат будет тот же, я уверен (ошибка без номера строки).
s_mike@rambler.ru написал: Когда задают вопрос про версию, это означает, что никто даже и не пошевелился, чтобы найти ошибку. Она проявляется на любой версии ккогда спрашивают код скрипта, это означает, что никто даже не почесался прочитать первые три сообщения ветки когда спрашивают скриншот окна сообщения, это значит, что никто даже не пробовал поискать в текстах терминала слово "видеопамяти " Даниил, вам спихнули эту проблему, потому что все равно никто не решить не может?
Здесь вы совершенно неправы. То, что кому-то кажется "да у меня в каждом скрипте так" на самом деле означает лишь то, что человек этот каким-то определённым образом пишет скрипты. Но делает всегда именно так, поэтому "в каждом скрипте...". Но, важно! не в "любом", а в "каждом моём". Далее. Если кто-то воспроизведёт примерно подходящую по описанию ошибку - скорее всего это будет совсем другая ошибка, а не та, с которой сталкиваетесь вы. Т.е. вашу проблему - уж точно не починят. Именно поэтому спрашивают всегда конкретный проблемный код. А не обще-абстрактные рассуждения. На любом абсолютно программистском форуме.
Если есть конкретный проблемный код - с ним всегда здесь разбираются. Как минимум убеждаются, что с ним в самом деле есть проблема. Это видно по сообщениям поддержки. Другое дело, что не всегда, скажем мягко, в итоге проблему чинят - это да, это так. Но не приводить проблемный код - это вообще крайне странный подход к общению. Или вам просто эмоции слить?
На самом деле требуется рисование прямоугольников произвольного цвета заливки по заданным координатам на графиках из скриптов (по времени) Когда уже сделаете?
Кстати, как по мнению пользователей должны задаваться горизонтальные координаты? по времени? по пикселам? по интервалам времени? или как?
[QUOTE]ddonny написал: и например, если делаю так:
function OnInit() --Subscribe_Level_II_Quotes(CLASS_CODE_OPT, TICKER_OPT) --переменные инициализируются данными, после второго запуска скрипта LEVEL2_BID_COUNT = getQuoteLevel2(CLASS_CODE_OPT, TICKER_OPT).bid_count LEVEL2_OFFER_COUNT = getQuoteLevel2(CLASS_CODE_OPT, TICKER_OPT).offer_count end [QUOTE]
Данные не мгновенно же появляются. Subscribe_Level_II_Quotes <-- происходит подписка, данные приедут позже (причем только после выхода из обработчика Lua! это надо учитывать)
Старатель написал: В результате вместо того, чтобы выдать ошибку, что у пользователя нет прав для работы с отключенным кодом клиента, QUIK стал молча подменять его на другой. Т.е., скрипт отправляет транзакцию с CLIENT_CODE = client2//brokerref, а заявка приходит с client_code = client1, brokerref = client1//client2//brokerref Это косяк.
Ну это такой момент, который пошел от пользовательского интерфейса QUIK. Если подключен только 1 логин (вернее один "код клиента") - то этот код автоматически подставляется, чтобы пользователя не грузить и "было удобно". В общем-то логично, согласитесь. И для подавляющего большинства пользователей (я думаю для всех) это удобно, думаю и с этим вы согласитесь.
Отправка транзакций через QLua в этом месте не отличается. Все волшебство (которое, оказывается, еще и на сервере) просто работает.
Я примерно понимаю ваше негодование, вы надеялись, что транзакции не проедут и ошибок торговли не будет. Однако в самом деле зачем такое поведение исправлять. Оно явно устраивает подавляющее большинство пользователей, которые имеют только 1 код клиента и этим кодом даже не заморачиваются ни при ручной подаче заявок, ни пир торговле через скрипт.
swerg написал: 1. В документацию включить список функций, которые нельзя вызывать из OnStop() по каким-либо причинам, как нарушающие корректность выполнения программ Lua или работу терминала. 2. После этого у вас будет список функций с ограничением по функционалу. Очевидно, далее следует работать над уменьшением размера этого списка, т.е. надо добавлением возможности всё же вызывать функции из этого списка из OnStop() (c постепенным удалением таковых функций из данного неприятного списка).
Просьба уточнить, о каких конкретно функциях, вызываемых из OnStop(), идет речь? Быть может, мы не так поняли, но речь вроде бы шла про блокировку основного потока функцией OnStop() (как и описано в документации).
Речь о функциях, которые нельзя вызывать из OnStop.
swerg написал: Не должно быть никакой привязки к визуальной таблице
Не нравятся мне безапелляционные сообщения подобного рода. Если Вы так пишите - аргументируйте.
Каковы ваши цели? И где аргументация с вашей стороны? Есть ваше мнение общие рассуждения по поводу "решение должно быть быстро реализуемым", "удобным для большого количества пользователей QUIK". На речи депутатов похоже, общие слова "за мир во всем мире".
Что вам нужно аргументировать? то, что в скрипте должен быть контролируемый полностью доступ к данным? Считаю, что это очевидно. Или быть может вас устраивает ситуация, когда сейчас чтобы получить свечей приходилось бы открывать графики, задавать на них какие-то "идентификаторы", лазить по меню и что-то нам настраивать чтобы в скрипте в итоге поехал поток данных? это удобно?? Очевидно же что нет. Так что требуется аргументировать?
И, главное, с чего вы считаете, что я для вас что-то должен аргументировать?
Albert Eritsyan написал: Просьба зарегистрировать пожелание предоставления пользователю возможности выбора путей сохранения этих файлов без глобальных изменений кода Quik.
Я так и не понял: что вам мешает перенести весь QUIK на нужный HDD? И никакой опции не понадобится.
Albert Eritsyan написал: Как то странно проецируется alltrade в RAM, при проецировании столько памяти в RAM не должно было выделиться, а должны были выделиться только под нужные страницы файлов.
Значит с точки зрения Windows именно столько и требуется выделить "под нужные страницы файлов". "Проецирует" в память - операционка, не QUIK.