API 4.2.2.6 несколько вопросов. Blackwood/Fusion


API 4.2.2.6 несколько вопросов. Blackwood/Fusion
Atom
07.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),
хотя применяю весь набор инструментов одного тикера, но всех возможных площадок, полученных с обеих коннекторов.
Одним словом, поток данных в программу продолжается и всё время увеличивается с регистрацией на всё новые тикеры.

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

Теги:


Спасибо:


< 1 2 3 
Mikhail Sukhov

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


Все то же самое получается и через S#. Вы писали про направление тика. Не меняйте тему пожалуйста. Или извинитесь что наврали
Спасибо:

tobin

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


Во первых, то же самое через S# не получается, внимательно посмотрите на пост №16 второй скрин (перед скрином образец кода, третий раз уже об этом пишу). Во вторых, тема все та же мы говорим о том, при схожих подходах к получению данных результат различен, а именно: через BWAPI приходит side = UP_TICK(DOWN_TICK), через S# приходит OrderDirection = null (и снова отправляю к скринам) И, наконец, в третьих, о каком вранье и извинении идет речь, по вашему мне наверное больше нечем заняться, кроме как устраивать на форуме провокации, если бы все работало так как это описано в справке, меня бы тут не было, допускаю, что я неверно понял описание применения вашего инструмента и поэтому решил обратиться за помощью, что бы выяснить кто и в каком месте не прав. Если мне стоит извиниться за просьбу о помощи, тогда конечно же извините.
Спасибо:

Mikhail Sukhov

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


tobin Перейти
UP_TICK(DOWN_TICK), через S# приходит OrderDirection = null


И почему вы решили что это одно и то же?
Спасибо:

tobin

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


StockSharp.chm

Цитата:
Trade.OrderDirection - свойство StockSharp

Направление заявки (покупка или продажа), которая привела к сделке.

Пространство имён: StockSharp.BusinessEntities
Сборка: StockSharp.BusinessEntities (в StockSharp.BusinessEntities.dll) Версия: 4.2.2.5 (4.2.2.5)
Синтаксис


public Nullable<OrderDirections> OrderDirection { get; set; }


Это описание однозначно говорит о том, свойство должно указывать, была ли сделка совершена по биду, либо по аску. Свойство side указывает указывает на тот же признак.
Спасибо:

Mikhail Sukhov

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


tobin Перейти

Это описание однозначно говорит о том, свойство должно указывать, была ли сделка совершена по биду, либо по аску. Свойство side указывает указывает на тот же признак.


Посмотрите внимательно апи. И что именно отвечает за признак восходящего и нисходящего тренда. И вообще почитайте про эти термины внимательнее. Тогда может быть вы поймете почему там null.
Спасибо:

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 3 

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

loading
clippy