Разрыв соединения quik по ночам, Приходится каждое утро переподключаться
Пользователь
Сообщений: Регистрация: 26.11.2025
18.12.2025 12:48:01
Здравствуйте. Пользуюсь системой quik версии 12.6.0.53 через брокера сбербанк. Каждую ночь ровно в 3 часа ночи происходит автоматический разрыв соединения, и в течение ночи подключение невозможно. Утром подключение становится возможным, но не автоматически, т.е. приходится вручную вводить пароль. В техподдержке сбера сказали, что да, они на ночь отключаются из-за тех. работ, никаких способов устранить это нет. Но проблема в том, что невозможно ставить скрипт на автоматическую работу по расписанию с утра, т.к. всё равно пока я сам не проснулся и не подключился, ничего работать не будет. В той же техподдержке сказали, что и это исправить нельзя, т.е. да, надо каждый день переподключаться заново, все, кто пользуется квиком, так делают. Соответственно все, кто хотят торговать в утреннюю сессию, исправно просыпаются в 7 утра.
Хотелось бы уточнить, насколько это правда.
Функции обратного вызова не вызываются одновременно?, Т.е. отследить изнутри OnTrade выполнение другого OnOrder невозможно?
Пользователь
Сообщений: Регистрация: 26.11.2025
14.12.2025 19:48:43
Допустим у меня есть заявка. Я хочу сразу, как только она сработает, прямо из функции OnTrade создать новую заявку. Чтобы убедиться, что заявка принята успешно, я дожидаюсь выполнения функции OnOrder, которая должна присвоить значение глобальной переменной. Т.е. схематично код выглядит так:
OnTrade(trd) somevariable = false ord = .... sendTransaction(ord) repeat sleep(100) until somevariable=true
OnOrder(ord) somevarialbe = true
Этот код не работает, т.к. функция OnTrade виснет в ожидании OnOrder, а OnOrder не вызывается, пока не завершится OnTrade (проверял, если в OnTrade поставить return после нескольких итераций цикла, OnOrder сразу вызывается)
Т.е. отследить изнутри OnTrade успешное выполнение новой заявки невозможно?
Поле trans_id для закрытия заявки: в чём смысл?, Есть ли примеры, где оно может быть использовано?
Пользователь
Сообщений: Регистрация: 26.11.2025
13.12.2025 23:58:46
Предположим я создал заявку, присвоив ей trans_id=1. При создании срабатывает OnOrder(ord), где ord.trans_id=1, ord.order_num = номер новой заявки. Теперь я хочу отменить эту заявку. Для этого я создаю новую транзакцию, в которой пишу trans_id=2, action = kill_order. Но при срабатывании OnOrder(ord) я опять вижу, что ord.trans_id=1, ord.order_num = номер удаляемой заявки. Т.е. новая транзакция, у которой trans_id=2, не вернулась в OnOrder, и даже не отобразилась в общем списке заявок. Это в целом понятно и логично, но непонятно, для чего тогда указывать trans_id=2? Т.е. если я не заполню поле trans_id=2, будет ошибка, но по факту это значение 2 дальше нигде не будет использовано. Или есть какие-то случаи, когда оно может пригодиться?
Не получается запустить два скрипта одновременно, При запуске второго первый останавливается
Пользователь
Сообщений: Регистрация: 26.11.2025
08.12.2025 14:33:06
Есть скрипт, который включен на постоянную работу, мониторит цены некоторых акций. Хочу не прекращая его, запустить второй учебный скрипт. При запуске второго примерно через 10 секунд первый останавливается. Так и должно быть?
getBuySellInfo в QuikPy, Правильно ли я понимаю, что эта функция не реализована?
Пользователь
Сообщений: Регистрация: 26.11.2025
26.11.2025 01:44:45
В модуле QukPy нет функции getBuySellInfoEx. Есть закомментированная строка с этой функцией, т.е. я как понял, в планах на реализацию. Попробовал сделать вот так: