Добрый день. Что-то не могу получить лучший бид и аск, при этом цена последней сделки есть.
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
Может еще на какие-то события коннектора надо подписаться?
コメント (11)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Попробуй на стакан подписаться.
Помогла только подписка на 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 и состоят.