Добрый день. Что-то не могу получить лучший бид и аск, при этом цена последней сделки есть.
Trader.RegisterTrades(SPY); MessageBox.Show("SPYlast= " + Convert.ToString(Trader.GetSecurityValue(SPY, Level1Fields.LastTradePrice))); //Этот блок нормально выдает последнюю сделку
Trader.RegisterTrades(SPY); Trader.RegisterSecurity(SPY); //В документации вычитал что это событие подписывает на поля level1 var SPYbid = Trader.GetSecurityValue(SPY, Level1Fields.BestBidPrice); var SPYask = Trader.GetSecurityValue(SPY, Level1Fields.BestAskPrice); MessageBox.Show("SPYbid: " + Convert.ToString(SPYbid) + " SPYask: " + Convert.ToString(SPYask)); //А тут всегда Null
Может еще на какие-то события коннектора надо подписаться?
Kommentare (11)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Попробуй на стакан подписаться.
Помогла только подписка на RegisterMarketDepth, но ненадолго )) Стакан обновляется, а потом через пару секунд зависает, я даже могу это визуально наблюдать в элементе SecurityPicker
Я тут в топике для Fusion (http://stocksharp.com/forum/4344/API-4-2-2-6-nieskol-ko-voprosov--Blackwood-Fusion/) вычитал: "Как я уже говорит вам в скайпе, DOM на америке отсутствует. DOM (MarketDepth) - это чисто российский механизм." Т.е. мне надо как-то хотя бы на Level1 подписаться, чтобы получать BestBid\Ask, а не на всю глубину.
Дело пока скорее всего в самой платформе, я пользуюсь Sterling. Программа при RegisterSecurity не получает первый уровень котировок, может дело в коннекторе. Я тут быстро попробовал платформу Interactive Brokers там при подписке на RegisterSecurity приходит первый уровень. Сейчас у брокера демку другой платформы попрошу, попробую Fusion
MD - это не Level2. Level2 - это Level1 агрегированный по тикеру. А MD - это именно стакан на конкретной площадке.
Level2 мониторить смысла нет, так как его изменение есть изменение среднее частоты по всем площадкам. Лучше собирать Level2 из Level1. О чем я пытался донести в топике по Блэквуду, но не уверен, что меня хоть кто-нибудь понял.
Насколько я понимаю, Level1 это первый уровень котировок, т.е. ближайшие bid и ask с объемами, которые и являются best, потому что они первые. И на Америке Level1 складывается из всех ECN, которые там есть. А Level2 - это уже полная глубина рынка, разложенная по всем ECN, где видно какие цены bid и ask стоят за первыми котировками и какие там объемы. Получается чтобы получить BestBid и BestAsk, мне не надо у брокера подключать дорогие пакеты.
Кстати вопрос я свой решил, дело все-таки в платформе оказалось - Streling при RegistrSecurity не подписывается на Level1 и не может получить BestBid и BestAsk, у Fusion все заработало.
Ну так вот цитата с сайта: "Level 1 (Уровень 1) — электронная система, позволяющая видеть только лучшие цены bid и ask, т.е. только первый уровень котировок. Level 2 — это более полный набор информации." Т.е. видя только level1 уже видно BestBid\Ask
А Level1 он один для всех ECN, или у каждой он свой?
Видно биржа собирает один level1. Потому что у брокеров есть подписка NYSE level1, NASDAQ level1, AMEX level1, которые видимо из всех ECN и состоят.