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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 25 След.
lua-mysql не компилируется под x64
 
Да, действительно, такая картинка была.

Ну это только если кто-то собирал именно таким образом и именно luarocks
Я собираю прямо из VS, подкручивая при необходимости параметры сборки
Зависает вывод стоимости портфеля, Зависает вывод стоимости портфеля
 
Вызовы getportfolio и file:write разнесите на 2 разных вызова
Сейчас не понятно в каком именно из них проблема и какая
lua-mysql не компилируется под x64
 
Проблема не в библиотеках, а в том, судя по сообщению ликёра, что проект 32 битный собираете
Менять в свойствах проекта
И не понятно как именно вы былдитк, вы это упорно не пишете
lua-mysql не компилируется под x64
 
Похоже вы собираете  под 32-битную платформу
lua-mysql не компилируется под x64
 
Цитата
Александр написал:
Может быть даже тряхну стариной и напишу что-нибудь на Си :-)
Готовые примеры в помощь
https://quik2dde.ru/viewtopic.php?id=18

А, ну и потом
Для сборки mysql надо найти подходящие библиотеки самого mysql
Возможно в этом месте проблема
lua-mysql не компилируется под x64
 
https://quik2dde.ru/viewtopic.php?id=339
Есть готовая сборка, напишите мне на e-mail
На чем основана Ваша торговая стратегия?
 
Айдар,
А зачем Excel и vba?
Почему не все на lua?
Вылетает QUIK Junior 9.7.0.14 при подключении отладчика Visual Studio 2022 17.0.5 С++
 
Тупость и глупость.
Кто захочет дебажить именно терминал - тот защиту обойдёт.
Кто захочет вполне легально дебажить свою библиотеку для Lua - не сможет это сделать.
Так какого хрена мешать легальный действиям и не особо мешать нелегальным? Все как наши законодатели делаете: соблюдать законы сложно, нарушать - легко. Верной дорогой!
Пустое значение trans_id в таблице сделок.
 
99% что проблема именно в том, что вы написали.
Никакого признака "вот теперь заполнено все" нет.
С другой стороны заполненность trans_id и есть в вашем случае такой маркер.
Отладка QUIK 8.13
 
Цитата
Владимир написал:
Это САМ СКРИПТ формирует айдишки заявок!
Я ж сказал что ты не понимаешь разницу между транзакцией и заявкой.
И даже когда я все подробно расписал - ты, дебила кусок, понять прочитанное не сумел.
Где найти таблицу индексов стакана
 
Три раза перечитал. Ничего не понял
Что требуется?
Отладка QUIK 8.13
 
Уточни, в чем ахинея?
Я написал как оно устроено.
Ты несёшь поток хотелок.
Так в чем ахинея, придурок?
Отладка QUIK 8.13
 
Это не ошибка. Это результат произвольно го порядка поступления информации с биржи. И, соответственно, произвольного порядка наполнения данных в колбеках скрипта.
Если от биржи информация о зарегистрированной заявке пришла раньше информации о случившемся сделке, что происходит в большинстве случаев, то в ontrade приходит сразу полная информация, включая указанный пользователем ID транзакции.
Если информация о сделке пришла раньше информации и породившей её заявке, то стачала будет ontrade, в котором часть полей, данные в которые попадают с заявки, будут не заполнены. А после того как с биржи придёт информация о заявке, сервер квика сможет опознать заявку для уже известной ему сделки и вызовет ontrade уже с заполненной информацией в полях про заявку
Отладка QUIK 8.13
 
От же тупень.... "ошибка нестабильная"
Отладка QUIK 8.13
 
Я тебе рассказываю как оно на самом деле. Причём инфу эту ты не найдёшь нигде, она из очень глубокого многолетнего изучения.
А ты вместо спасибо продолжаешь выпендриваться по-идиотски. Дурак и напыщеный идиот.

А сервер при том, что терминал лишь передаёт инфу на сервер и получает её с сервера. Терминал вообще не производит содержательного работы со сделкам и заявками.
Впрочем, сервер 4вика тоже. Все биржа. И это абсолютно правильно, иначе барак полный выйдет.
Отладка QUIK 8.13
 
Но вообще конечно смешно читать про такие наивные "открытия" пальцегнутого балбеса. Это сразу с головой выдаёт его реальный уровень.
Отладка QUIK 8.13
 
Цитата
Владимир написал:
Но, господа, это же МОЯ айдишка, это НА МЕНЯ возлагается обеспечение её уникальности, так какие могут быть нули? Откуда им взяться? И это на 146% ошибка именно ПО Квика - ни брокеру, ни бирже до моей айдишки нет никакого дела. Непорядок...

Нет, это ошибка скриптописателя, который не понимает.
"прерывания", как вы их называете, приходят в любом порядке. Но это не болажь квика, а особенность работы биржевых API
В том случае, если сервер квика получает об биржи информацию о сделке раньше чем информацию о зарегистрированный заявке, он сообщает вам о сделке вызовом ontrade, но про заявку он ещё не знает, биржа это ещё не сообщила. Соответственно и информацию поставленную вами на заявке он сообщить не может, у него сервера квик в этот момент ещё нет такой заявки, он про неё не знает
Потом, когда с биржи приходит информация про зарегмюистрированную заявку, в скрипте вызывается снова ontrade, но уже с поставленной информацией о заявке,т.к.теперь появилась возможность все это связать, теперь сервар знает про заявку и сделку. Ещё в этот момент будет вызван onorder, конечно.

А то что вы отправляете - это транзакция а не заявка.
Уничтожаем фейки
 
Хорошее исследование, особенно что касается понимания 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 модуле.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 25 След.
Наверх