В данный момент в платформе присутствуют некоторые неудобства, связанные с выбором роутов для отправки ордеров.
Сейчас платформой полностью поддерживаются ордера, отправленные на инструменты из списка Trader.Securities. Если нужно отправить ордер на роут, не представленный в этом списке, то приходится прибегать ко всяким ухищрениям.
В данный список инструменты попадают следующими путями (может есть еще, но я нашел только эти):
- Trader.LookupSecurities() и ждем, когда нужная нам ECN появится в списке. Это произойдет только если у нас есть подписка на данные по нашей ECN (BATS Book и пр.).
- Если в этот день по нужному нам инструменту и роуту уже были совершены какие-либо действия, например поставлен и отменен ордер, тогда такой инструмент сам появляется в списке.
Есть способ отправки ордера на инструмент, не представленный в данном списке. При создании ордера создаем инструмент сами, и отправляем ордер на него. Пример:
var sec = new Security()
{
Code = "C",
Board = new ExchangeBoard()
{
Code = "BATS",
},
};
Ордер отправится и появится в терминале, но фреймворк не ожидает такого развития событий и начинаются всякие глюки. Создается автоматически еще один ордер и работа идет уже с ним, а наш ордер с вручную созданным инструментом не обновляется. При отмене ордера он может продублироваться еще раз и т.п.
Еще одна проблема связана с тем, что при отправке описанным выше способом ордера на какой-нибудь нестандартный роут, например "NSDQ", фреймворк его заблокирует и никуда не отправит. У меня в платформе к примеру есть отдельные роуты для стоп ордеров, соответственно на них тоже ничего не уходит ни в каком виде.
В связи с этим просьба реализовать в будущих версиях какой-нибудь адекватный механизм отправки с отслеживанием ордеров на произвольные роуты без необходимости подписки на котировки, выполнения LookupSecurities() и какой-либо деятельности в терминале перед торговлей.
Kommentare (2)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Как вариант решения для данной проблемы могу предложить добавить в коннектор функцию наподобие такой - AddSecurity(string security, string board) Делаем например Trader.AddSecurity("AAPL", "BATS") и инструмент добавляется в Trader.Securities и приходит по событию Trader.NewSecurities. А дальше берем его и торгуем спокойно, не ожидая его появления в торговой платформе.
Выложите в Гит пожелание. Но не обещаю, что оно будет сделано ранее 2016 года.