При разработке МТС на внутреннем языке Квика (первая попытка разработки МТС) столкнулся с неожиданной проблемой: попытка протестить функцию снятия условной заявки с ФОРТС родила 12000 запросов брокеру на снятие этой заявки в течении примерно 15 минут (из-за чего на следующий день мне заблокировали аккаунт).
При этом програмка (т.н. портфель) ни чего другого не делает - просто получает номер последней выставленной условной заявки из соотв. таблицы и отправляет запрос на снятие усл. заявы с этим номером. Обработка "портфеля" выставлена раз в 10 секунд (т.е. функция снятия должна была срабатывать один раз в 10 секунд) и совершенно неясно как за 15 минут могло сгенерироваться 12000 запросов на снятие.
Собстченно вопрос: что это могло быть, как с этим бороться и как контролировать число запросов реально отправленных из моего Квик-терминала брокеру.
На всякий случай текст функции:
'----заполнение массива параметрами транзакции---
Zajava = set_value (Zajava, "TRANS_ID","1")
Zajava = set_value (Zajava, "CLASSCODE","SPBFUT")
Zajava = set_value (Zajava, "SECCODE","RIM9")
Zajava = set_value (Zajava, "ACTION","KILL_STOP_ORDER")
Zajava = set_value (Zajava, "STOP_ORDER_KEY", Nomer)
'----отправка транзакции с параметрами из массива---
Z_result = SEND_TRANSACTION (10, Zajava)
PS. В руководстве для снятия заявок с ФОРТС зачем-то описана отдельный параметр KILL_ALL_FUTURES_ORDERS. Я не воспользовался им, поскольку он не позволяет снять конкретную заявку по ее номеру, а снимает сразу все. вместо этого параметра я применил обычный STOP_ORDER_KEY.
Может быть дело в этом? Если да - как снимать условную заявку с ФОРТСа по конкретному номеру?
При этом програмка (т.н. портфель) ни чего другого не делает - просто получает номер последней выставленной условной заявки из соотв. таблицы и отправляет запрос на снятие усл. заявы с этим номером. Обработка "портфеля" выставлена раз в 10 секунд (т.е. функция снятия должна была срабатывать один раз в 10 секунд) и совершенно неясно как за 15 минут могло сгенерироваться 12000 запросов на снятие.
Собстченно вопрос: что это могло быть, как с этим бороться и как контролировать число запросов реально отправленных из моего Квик-терминала брокеру.
На всякий случай текст функции:
'----заполнение массива параметрами транзакции---
Zajava = set_value (Zajava, "TRANS_ID","1")
Zajava = set_value (Zajava, "CLASSCODE","SPBFUT")
Zajava = set_value (Zajava, "SECCODE","RIM9")
Zajava = set_value (Zajava, "ACTION","KILL_STOP_ORDER")
Zajava = set_value (Zajava, "STOP_ORDER_KEY", Nomer)
'----отправка транзакции с параметрами из массива---
Z_result = SEND_TRANSACTION (10, Zajava)
PS. В руководстве для снятия заявок с ФОРТС зачем-то описана отдельный параметр KILL_ALL_FUTURES_ORDERS. Я не воспользовался им, поскольку он не позволяет снять конкретную заявку по ее номеру, а снимает сразу все. вместо этого параметра я применил обычный STOP_ORDER_KEY.
Может быть дело в этом? Если да - как снимать условную заявку с ФОРТСа по конкретному номеру?