OnOrder

Страницы: 1
RSS
OnOrder, снятие заявки
 
Скрипт отправляет транзакцию на снятие заявки.
Допустим, OnOrder получен раньше или OnTransReply вообще не пришел.
Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
 
Вся информация есть в ontransreply.

если этот колбек к вам не пришел, значит, нужно исправлять аппаратную часть.

если у машины нет колеса, бесполезно искать кнопку в салоне, которая бы позволила ехать.  
 
Цитата
s_mike@rambler.ru написал:
если этот колбек к вам не пришел, значит, нужно исправлять аппаратную часть.
По секрету: проблема может быть не на стороне клиента, чью аппаратную часть будете исправлять?  :wink:
 
В любом случае мерами программного свойства эти проблемы не решаются. Их нужно решать другими способами - административными или какими-то еще.

Однако есть большие сомнения, что вы получаете от сервера валидную информацию во всем, кроме одного колбека. В этом случае проблема гарантированно не аппаратная или сетевая, а проблема вашего ПО.
 
Цитата
Старатель написал:
Скрипт отправляет транзакцию на снятие заявки.
Допустим, OnOrder получен раньше или OnTransReply вообще не пришел.
Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
если скрипт отправил заявку, то он знает это
если заявку сняли но он не отправлял то тоже знает.
кому надо устанавливать инициатора?
 
и главное зачем скрипту знать, что сняли по заявке пользователя или другого бота?
------------------------------
какой любопытный скрипт вы написали.
 
Цитата
Николай Камынин написал:
и главное зачем скрипту знать
Так и знал, что кто-нибудь из зевак будет задавать кучу вопросов.  :smile:
Ну, например, для реализации функции для фондовой и валютной секций, аналогичной "MOVE_ORDERS" на срочке.
Заявку может снять пользователь, но скрипт не сразу об этом узнает, особенно, когда биржа тормозит, и колбеки приходят с задержкой в несколько секунд.
OnTransReply - один из колбеков, доставка которого не гарантируется, ну так сложилось.
Рассуждения "кто, зачем и почему" не интересуют.

Интересует ответ на вопрос в первом сообщении темы с учётом особенностей архитектуры ИТС QUIK.
 
Вопрос можно поставить так:
Можно ли из Lua-скрипта определить, что заявка снята по транзакции этого скрипта, если OnTransReply не получен?
 
Добрый день.

На структуре заявки есть поле canceled_uid, это UID пользователя снявшего заявку. Если пользователь снимает заявку руками, то скрипт не получит OnTransReply, он получит только OnOrder, и тогда:

- если поля на заявке uid и canceled_uid заполнены и не равны, то заявку выставил один пользователь, а снял другим;

- если uid и canceled_uid равны, то заявку выставил и снял один и тот же пользователь;

- если canceled_uid пустой (равен 0), то значит заявка снята, например, биржей или же до сервера Quik не доехал трансреплай о снятии заявки;

 
uid и canceled_uid будут равны при выставлении/снятии заявки от имени одного логина как пользователем так и скриптом.
Увы, но при отсутствии OnTransReply это не поможет.
 
Цитата
Старатель написал:
Допустим, OnOrder получен раньше или OnTransReply вообще не пришел.
Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
Такой возможности нет.
OnOrder - это сигнал с биржи "параметры заявки изменились". Просто параметры, просто некоей заявки (ну или возникла новая заявка). Никакой привязки к транзакции (т.е. источнику возникновения этой заявки) - нет. И не может быть.
Так что надо перепридумывать логику робота так, чтобы такая информация не требовалась.
Используйте пользовательский комментарий для различения заявок от разных роботов или ручного ввода, по нему разделяйте OnOrder, например.
Страницы: 1
Читают тему (гостей: 1)
Наверх