API 4.2.2.6 несколько вопросов. Blackwood/Fusion
Atom Ответить
06.02.2014


Добрый день, в методе подписки на свечки
trader.SubscribeCandles(candleSeries, DateTime, DateTime)
есть нюанс: он нормально работает только если первый параметр даты (с какой даты получать) находится в промежутке времени с 5:00 до, примерно, 16:10 (в разные дни по разному +/- 10мин). Если время дня этого параметра не попадает в промежуток, то не приходят свечки текущей сессии, только свечки до конца предыдущей. Время указал по Киеву, для Москвы, соответственно +2
Так же пока не ясно как реализовать возможность риалтайм обновления последней свечки и получения новых, исторические свечки загружаются, но последняя остаётся статичной, и не обновляется, ну и новые не появляются, т.е. метод загружает только историю, новых данных не получает.
Trader.NewRealTimeCandle - рефлизации такого события в текущем API нет.
Неужели надо самому реализовавать формирование свечек на основании NewTrades?

Теперь по событию:
trader.SecuritiesChanged
В пришедших с событием объектах Security информация есть только в том случае, если ExchangeBoard.Code этого объекта с к-вом символов >= 4. Т.е. если security.ExchangeBoard.Code == "NYSE" || "NASDAQ", то тогда есть все остальные данные в этом объекте, если ExchangeBoard.Code с тремя символами, то все остальные свойства пустые.
security.ExchangeBoard.Code с четырмя и более символами приходит только в первых 1-2-ух событиях SecuritiesChanged, только тогда и можно увидеть инфу, дальше это событие приходит всегда только с тремя символами ExchangeBoard.Code, и соответственно, пустое.
"NYSE" || "NASDAQ" в инструментах зависит от биржи размещения инструмента, например Майкрософт(MSFT) - NASDAQ, а вот Банк оф Америка (BAC) - NYSE. Дальше идут события с другими площадками, включая даркпулы (ADF), но всё пустое.
Вот Скрин
Всё то же самое касается и события trader.NewTrades. Скрин

Соответственно, из всех возможных данных в любой момент времени я могу получить только события:

  • NewTrades, в которых есть цена сделки и объём, но объект Security содержит только тикер акции и площадку где прошла сделка, никаких ценовых параметров этот объект не содержит (BestAsk, BestBid, BestPair, Asks/BidsCount, Asks/BidsVolume ...).
  • NewSecurities, содержит только ExchangeBoard, все остальные поля либо 0 либо null.
  • SecuritiesChanged содержит только ExchangeBoard, все остальные поля либо 0 либо null. Только первое событие пришедшее после StartExport несёт данные.
  • PortfoliosChanged содержит только RealizedPnL и UnrealizedPnL. Как узнать сколько у меня денег или BuyingPower непонятно.


События связанные со стаканами вообще не приходят, для регистрации стакана использовал инструменты полученные непосредственно через BlackWood, а так-же через IQFeed(реализовывал одновременно два подключения, но стакан пытался зарегить через BlackWood). Кстати, а вот через коннектор IQFeed стакан есть, и события с ним связанные приходят, хотя для регистрации стакана использовал "самодельный" объект Security:
Код

var security = new Security
{
   Code = "MSFT",
   ExchangeBoard = new ExchangeBoard
   {
      Exchange = new Exchange()
   },
};

т.е. полностью пустой объект, указан только тикер, и стакан по всем площадкам начинал обновляться.

Для регистрации получения данных в BlackWood использовал методы:
Код
_trader.SubscribeMarketData(security,MarketDataTypes.LastTrade);
_trader.SubscribeMarketData(security,MarketDataTypes.Trades);
_trader.SubscribeMarketData(security,MarketDataTypes.BestQuotes);
_trader.SubscribeMarketData(security,MarketDataTypes.Candles);
_trader.SubscribeMarketData(security,MarketDataTypes.Level1);
_trader.SubscribeMarketData(security,MarketDataTypes.MarketDepth);
_trader.SubscribeMarketData(security,MarketDataTypes.OrderLog);

а так же аналогичные им _trader.Register...
Всё что я регистрирую и субскрайблю данными методами, невозможно потом отрегить или отсубскрайбить
соответствующими методами _trader.UnRegister... или _trader.UnSubscribe... (UnSubscribeMarketData, UnSubscribeCandles),
хотя применяю весь набор инструментов одного тикера, но всех возможных площадок, полученных с обеих коннекторов.
Одним словом, поток данных в программу продолжается и всё время увеличивается с регистрацией на всё новые тикеры.

Заключение: не могу получить хоть какой-нибудь риалтайм минимум данных в программу для принятия торговых решений, прошу помощи.

Теги:


Спасибо:




26 Ответов
< 1 2 
1Serg

Фотография
Дата: 14.09.2015
Ответить


tobin Перейти
Код

            string password = "??????";                                                                  //пароль указал, да?
            string login = "?????????";                                                                  
            int executionPort = 5000;
            int historicDataPort = 5300;
            int marketDataPort = 5200;
            var bwIP = System.Net.IPAddress.Parse("72.5.42.156");



Blackwood API (родной). Ну и ничего так, нормально работает (указать свой пароль/логин!!!)


Где взяли IP?
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy