User12501 (Автор тем)

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

Страницы: 1
Разрыв соединения quik по ночам, Приходится каждое утро переподключаться
 
Здравствуйте. Пользуюсь системой quik версии 12.6.0.53 через брокера сбербанк. Каждую ночь ровно в 3 часа ночи происходит автоматический разрыв соединения, и в течение ночи подключение невозможно. Утром подключение становится возможным, но не автоматически, т.е. приходится вручную вводить пароль. В техподдержке сбера сказали, что да, они на ночь отключаются из-за тех. работ, никаких способов устранить это нет. Но проблема в том, что невозможно ставить скрипт на автоматическую работу по расписанию с утра, т.к. всё равно пока я сам не проснулся и не подключился, ничего работать не будет. В той же техподдержке сказали, что и это исправить нельзя, т.е. да, надо каждый день переподключаться заново, все, кто пользуется квиком, так делают. Соответственно все, кто хотят торговать в утреннюю сессию, исправно просыпаются в 7 утра.

Хотелось бы уточнить, насколько это правда.
Функции обратного вызова не вызываются одновременно?, Т.е. отследить изнутри OnTrade выполнение другого OnOrder невозможно?
 
Допустим у меня есть заявка. Я хочу сразу, как только она сработает, прямо из функции 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 для закрытия заявки: в чём смысл?, Есть ли примеры, где оно может быть использовано?
 
Предположим я создал заявку, присвоив ей 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 дальше нигде не будет использовано. Или есть какие-то случаи, когда оно может пригодиться?  
Не получается запустить два скрипта одновременно, При запуске второго первый останавливается
 
Есть скрипт, который включен на постоянную работу, мониторит цены некоторых акций. Хочу не прекращая его, запустить второй учебный скрипт. При запуске второго примерно через 10 секунд первый останавливается. Так и должно быть?
getBuySellInfo в QuikPy, Правильно ли я понимаю, что эта функция не реализована?
 
В модуле QukPy нет функции getBuySellInfoEx. Есть закомментированная строка с этой функцией, т.е. я как понял, в планах на реализацию. Попробовал сделать вот так:

qp.process_request({'data': f'{firm_id}|{client_code}|{class_code}|{sec_code}', 'id': '121', 'cmd': 'getBuySellInfo', 't': ''})

Однако выдаёт ошибку 'lua_error': 'Command not implemented in Lua qsfunctions module: getBuySellInfo'


Мне нужно из питон-скрипта узнавать текущее количество акций в портфеле. Как можно это делать?
Страницы: 1
Наверх