пятница, 29 ноября 2013 г.

TransID в Квике = signed long (C++)

TransID в Квике = signed long (C++) 2 147 643 NNN

В связи с этим и переходом на TransactionReply пришлось переделать TransID.

Теперь форматTransID = HHMMSSNNN.
Жалко не влезает День.
Со временем перейду на простой счетчик, после отладки.

вторник, 19 ноября 2013 г.

GS.Trade Updates 131119_003

Изменения в релизе 131119_003
1. Заменил контейнер с Containers3 на Containers5
2. Dictionary используется в EventHub, Transactions, List используется в Orders, Trades
3. Планирую в ордерах, сделках и транзакциях перейти на HashSets
4. В транзакциях Иногда в TransactionReply время между Sended - Completed = 0. - разбираюсь.
5. В механизм отправки транзакций вставил очередь на BlockingCollection. Эта Очередь позволяет отслеживать количество отправляемых транзакций в секунду. В Open такое ограничение = 20 ордеров в секунду. А также теперь в Квик можно отправлять Ордера из разных потоков одновременно - очередь все разруливает. 

пятница, 15 ноября 2013 г.

GS.Trade Updates

1. Сделал OrderLockedCount - для подсчета отправленных транзакций. Сверх лимита - в очередь для отправки. Это все из серии ограничения кол-ва отправляемых заявок в секунду.
2. Кардинально переделал систему IsConnected
3. Переделал систему получения ордеров и сделок без Comment и ClientCode

среда, 13 ноября 2013 г.

EventHub - Updates

EventHub - Updates

1. Инициализация через Билдер из xml файла.

EventHub = Builder.Build<EventHub>(@"Init\EventHub.xml", "EventHub");

<?xml version="1.0" encoding="utf-8"?>
<EventHub xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>Name</Name>
  <Code>Code</Code>
  <EventHubItems>
    <EventHubItem>
      <Entity>Transaction</Entity>
      <Category>Transactions</Category>
    </EventHubItem>
    <EventHubItem>
      <Entity>Order</Entity>
      <Category>Orders</Category>
    </EventHubItem>
    <EventHubItem>
      <Entity>Status</Entity>
      <Category>Order</Category>
    </EventHubItem>
    <EventHubItem>
      <Entity>Order</Entity>
      <Category>UI.Orders</Category>
    </EventHubItem>
  </EventHubItems>
</EventHub>

ReplyCode from QuikTerminal

ReplyCode from QuikTerminal

3 - Успешная Регистрация и Снятие Заявки

4

  • - Недостаточно  средств на счету Клиента для выполнения Заявки [FORTS][332] -  В оригинале так: "Нехватка средств на счету клиента " НЕХВАТКА" - ХА ХА ХА

  • - Ошибка создания заявки. [FORTS][3]. Сейчас эта сессия не идет.


5 - Вы Не можете снять заявку - Это в случае, когда эта Заявка уже Отменена или Исполнена

Почему-то при выполнении Транзакции всегда nExtendedCode = 0  ??????

6 (ReplyCode)- Превышен Лимит по Инструменту. При этом ОрдерNumber == 0

среда, 6 ноября 2013 г.

EventLog xml

Переделал EventLog.xml

var evls = Builder.Build<EventLogs>(@"Init\EventLog.xml", "EventLogs");
evls.Init();

<EventLogTypes>
  <EventLogs>
    <Name>EventLogs</Name>
    <IsEnabled>true</IsEnabled>
    <IsAsync>true</IsAsync>
  </EventLogs>
  <EventLogList>
    <EventLog>
      <Name>Memory EventLog</Name>
      <IsEnabled>true</IsEnabled>
      <IsAsync>false</IsAsync>
    </EventLog>
    <ConsoleEventLog>
      <Name>Console EventLog</Name>
      <IsEnabled>false</IsEnabled>
      <IsAsync>false</IsAsync>
    </ConsoleEventLog>
    <FileEventLog>
      <Name>File EventLog</Name>
      <FileName>FileEventLog.txt</FileName>
      <IsEnabled>false</IsEnabled>
      <IsAsync>false</IsAsync>
    </FileEventLog>
    <WebEventLog>
      <Name>Web EventLog</Name>
      <EventLogKey>GS.Trade.EventLog</EventLogKey>
      <BaseAddress>http://g****/ApiEventLog/</BaseAddress>
      <RequestHeader>application/xml</RequestHeader>
      <ApiEventLogs>api/eventlogs/</ApiEventLogs>
      <ApiEventLogItems>api/eventlogitems/</ApiEventLogItems>
      <IsEnabled>true</IsEnabled>
      <IsAsync>false</IsAsync>
    </WebEventLog>
  </EventLogList>
</EventLogTypes>

EventLog.Init

EventLogs.Init() - берет имя файла из SpsInit.xml
EventLogs.Init(string FileName) - берет типы из файла FileName 

EventLog - пример xml

Проект RtsMarginUpdate_01
Инициализация происходит в WebClient

<EventLogs>
  <EventLogList>
    <EventLog>
      <Name>Memory EventLog</Name>
      <IsEnabled>false</IsEnabled>
    </EventLog>
    <ConsoleEventLog>
      <Name>Console EventLog</Name>
      <IsEnabled>true</IsEnabled>
    </ConsoleEventLog>
    <FileEventLog>
      <Name>File EventLog</Name>
      <FileName>FileEventLog.txt</FileName>
      <IsEnabled>false</IsEnabled>
    </FileEventLog>
    <WebEventLog>
      <Name>Web EventLog</Name>
      <EventLogKey>GS.Trade.EventLog</EventLogKey>
      <!--
      <BaseAddress>http://******/ApiEventLog/</BaseAddress>
      -->
      <BaseAddress>http://localhost/WebEventLog_02/</BaseAddress>
   
      <RequestHeader>application/json</RequestHeader>
      <ApiEventLogs>api/eventlogs/</ApiEventLogs>
      <ApiEventLogItems>api/eventlogitems/</ApiEventLogItems>
      <IsEnabled>true</IsEnabled>
      <IsAsync>false</IsAsync>
    </WebEventLog>

  </EventLogList>
</EventLogs>

Rts Margin Update

Решение: D:\vspr12\Trade\GS\Trade\GS.Trade.WebClient\GS.Trade.WebClient.sln
RtsMargin - библиотека для загрузки Го - D:\vspr12\Trade\GS\Trade\GS.Trade.WebClient\RtsMargin\

RtsMarginUpdate_01 - проект обновления Го - Пример использования Builder, WebClient (WebClient2) - по WebApi/Tickers
D:\vspr12\Trade\GS\Trade\GS.Trade.WebClient\RtsMarginUpdate_01\

понедельник, 14 октября 2013 г.

Builder

В GS.Serialization сделал Builder

T GS.Serialization.Builder.Build<T>(string uri, string root) - инициализирует First from  Descendants

var evls = Builder.Build<EventLogs>(@"Init\EventLog.xml", "EventLogs");

GS.Trade.Tickers Update

GS.Trade.Tickers - Model
+ TradeBoards

Test_Tickers_01 - Инициализация + Тест

Tickers_MVC_01
+Futures
+TradeBoards
Tickers_WebApi_01 - есть виртуальный каталог
+Futures


LongCode in Tickers

GS.Trade.Tickers
LongCode in Rts   RTS-3.12 -  очень плохо для сортировки.
Написал method CreateLongCodeFromName в классе InitDB для преобразования RTS-3.12 -> RTS-2012.03 для нормальной сортировки.

В контроллере Futures поменял Tickers на Futures.
View Edit FUTURES перед сохранением изменений делаю LongCode = CreateLongCodeFromName(name). При замене Вью надо НЕ ЗАБЫВАТЬ ВСТАВЛЯТЬ  

воскресенье, 13 октября 2013 г.

GS.Trade.Tickers

GS.Trade.Tickers

Реализация хранилища тикеров и котировок, Источник получения по Web Api тикеров для Торговых Автоматов.

EF 5.0

Tickers, Symbols - TPT

Прототип d:/vspr12/trade/tickers/tickers  - старое работающее решение на ef 4.0
Работающий проект d:/vspr12/trade/tickers/tickersTicker05

Новый проект ef 5.0
Решение  -  d:/vspr12/GS/Trade/GS.Trade.Tickers

Проекты:

ClassLibrary - Tickers51.Model
ConsApp - Test_Tickers_01

Новый блог про мои software Projects

Этот блог создан для описания только моих софт продуктов.