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

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

Страницы: 1 2 3 4 5 След.
Прием данных и стаканов в различных потоках
 
Наверное, это можно проверить опытным путём.

Если обращение к хранилищу данных реализовано через одну дверь - основной поток, - то все остальные потоки, сколько бы их не было запущено, выстроятся в одну очередь у входа в дверь. И при запуске нескольких скриптов, "одновременно" запрашивающих, например, данные стаканов мы не увидим сколько-нибудь существенного ускорения по сравнению с одним скриптом, запрашивающим по очереди такое же количество стаканов.
Проверим:
Код
function main()
  local t = os.clock()
  for _ = 1, 100000 do
    getQuoteLevel2(class, sec)
  end
  message(tostring(os.clock() - t))
end
Проведём несколько тестов с 1-м, 2-мя, 3-мя, 4-мя одновременно запущенными скриптами.

Результаты:
1 скрипт: 6.5 сек
2 скрипта: по 15.2 сек каждый
3 скрипта: по 23.1 сек каждый
4 скрипта: по 30.4 сек каждый

При этом, во всех случаях было загружено только одно ядро процессора, что как бы намекает на использование только одного потока для доступа к данным.
Прием данных и стаканов в различных потоках
 
Цитата
nikolz написал:
Прием данных от источника и стаканов реализуется  в main.
-----------------
Все работает замечательно.   Но узким местом  является прием данных всех инструментов в одном потоке main.
-----------------------
Хочу принимать данные и стаканы в  отдельном потоке   каждого  инструментов.

А разве приём данных идёт не через основной поток? Хоть тысячу отдельных потоков сделай, они все встанут в очередь при обращении к хранилищу.
Или вы располагаете другой информацией?
А это точно форум QUIK?
 
Цитата
BlaZed написал:
старичок хоть троллит и флудит как не в себя, зато делает форум забавнее, без него скучно бы тут было.
Не вижу ничего забавного в том, что два идиота в каждой теме меряются у кого больше.
Лично я, захожу на форум, как и большинство адекватных людей, чтобы найти решение какой-то проблемы, а не веселиться
Вся ветка по программированию уже загажена.

Цитата
Alexey Ivannikov написал:
Наша позиция такова: это форум, а на форуме люди общаются.
Выбор ваш - каким будет эта помойка.
Вы не можете заменить заявку ..., так как ее обработка еще не завершена.
 
Цитата
swerg написал:
у разработчиков просто недостаточно информации, чтобы предметно ответить на ваш вопрос.
Да есть у них вся необходимая информация:
https://forum.quik.ru/messages/forum10/message58910/topic6794/#message58910

Цитата
swerg написал:
Заявка уже в обработке на бирже.
Вот именно! А сервер зачем-то держит заявку в заложниках и не даёт её снимать.
Вы не можете заменить заявку ..., так как ее обработка еще не завершена.
 
Брокеру можно предъявить только то, что его железо не тянет сервер квик в моменты повышенной нагрузки. Но не брокер ПО пишет.
Корень зла в тормозной обработке заявок сервером. Причём, перед снятием заявки серверу, кровь из носа, надо обязательно её обработать. Хотя очевидно, что обработка избыточна, если заявку уже снимают.
Более 75% всех ошибочных транзакций у меня - это ошибки вида "Вы не можете заменить заявку ХХХ. Повторите попытку позже." Когда возрастает волатильность на рынке, резко увеличивается количество таких ошибок.
Но обращение к брокеру бесполезно, коль скоро сам разработчик не желает заниматься проблемой. Саппорт предлагает понатыкать слипов. А что толку, если при росте волатильности эта обработка увеличивается до 5 и более минут?
А это точно форум QUIK?
 
Цитата
Alexey Ivannikov написал:
о каких именно сообщениях идёт речь?

Серьёзно?!! Загляните в ветку Программирование на языке Lua. Там каждая вторая тема завалена флудом, флеймом и оффтопом.
Оффтоп — сообщения, никак не соответствующие заявленной теме.
Флуд — нетематические сообщения, не несущие никакой полезной информации, зачастую занимающие большие объёмы.
Флэйм — агрессивные сообщения, оскорбления, провокации в сообщениях, перебанка (даже с использованием цензурных слов), нередко уже не имеющие отношения к первоначальной причине спора.


По-моему, всем участникам форума, кроме администрации, очевидно, о каких сообщениях идёт речь.
А это точно форум QUIK?
 
Администрация, быть может вы не заметили, но на вашем форуме завёлся тролль, который нарушает почти все правила форума.


А чё, так можно было?  :?:
Странная ошибка в скрипте с автообновлением., Ошибка: D:\SAMP\CLEAR SBORKA SAMP\moonloader\update.luac:0: attempt to compare nil with number
 
Цитата
nikolz написал:
а Вы форумом не ошиблись?
А вы?


Цитата
Fasmin написал:
Кто знает помогите
Fasmin, ответил в другой ветке:
https://forum.quik.ru/messages/forum10/message60476/topic6997/#message60476
Не понятная ошибка помогите, луа самп тут, (exception) and (error)
 
Цитата
Fasmin написал:
Так я и есть разработчик этого скрипта
:lol:

Цитата
Fasmin написал:
[17:34:47.955073] (error) update.luac: D:\SAMP\CLEAR SBORKA SAMP\moonloader\update.luac:0: attempt to index global 'updateIni' (a nil value)
Скорее всего, ошибка возникает при выполнении:
Код
updateIni = inicfg.load(nil, update_path)


Цитата
Fasmin написал:
(exception) update.luac: error reading ini file: D:\SAMP\CLEAR SBORKA SAMP\moonloader\script_update.ini: cannot open file
Смотрите, по какой причине не может открыть script_update.ini
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Anton написал:
Надо только корневой сертификат импортировать в доверенные корневые, это который самоподписанный (DigiCert Trusted Root G4).
Я вообще не заморачивался с сертификатами. Просто после обновления до 9 при попытке запуска квика вида ругнулась однократно, что файл info.exe повреждён. Я нажал "ОК". Вроде, повторно распаковал из апдейта info.exe (щас уже не вспомню) и запустил заново - всё заработало. Про сертификаты я уже потом прочитал на форуме.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Незнайка написал:
Из QUIK8 копируем файлы MP_Pr.dll, mp_pr.ini, qcrypto.ini в QUIK9 с заменой.
Вот это ваще не надо. Не обратил внимания. что в quik_9.3.3_upd.zip никаких инишников нет, т.ч. эти файлы и так останутся при создании копии папки целиком QUIK8 -> QUIK9.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Незнайка написал:
Из QUIK8 копируем файлы MP_Pr.dll, mp_pr.ini, qcrypto.ini в QUIK9 с заменой.
Только mp_pr.ini, qcrypto.ini скопировать из QUIK8 в QUIK9
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
ISINhere2001 написал:
напишите пожалуйста, если не сложно, что и куда копировать, какие файлы изменить, дополнить.
Берем паку с рабочей версией 8 (Пусть будет условно QUIK8). Делаем её копию: QUIK9
Далее из quik_9.3.3_upd.zip распаковываем содержимое в QUIK9 с заменой файлов.
Из QUIK8 копируем файлы MP_Pr.dll, mp_pr.ini, qcrypto.ini в QUIK9 с заменой.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Anton написал:
попробовал без ka_pr и удивился - коннектится (неверное имя или пароль), сидел вот репу чесал, чего это квик не упал.
Потому что KA и MP - это разные СКЗИ-провайдеры, не? Можно использовать либо то, либо другое, но не оба сразу.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
KA_Pr.dll и ka_pr.ini не нужны, кстати, т.к. активен
Цитата
ISINhere2001 написал:
[CryptoProvidersSettings]
CipherCryptoProvider=MultiPurpose_SSPI_Provider
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Anton написал:
mp_pr есть в апдейте, а вот ka_pr нет, и от седьмого не подойдет.
У ТС - 8-я версия x64
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
ISINhere2001 написал:
Сотрудники техподдержки  Quik в Сбере пользуются 9-й версией терминала, но пользователям ее пока не предоставляют, тк не все оттестировали.
Сбер обычно позже остальных брокеров обновляет версии квика, т.к. действительно тестирует их (особенно серверные) на своём стенде.
В отличие от других брокеров, которые сразу выкатывают новые версии на бой. А пользователи пусть сами потом мучаются ))
Но я сейчас попробовал подключиться по MultiPurpose_SSPI_Provider из 9.3. У меня пока нет логина и пароля - ввел наобум, пишет "Неверное имя или пароль". Думаю, если б там 8-й сервер был, другая ошибка была бы.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Незнайка написал:
Ещё нужны сами либы KA_Pr.dll и MP_Pr.dll
В смысле скопировать из старой папки в новую.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Anton написал:
содержимое файла  qcrypto.ini
Ещё нужны сами либы KA_Pr.dll и MP_Pr.dll
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Anton написал:
Куда как проще накатывать файлы из обновления на рабочий квик (сделав бэкап).

Все так делают. Я не знаю, с чем у автора возникли сложности. Только если
Цитата
Anton написал:
есть еще вариант, что у сбера сервер восьмой версии
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
И qrypto.cfg для RSA.

ISINhere2001, вы PIN вводите при подключении?
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Можно ещё скопировать
ka_pr.ini
mp_pr.ini
OpenSSL_Pr.ini
в зависимости от того, какой криптопровайдер используется.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Криптопровайдер, вроде, в файле qcrypto.ini указан. Можно его перенести в новую версию.
Подключение QUIK, брокер Сбербанк
 
На странице https://www.sberbank.ru/ru/person/investments/broker_service/quik?tab=install описаны три варианта настройки подключения QUIK.
Какой из вариантов подключения не требует ввода PIN?
Неверно отображается комиссия в таблице сделок, за скальперские сделки на срочном рынке
 
Цитата
Egor Zaytsev написал:
По данному вопросу необходимо обратиться к брокеру.

Серьёзно?!! К брокеру?
Нашёл на вашем форуме:
https://forum.quik.ru/messages/forum1/message52994/topic6261/#message52994
Неверно отображается комиссия в таблице сделок, за скальперские сделки на срочном рынке
 
вверх
Индикативные курсы валют
 
Транслируются ли в QUIK индикативные курсы валют? Ну те, которые используются для расчета стоимости шага цены.
Интересует, есть ли у какого-нибудь брокера в реалтайм?
А как тут зарегистрировать пожелание?
 
Цитата
Daniil Pozdnyakov написал:
Ваше пожелание зарегистрировано.
Логично было бы написать в теме с обращением. А то как будто зарегистрировали пожелание зарегистрировать пожелание.
Неверно отображается комиссия в таблице сделок, за скальперские сделки на срочном рынке
 
На срочном рынке МБ существует понятие "скальперские сделки":
Цитата
Срочные сделки, совершенные на основании безадресных заявок, приводящие к открытию и закрытию позиции по фьючерсу в течение одного Торгового дня
Комиссия по таким сделкам взимается только при открытии позиции. При закрытии позиции в течение одного Торгового дня комиссия не взимается.
Квик же показывает комиссию как по сделкам открытия, так и закрытия позиции.
Кнопка "С" в стакане (закрытие позиции) не срабатывает, когда есть другие выставленные заявки
 
Цитата
Dmitri написал:
Если выставлены другие заявки, то по нажатию данной кнопки она просто не срабатывает, брокер выдаёт ошибку.
Скорей всего, там превышение по лимитам из-за наличия активных заявок.

Цитата
Dmitri написал:
Логично было бы если по нажатии кнопки закрывается позиция и сразу же снимаются все выставленные заявки.
Если уж делать снятие заявок, то опционально. И в другом порядке: сначала снять активные заявки, а затем закрыть позицию.
А как тут зарегистрировать пожелание?
 
Цитата
Daniil Pozdnyakov написал:
какое пожелание Вы хотите зарегистрировать ?
https://forum.quik.ru/messages/forum8/message59315/topic6828/#message59315
А как тут зарегистрировать пожелание?
 
Вопрос - в теме.
Где посмотреть прибыль по отдельной бумаге в рублях за текущий день?
 
Цитата
Сергей написал:
В таблице Купить/Продать в поле Прибыль/Убытки данные не за текущий день, как просят многие пользователи, а суммарные прибыль или убытки.за все время.
Тут даже не за все время, а пока позиция открыта.
Как я понял, считается тупо как разница между средней ценой приобретения и текущей ценой, помноженная на количество бумаг.
Если в течение дня позицию закрыть и снова открыть, то весь предыдущий результат будет похерен.
Расширить список функций обратного вызова
 
Можно сделать функции, вызываемые в основном потоке квика:

Код
SetTimeout (func, [start [, ...]])
Вызвает функцию один раз через определённый интервал (delay) времени
func - вызываемая функция
start - время (в мс), через которое необходимо вызвать функцию, по умолчанию start = 0
... - список аргументов вызываемой функции
Если start = 0, то функция func вызывается немедленно синхронно. SetTimeout при этом возвращает результат работы func
Если start > 0, то func вызывается асинхронно через заданное время. SetTimeout возвращает идентификатор, который можно использовать в ClearInterval.

Код
SetInterval (func, delay [, start [, ...]])
Вызвает функцию регулярно, повторяя вызов через определённый интервал (delay) времени
func - вызываемая функция
delay - период повтора (в мс)
start - время, через которое будет первый вызов (в мс), по умолчанию start = 0
... - список аргументов вызываемой функции
Возвращает идентификатор, который можно использовать в ClearInterval.

Код
ClearInterval (id [, start [, delay]])
id - идентификатор функции таймера, параметры которой надо изменить
start - изменяет время следующего вызова
delay - изменяет период вызова
если start и delay не заданы, то таймер удаляется
Как в QUIK 9 можно экспортировать список всех инструментов?
 
Цитата
Иван написал:
Перерыл все таблицы в QUIK, но так и не нашёл.
Таблица "Текущие торги"
Далее "ПКМ - Сохранить в файл" или "Действия - Копировать все"
GetItem не работает с пользовательскими таблицами
 
Цитата
Alex написал:
Если все параметры уже находятся в пользовательской таблице то можно не использовать ParamRequest ?
Можно.
Но я всегда использую ParamRequest, чтобы потом не думать, добавлен ли параметр/бумага в пользовательскую таблицу и открыта ли она вообще.
GetItem не работает с пользовательскими таблицами
 
Alex, GetItem и getNumberOf работают только со стандартными таблицами. Они все указаны в руководстве.
Если вам нужны параметры бумаг, то надо использовать ParamRequest и getParamEx/getParamEx2
Нужен простой скрипт
 
Написал в ЛС
Просьба к модераторам форума
 
Здесь нет модераторов. Я оставил свою кандидатуру на вакантную должность. Предложений пока не поступало.
Предлагаю проголосовать за мою кандидатуру :wink:
Расширить список функций обратного вызова
 
nikolz, милейший, я не хотел вас обидеть, но вы всегда пишите не в тему, не заморачиваясь ее прочтением.
Вы сделаете себе одолжение, не встревая в чужие темы со своим чрезвычайно важным мнением, выставляя напоказ свою глупость.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Anton написал:
Тут идея в том, что пара onMainInit/onMainCleanup строго в мейне выполняется
С onMainInit еще понятно - если там тяжелый код, то чтобы при запуске скрипта QUIK не зависал, его лучше выполнить в main.

Цитата
Anton написал:
задача-то наоборот разложить по полочкам, чтобы с первого взгляда было понятно, что в каком порядке происходит.
Если только в образовательных целях.
На практике в выполнении onMainCleanup в main никаких плюсов не вижу. Или я чего-то не знаю ))
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Anton написал:
2) onMainInit как раз чтобы вынести бизнес-код из мейна, заодно весь мусор, созданный в процессе инициализации, попадет к коллектору сразу после нее, а не после того, как мейн закончится (т.е. никогда).
Тоже самое, если запихать содержимое onMainInit в блок do end?

Цитата
Anton написал:
1) OnStop снижает runStatus с 3 до 2 и крутит спинлок, не давая квику начать отсчет остатка жизни мейна.
А не проще onMainCleanup выполнить в OnStop? Ведь пока OnStop крутит холостой цикл, QUIK все равно ничего не делает.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Евгений написал:
других форумов где он уже заблокирован за вредоносную деятельность
Жаль, что на этом форуме не банят флудеров.
Расширить список функций обратного вызова
 
nikolz, брысь.

Цитата
Незнайка написал:
не все задачи можно выполнить штатными средствами QLua из main
Расширить список функций обратного вызова
 
https://forum.quik.ru/forum10/topic5983

Причина: не все задачи можно выполнить штатными средствами QLua из main:
https://forum.quik.ru/messages/forum10/message58915/topic6806/#message58915
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Anton написал:
лучше dofile вместо require использовать

Anton, почему?
Синхронизация потоков
 
Цитата
_sk_ написал:
Есть следующий "хак", гарантирующий, что выполнение кода будет только в одном потоке.

Код
   table.ssort ({  0 ,  1  },  function (a, b) 
  тут_ваш_код
   return   true 
 end )  

Запускаю одновременно два скрипта. Использую "хак", рассчитывая, что скрипты будут писать в файл по очереди:
Скрытый текст

Но в файле строки оказываются вперемешку:
Скрытый текст

Почему так? "Хак" не работает с файловыми операциями?
Колбек при отправке транзакции в торговую систему, Контроль количества отправляемых транзакций
 
Цитата
Незнайка написал:
Дать нормальное описание и/или привести в соответствие значения флагов:
https://forum.quik.ru/messages/forum10/message53237/topic6249/#message53237

Цитата
Незнайка написал:
262144 + 1 = "отправлена с помощью LUA" + "отправлена с помощью файла импорта"
Взаимоисключающие значения
Запись в один файл из разных скриптов.
 
Если писать только внутри колбеков, то в пределах одного квика запись в один файл из разных скриптов корректна.
Из разных квиков пока не придумал, как сделать.
Запись в один файл из разных скриптов.
 
Цитата
s_mike@rambler.ru написал:
правильный путь - это формирование флага. Например, если один скрипт хочет писать, он пробует создать папку-семафор на диске. Если папка создалась удачно, дописывает файл. Если при создании папки была ошибка (папка существует), то надо подождать. По окончании записи нужно закрыть файл и удалить папку.
В Lua есть штатные средства создания папки?
Если только создавать файл-флаг. Но это не поможет: несколько скриптов увидят, что флага нет и начнут запись одновременно. Результат будет тот же.

Цитата
s_mike@rambler.ru написал:
использовать механизмы мютексов или что то в этом роде, Но это уже с++
Для торговых ботов использую только QLua.
Если только Арка когда-нибудь сделает мютексы. Но рассчитывать, что это произойдёт в ближайшем будущем я бы не стал.

Цитата
s_mike@rambler.ru написал:
а ещё лучше пересмотреть логику скриптов, чтобы писать из одного скрипта
У каждого скрипта свои данные, которые он пишет в общий файл. Если вести запись только из одного скрипта, то другие скрипты должны будут ему эти данные передать. По сути это будет та же самая задача - обмен данным между скриптами.
Страницы: 1 2 3 4 5 След.
Наверх