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

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

Страницы: 1
Функции обратного вызова не вызываются одновременно?, Т.е. отследить изнутри 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 дальше нигде не будет использовано. Или есть какие-то случаи, когда оно может пригодиться?  
Не получается запустить два скрипта одновременно, При запуске второго первый останавливается
 
Кажется я понял, в чём дело. Первый скрипт останавливается, если второй запускается из другой папки. Если файл второго скрипта скопировать в папку с первым и оттуда запустить, всё работает. Интересно, это только у меня, или встроенная бяка квика?

P.S. Вчера не смог отправить ни одного сообщения, все блокировались. Админы, мне кажется, слишком перестарались. Они так не с ботами борются, а с живыми людьми. Нет мотивации дальше сюда что-то писать.  
Не получается запустить два скрипта одновременно, При запуске второго первый останавливается
 
Цитата
nikolz написал:
Я проверил, если запускать два простейших скрипта, типа message(...) sleep, то работают. Но если мой мониторинг цены запараллелить с простейшим - останавливается. Возможно какая-то конкретная функция есть, которая не хочет делить ресурсы.

Более того, останавливается даже в момент загрузки второго скрипта. Т.е. нажимаю кнопку "добавить", выбираю файл скрипта (но не запускаю) - и первый останавливается.

P.S. Тут по правилам форума новичку можно писать только одно сообщение в сутки. Так что если я молчу - не значит, что всё ок или я забил.  
Не получается запустить два скрипта одновременно, При запуске второго первый останавливается
 
Есть скрипт, который включен на постоянную работу, мониторит цены некоторых акций. Хочу не прекращая его, запустить второй учебный скрипт. При запуске второго примерно через 10 секунд первый останавливается. Так и должно быть?
getBuySellInfo в QuikPy, Правильно ли я понимаю, что эта функция не реализована?
 
Цитата
nikolz написал:
Цитата
Проще всего передать данные через файл.
Мне нужно не передать данные, а получить данные. Т.е. находясь в питоновском скрипте, нужно узнать, сколько сейчас акций в портфеле. Например рублевый счёт в портфеле я научился узнавать через функцию QuikPy().GetPortfolioInfo. Вопрос о том, если аналогичный способ для количества акций.
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
Наверх