понедельник, 17 ноября 2014 г.
суббота, 15 ноября 2014 г.
пятница, 14 ноября 2014 г.
PortfolioFormServ02
1. Запущен в тестовом режиме PortfolioFormServ02 - на основе новой шинной архитектуры
NetworFf.
2. Работает без
Выходного контроля ExecutionReports на уровне Службы,
Контроля Позиций на уровне Службы,
PortfolioManager Form
в отличии от PortfoloFormServ01.
NetworFf.
2. Работает без
Выходного контроля ExecutionReports на уровне Службы,
Контроля Позиций на уровне Службы,
PortfolioManager Form
в отличии от PortfoloFormServ01.
четверг, 13 ноября 2014 г.
PortfolioServ02
1. Переделал PortfolioService с учетом нового шинного механизма ValeraNetworkDirtruptor.
Zip: 141113_001
2. Примеры:
C:\dev\FF\PortfolioManagerAdapter\PortfolioManagerServiceAdapter.cs - адаптер
C:\dev\FF\PortfolioManagerAdapter\PortfolioManagerServiceAdapterApp - Приложение
Zip: 141113_001
2. Примеры:
C:\dev\FF\PortfolioManagerAdapter\PortfolioManagerServiceAdapter.cs - адаптер
C:\dev\FF\PortfolioManagerAdapter\PortfolioManagerServiceAdapterApp - Приложение
среда, 12 ноября 2014 г.
Тесты хранилища
1. C:\dev\FF\TestBusConsole\Test_SendHDR
2. TestConsole\Adapters_Tests\BusHistDataAdapter_Test\RequestTest
3. Проект Test_Ca_Hdr_01.
Перемещен из решения ForumFramework в Решение ForumFramework2010 (не последняя версия) - пришлось восстанавливать из Архивов.
2. TestConsole\Adapters_Tests\BusHistDataAdapter_Test\RequestTest
3. Проект Test_Ca_Hdr_01.
Перемещен из решения ForumFramework в Решение ForumFramework2010 (не последняя версия) - пришлось восстанавливать из Архивов.
вторник, 11 ноября 2014 г.
PortfolioformServ01
1. Добавил в TradePuller - прослушивание шины RM по Топикам POS#, PORTF#
2. Добавил в PortfolioFormServ01 OnPositionEvent Handler, OnPortfolioEvent Handler - слушает и отображает полученные Позиции и Портфели
3. PortfolioServ29 - дополнительно получает Positions и Portfolios from RM
4. PortfolioManagerserviceAdapter - механизм Подписки через TransactionMessage, PositionMessage, PortfolioMessage, ExecutionReportMessage
5. TradePuller - добавлена поддержка Приема сообщений из BUS.RM: Position, Portfolio, Transaction
2. Добавил в PortfolioFormServ01 OnPositionEvent Handler, OnPortfolioEvent Handler - слушает и отображает полученные Позиции и Портфели
3. PortfolioServ29 - дополнительно получает Positions и Portfolios from RM
4. PortfolioManagerserviceAdapter - механизм Подписки через TransactionMessage, PositionMessage, PortfolioMessage, ExecutionReportMessage
5. TradePuller - добавлена поддержка Приема сообщений из BUS.RM: Position, Portfolio, Transaction
понедельник, 10 ноября 2014 г.
PrtfolioManagerServiceAdapter
1. PortfolioManagerServiceAdapter - новый архитектурный паттерн в "новом" варианте шин
Location:
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapter
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapterApp
2.
PortfolioServ25\PortfolioServ01 - эталон
PortfolioServ26\PortfolioServ01 - события с Fiber
PortfolioServ27\PortfolioServ01 - вариант под новый вариант шин = new method OnExecutionReport2
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapterApp - Приложение с новым вариантом Шинной Архитектуры.
ZIP: dev_141110_001
Location:
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapter
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapterApp
2.
PortfolioServ25\PortfolioServ01 - эталон
PortfolioServ26\PortfolioServ01 - события с Fiber
PortfolioServ27\PortfolioServ01 - вариант под новый вариант шин = new method OnExecutionReport2
Tests\LayeredArchitecture\Services\RiskManager\PortfolioManagerServiceAdapterApp - Приложение с новым вариантом Шинной Архитектуры.
ZIP: dev_141110_001
пятница, 7 ноября 2014 г.
Осуществлен переход на Новый механизм Шин
1. Последнее работающее решение до изменения dev_141107 - есть каталог на диске С:\
2. Новое решение dev_141107_01.zip. каталог на диске C:\Dev
3. Решение теперь называется ForumFramework2010.sln
2. Новое решение dev_141107_01.zip. каталог на диске C:\Dev
3. Решение теперь называется ForumFramework2010.sln
четверг, 6 ноября 2014 г.
Monitor версия 2.3
Проблема:
Method Run.SQLout
Иногда вылетает в Exception: "Bad Connection" при обращении к Command.ExecuteReader();
Добавлена проверка на ConnetctionState.Open в Run.Sqlout
и проверка на Reader != null в
UpdateDeals();
WorkStrats();
Проблема:
Method Run.SQLout
Иногда вылетает в Exception: "Bad Connection" при обращении к Command.ExecuteReader();
Connection ‘НЕ’ OPEN возникает из-за этого:
06.11.2014 11:21:38 : MySql.Data.MySqlClient.MySqlException
(0x80004005): error connecting: Timeout expired. The timeout period
elapsed prior to obtaining a connection from the pool. This may have
occurred because all pooled connections were in use and max pool size was
reached.
в
MySql.Data.MySqlClient.MySqlPool.GetConnection()
в
MySql.Data.MySqlClient.MySqlConnection.Open()
в
Monitor.ConnectionsPool.SQLConnect() в
C:\Monitor\Monitor23\Monitor\WindowsFormsApplication2\Library.cs:строка 390
Добавлена проверка на ConnetctionState.Open в Run.Sqlout
и проверка на Reader != null в
UpdateDeals();
WorkStrats();
четверг, 30 октября 2014 г.
Файловое хранилище от Макеева
1. Был предложен механизм взаимодействия с Файловым хранилищем.
2. Были представлены Тесты этого механизма.
3. При Запуске Тестов Visual Studio - зависало
4. Я высказал предположение о наличии ошибок. Мне было сказано, что ошибок нет.
5. Я решил это проверить и к вечеру выяснилось, что в предложенном механизме етсь серьезные ошибки.
2. Были представлены Тесты этого механизма.
3. При Запуске Тестов Visual Studio - зависало
4. Я высказал предположение о наличии ошибок. Мне было сказано, что ошибок нет.
5. Я решил это проверить и к вечеру выяснилось, что в предложенном механизме етсь серьезные ошибки.
вторник, 28 октября 2014 г.
PorfolioFormServ01
1. 28.10.2014 - в результате отказа ИБС упала рабочая машина 192,168,1,57 на которой вертелись два тестовых проекта PortfoliFormServ01. Проработали они около 5-х дней.
2. Перезапустил два тестовых проекта (PortfolioServForm23) с тем, чтобы они проработали хотя бы неделю.
3. Пытаюсь разобраться, почему проекты PortfolioFormServ01 не работают с новыми Шинами.
4. Откатился на версию dev_141027_0 - все работает.
5. Добавил изменения в dev из версии dev_141027_0. Помогло. Пока работает. Необходимо оставить версию dev_141027_0 как работающий макет, или версию dev_141024
6. Zip: dev_141028.zip
2. Перезапустил два тестовых проекта (PortfolioServForm23) с тем, чтобы они проработали хотя бы неделю.
3. Пытаюсь разобраться, почему проекты PortfolioFormServ01 не работают с новыми Шинами.
4. Откатился на версию dev_141027_0 - все работает.
5. Добавил изменения в dev из версии dev_141027_0. Помогло. Пока работает. Необходимо оставить версию dev_141027_0 как работающий макет, или версию dev_141024
6. Zip: dev_141028.zip
PortfolioServ01
1. 27.10.2014 - упала сетка 192.168.10 => упала vm 192.168.10.6 на которой вертелись два тестовых проекта PortfoliFormServ01. Проработали они около 3-х дней.
2. 27.10.2014 - произвел слияние ветки db dev_gonchar с веткой master c новой версией Шин.
Опять конфликты разных процессоров. Вообщем сразу тестовые проекты служб не запустились.
2. 27.10.2014 - произвел слияние ветки db dev_gonchar с веткой master c новой версией Шин.
Опять конфликты разных процессоров. Вообщем сразу тестовые проекты служб не запустились.
понедельник, 27 октября 2014 г.
Projects
dev_141027 - последний сохраненный проект
dev_141003 - проект, предположительно до краха
devAfterCrash - проект предположительно после Краха
dev_141003 - проект, предположительно до краха
devAfterCrash - проект предположительно после Краха
четверг, 23 октября 2014 г.
PortfolioServ01
1. Portfolio.CheckPositions
Агрегация ExReports.осуществляется по Тикеру.
Сравнение ExReports.Position c Позициями в Портфеле
2. ExReports.DailyExReportsSum - предназначен для агрегации Дневных ExecutionReports по принципу Account, AlgoID, Symbol для уменьшения их кол-ва, а также для последующего сохранения в БД. Подневные сохраненные ExReports можно использовать для Восстановления Портфеля после возможного сбоя.
PortfolioServ21
PortfolioServ24 - С Собщением об дублируемым ExecutionReports + Проход далее
PortfolioServ23 - С Собщением об дублируемым ExecutionReports + Выход
Агрегация ExReports.осуществляется по Тикеру.
Сравнение ExReports.Position c Позициями в Портфеле
2. ExReports.DailyExReportsSum - предназначен для агрегации Дневных ExecutionReports по принципу Account, AlgoID, Symbol для уменьшения их кол-ва, а также для последующего сохранения в БД. Подневные сохраненные ExReports можно использовать для Восстановления Портфеля после возможного сбоя.
PortfolioServ21
PortfolioServ24 - С Собщением об дублируемым ExecutionReports + Проход далее
PortfolioServ23 - С Собщением об дублируемым ExecutionReports + Выход
PortfolioServ01
1. Изменил Portfolio.CheckPositions() - теперь возвращает bool
2. Подумать, что делать с о сделками с "неверной датой". Дата > Текущей
3. Добавил Контроль по ExecutionReports.Count() CheckExReportsCount() - вызывается в OnExecutionReport.
CheckExReportsCount() - осуществляется сравнение счетиков ExReports в Службе и в Portfolio("Total"), в котором учтены все ExecutionReports
2. Подумать, что делать с о сделками с "неверной датой". Дата > Текущей
3. Добавил Контроль по ExecutionReports.Count() CheckExReportsCount() - вызывается в OnExecutionReport.
CheckExReportsCount() - осуществляется сравнение счетиков ExReports в Службе и в Portfolio("Total"), в котором учтены все ExecutionReports
Dev
Последний сохраненный проект до Перехода на Новые Шины с Хранилищем
dev_141022. Предыдущий dev_141021.
dev_141022. Предыдущий dev_141021.
среда, 22 октября 2014 г.
PortfolioServ01
1. Сделал эмуляцию Выходного Контроля Pushera CorrectExReport(e.ExecutionReport);
2. Отделил Ошибочные сообщения в Отдельное Окно, в которое, в частности пишутся "неправильные" Executions Reports
3. Form Контейнер Logger для служб FormServ01
dev_141022
Предложения:
4. Необходимо иметь Выходной Контроль на Источнике.
5. Желательно иметь Идентификатор Службы.
Неожиданности
6. В ветке Gitа dev_gonchar неожиданно Появился API Open Quant. Раньше этого не было. возможно кто-то это закомитил. Необходимо проверить основные классы, возможно закомитили еще и старые версии.
.
2. Отделил Ошибочные сообщения в Отдельное Окно, в которое, в частности пишутся "неправильные" Executions Reports
3. Form Контейнер Logger для служб FormServ01
dev_141022
Предложения:
4. Необходимо иметь Выходной Контроль на Источнике.
5. Желательно иметь Идентификатор Службы.
Неожиданности
6. В ветке Gitа dev_gonchar неожиданно Появился API Open Quant. Раньше этого не было. возможно кто-то это закомитил. Необходимо проверить основные классы, возможно закомитили еще и старые версии.
.
понедельник, 20 октября 2014 г.
PortfolioServ01
1. Все три тестовых проекта (см Предыдущий пост) перешли через ночь успешно.
PortfolioServ17
PortfolioServ3
PortfolioServ32
2. По счетам 0AG, 0SV c AlgoID = 39005 время последнего полученного Execution Reporta на 11:00 часов утра 21.10.14 составляет 21:18 - то есть явно не Утро
Проверил: возможно "вредит" контроль, вроде нет.
Выяснилось, что неправильное время идет из Таблицы Quik ?!?!?
3. По-прежнему по счету G02, а также по счету G06, в поле Symbol идет "Купля-Продажа".
В связи с пп 2 и 3 необходимо иметь Выходной Контроль, для служб которые Publish в сеть экземпляры наиболее значимых сущностей, например, Execution Reports.
4. В Transaction не заполнял поле Account в Методах Clone(), WriteToImpl(), ReadToImpl()
Исправил
5. Ввел в Portfolio событие OnPositionInvalid - срабатывает, если Позиция не проходит Внутренний контроль
6. В PortfolioViewForm ввел кнопку "Correct" для корректировки Positions текущего Портфеля
PortfolioServ17
PortfolioServ3
PortfolioServ32
2. По счетам 0AG, 0SV c AlgoID = 39005 время последнего полученного Execution Reporta на 11:00 часов утра 21.10.14 составляет 21:18 - то есть явно не Утро
Проверил: возможно "вредит" контроль, вроде нет.
Выяснилось, что неправильное время идет из Таблицы Quik ?!?!?
3. По-прежнему по счету G02, а также по счету G06, в поле Symbol идет "Купля-Продажа".
В связи с пп 2 и 3 необходимо иметь Выходной Контроль, для служб которые Publish в сеть экземпляры наиболее значимых сущностей, например, Execution Reports.
4. В Transaction не заполнял поле Account в Методах Clone(), WriteToImpl(), ReadToImpl()
Исправил
5. Ввел в Portfolio событие OnPositionInvalid - срабатывает, если Позиция не проходит Внутренний контроль
6. В PortfolioViewForm ввел кнопку "Correct" для корректировки Positions текущего Портфеля
PortfolioServ01
PortfolioServ17\PortfolioServ01 - c lock() в службе PortfolioServ01(с контролем) - запущена на локальной машине 20,10,2014
PortfolioServ03\PortfolioServ01 запущена на 192.168.10.6 20.10.2014
PortfolioServ032\PortfolioServ01 запущена на 192.168.10.6 20.10.2014 - контроль в рамках Портфеля
PortfolioServ03\PortfolioServ01 запущена на 192.168.10.6 20.10.2014
PortfolioServ032\PortfolioServ01 запущена на 192.168.10.6 20.10.2014 - контроль в рамках Портфеля
PortfolioFormServ01
1. PortfolioFormServ01 в тестовом режиме запущен на 192.168.10.6 PortfolioServ02. 20.10.2014 11:50
воскресенье, 19 октября 2014 г.
PortfolioServ01
1. Переход через ночь с 17.10 по 20.10 прошел успешно. запущен 17.10.14 16:05
2. Необходимо подумать про Выходной контроль ExecutionReports на стороне PUSHERa
по Горизонтали, то есть на уровне Полей, и на уровне Правильной Последовательности.
3. Возможно также подумать о введении Контроля Позиций на уровне Портфеля, а не на уровне Службы.
4. Ранее используемый контроль по Нумерации не работает.
5. Сейчас тестируется портфель с включенным Входным контролем ExecutionReports по Уникальности.
6. Проект: dev_141017.zip
7. Productions\PortfolioServ16
2. Необходимо подумать про Выходной контроль ExecutionReports на стороне PUSHERa
по Горизонтали, то есть на уровне Полей, и на уровне Правильной Последовательности.
3. Возможно также подумать о введении Контроля Позиций на уровне Портфеля, а не на уровне Службы.
4. Ранее используемый контроль по Нумерации не работает.
5. Сейчас тестируется портфель с включенным Входным контролем ExecutionReports по Уникальности.
6. Проект: dev_141017.zip
7. Productions\PortfolioServ16
четверг, 16 октября 2014 г.
среда, 15 октября 2014 г.
PortfolioFormServ01
16.10.2014
1. Переход через ночь прошел не успешно
Скорректировал ExReports Module
2. Дополнил Test_BusRecTra_01, чтобы отправляемые ExecutionReports
симулировали Переход через Ночь, посредством увеличения DateTime.Date
3. Проверил вместе с PortfolioFormServ01. Переход через ночь осуществляется правильно, формируя суммарные Execution Reports, существенно уменьшая их количество.
4. Добавил вывод Execution Reports Count в PortfolioFormServ01.PositionsLogger
5. Механизм "жесткого" контроля по уникальности работает. Вопрос о его применении остается открытым. Это зависит от режима работы Pushera, который отдает ExecutionReports c Начала Утренней Сессии.
Location:
PortfolioServ15\PortfolioFormServ01
1. Переход через ночь прошел не успешно
Скорректировал ExReports Module
2. Дополнил Test_BusRecTra_01, чтобы отправляемые ExecutionReports
симулировали Переход через Ночь, посредством увеличения DateTime.Date
3. Проверил вместе с PortfolioFormServ01. Переход через ночь осуществляется правильно, формируя суммарные Execution Reports, существенно уменьшая их количество.
4. Добавил вывод Execution Reports Count в PortfolioFormServ01.PositionsLogger
5. Механизм "жесткого" контроля по уникальности работает. Вопрос о его применении остается открытым. Это зависит от режима работы Pushera, который отдает ExecutionReports c Начала Утренней Сессии.
Location:
PortfolioServ15\PortfolioFormServ01
PortfolioServ
PortfolioFormServ01
Добавлено
1. Переход через Ночь в Контроле Positions.
При смене даты очищается список ExReports и добавляется Суммарные ExecutionReports за день.
Добавлено
1. Переход через Ночь в Контроле Positions.
При смене даты очищается список ExReports и добавляется Суммарные ExecutionReports за день.
понедельник, 13 октября 2014 г.
Ccылки проектов
1.EventLog
http://62.173.154.142/EvlClient02/HtmlPage23.html
2.Performance Reports
3.Portfolio Manager
http://62.173.154.142/PositionsMvc_02/
4.Totals
http://62.173.154.142/gs.trade.web.mvc_05
5.Robot
62.173.154.142
Gs.Trade - сделки
1. Перенес сделки в БД PortfolioBoMvc - для Reports.
Возникли сложности с разными параметрами сортировки, связанные с локализацией.
2. Проект находится в
Возникли сложности с разными параметрами сортировки, связанные с локализацией.
2. Проект находится в
http://192.168.1.57/PortfolioBoMvc_01/
пятница, 10 октября 2014 г.
PortfolioFormServ01
10.10.2014
1. Обнаружены незначительные расхождения в PortfolioServ.CheckUp и PortfolioManager
В тестах это расхождение не обнаруживается.
Предположение
Последовательность ExReports поступает в Службу с "неправильной" нумерацией сделок.
В Портфолио введен более жесткий контроль нумерации Входящих ExecReports
Расхождений пока не наблюдается
2. По счету G02 идут неправильные ExecutionReports: в поле Тикер идет значения "Купля","Продажа"
1. Обнаружены незначительные расхождения в PortfolioServ.CheckUp и PortfolioManager
В тестах это расхождение не обнаруживается.
Предположение
Последовательность ExReports поступает в Службу с "неправильной" нумерацией сделок.
В Портфолио введен более жесткий контроль нумерации Входящих ExecReports
Расхождений пока не наблюдается
2. По счету G02 идут неправильные ExecutionReports: в поле Тикер идет значения "Купля","Продажа"
четверг, 9 октября 2014 г.
PortfolioServ01
BackUp: dev_141009
Location: Productions\PortfolioServ09
Портфели
1.Добавлены Портфели по AlgoID
2.Добавлены Портфели по Account + AlgoID
3.Добавлен Портфель Total
Добавлен Контроль расчета Портфелей:
1. Total
2. Account
3. AlgoID
4. Account + AlgoID
+
if ( ! IsActive ) No ExecutionReports Processing
Location: Productions\PortfolioServ09
Портфели
1.Добавлены Портфели по AlgoID
2.Добавлены Портфели по Account + AlgoID
3.Добавлен Портфель Total
Добавлен Контроль расчета Портфелей:
1. Total
2. Account
3. AlgoID
4. Account + AlgoID
+
if ( ! IsActive ) No ExecutionReports Processing
среда, 8 октября 2014 г.
PortfolioFormServ01
PortfolioFormServ01
Location: d:\Productions\Portfolioserv05
BackUp: dev_141008.zip
Работает КОРРЕКТНО с использованием:
BusNode - шина
BusPublisherPush - пушер
Проблема:
Не работает с BusPublisherPub
15:30
Решение:
1.Проведено обновление до последнего Релиза FF.Bus
2.Шина заменена BusNode -> BusProxy
3. Не работал BusPublisherPub - при передачи сообщения Приложение падает.
Произведена корректировка Передачи сообщения в BusPublisherPub
Переставлены вызовы методов Сериализации, то ест изменен порядок.
4.При Передаче сообщения необходимо ??? заполнять AlgoMessage.Source
5. Запуск Перезапуск - не работал. В BusSubscriber.Stop() добавлена очистка Topics
Последовательность Запуск-Перезапуск:
public void Start()
{
if (null != Subscriber)
{
//Subscriber.Connect(BusNodeName);
Subscriber.Subscribe(PullTopic);
Subscriber.Start();
}
if (null != Pusher)
Pusher.Start();
}
public void Stop()
{
if (null != Subscriber)
{
Subscriber.Unsubscribe(PullTopic);
Subscriber.Disconnect(BusNodePushAddress);
Subscriber.Stop();
}
if( null != Pusher)
Pusher.Stop();
}
Новый обновленный сервис:
Location: d:\Productions\Portfolioserv06
Location: d:\Productions\Portfolioserv05
BackUp: dev_141008.zip
Работает КОРРЕКТНО с использованием:
BusNode - шина
BusPublisherPush - пушер
Проблема:
Не работает с BusPublisherPub
15:30
Решение:
1.Проведено обновление до последнего Релиза FF.Bus
2.Шина заменена BusNode -> BusProxy
3. Не работал BusPublisherPub - при передачи сообщения Приложение падает.
Произведена корректировка Передачи сообщения в BusPublisherPub
Переставлены вызовы методов Сериализации, то ест изменен порядок.
4.При Передаче сообщения необходимо ??? заполнять AlgoMessage.Source
5. Запуск Перезапуск - не работал. В BusSubscriber.Stop() добавлена очистка Topics
Последовательность Запуск-Перезапуск:
public void Start()
{
if (null != Subscriber)
{
//Subscriber.Connect(BusNodeName);
Subscriber.Subscribe(PullTopic);
Subscriber.Start();
}
if (null != Pusher)
Pusher.Start();
}
public void Stop()
{
if (null != Subscriber)
{
Subscriber.Unsubscribe(PullTopic);
Subscriber.Disconnect(BusNodePushAddress);
Subscriber.Stop();
}
if( null != Pusher)
Pusher.Stop();
}
Новый обновленный сервис:
Location: d:\Productions\Portfolioserv06
вторник, 7 октября 2014 г.
Monitor Development Requirements
Monitor Development Requirements
1. Формировать (вычислять PnL) портфель по ИК Форум
2. Показывать RoundTrip для всех MTC
3. Считать PnL непрерывно ( и после Клиринга)
4. Считать PnL не из Quikа, а самостоятельно.
1. Формировать (вычислять PnL) портфель по ИК Форум
2. Показывать RoundTrip для всех MTC
3. Считать PnL непрерывно ( и после Клиринга)
4. Считать PnL не из Quikа, а самостоятельно.
PortfolioServ01
Добавлено:
1.Контроль Позиций - Изменения
Добавлен TabPanel
Добавлено TabPage1 - Logger
Добавлено Tabpage2 - Positions
2.Передача Portfolio SnapShots
1.Контроль Позиций - Изменения
Добавлен TabPanel
Добавлено TabPage1 - Logger
Добавлено Tabpage2 - Positions
2.Передача Portfolio SnapShots
PortfolioFormServ01
Launched Date: 06.10.14.
1. Первый ExecutionReport получен 06.10.14 после 18 часов.
Неправильно был указан Topic. Была точка (,), надо было (#)
2. Возникла задача контроля Portfolio
3. 07.10.14 - вставил в PortfolioFormServ01 - контроль позиций.
1. Первый ExecutionReport получен 06.10.14 после 18 часов.
Неправильно был указан Topic. Была точка (,), надо было (#)
2. Возникла задача контроля Portfolio
3. 07.10.14 - вставил в PortfolioFormServ01 - контроль позиций.
PositionTracker
http://192.168.10.6/PositionsMvc_05/ - постоянно работает в Тестовом режиме
http://192.168.1.57/PositionsMvc_01/ - в разработке
понедельник, 6 октября 2014 г.
Project
c:\dev\FF\PortfolioFormServ01
Слушает Шину Topic ER# (ExecutionReports)
Пишет в Шину Topic POS# (Positions)
Пишет в Шину Topic PORTF# (Portfolio)
Пишет в Шину Topic TRANS# (Transactions)
c;\dev\FF\TradePuller01
Компонент взаимодействия с Шиной
Используется в PortfolioFormServ01
c:\dev\FF\Test_BusRecTra_01
Пишет в Шину Topic ER# (ExecutionReports)
Слушает Шину Topic ER# (ExecutionReports)
Слушает Шину Topic ER# (ExecutionReports)
Пишет в Шину Topic POS# (Positions)
Пишет в Шину Topic PORTF# (Portfolio)
Пишет в Шину Topic TRANS# (Transactions)
c;\dev\FF\TradePuller01
Компонент взаимодействия с Шиной
Используется в PortfolioFormServ01
c:\dev\FF\Test_BusRecTra_01
Пишет в Шину Topic ER# (ExecutionReports)
Слушает Шину Topic ER# (ExecutionReports)
пятница, 3 октября 2014 г.
Robot2Sql
Описание класса Robot2SQL используемого для
закачки необходимой монитору информации в базу данных. Автор Н.Андронов.
·
Методы
вызываемые 1 раз при инициализации стратегии или инструмента которым стратегия
торгует.
Robot2SQL.Initialize(string Name, long AlgoID, string Account, string Comment)Robot2SQL.InitializeInstrument(string Name, string Instrument)
·
Методы
которые вызываются сколь угодно часто в соответсвующим местах робота. Спама
транзакций в базу не произойдет, эти значения будут обновлятся не чаще чем один
раз в Robot2SQL.TimeDelay = 10000; милисекунд. это значение
можно менять.
Robot2SQL.UpdatePLtoday(string
Name, double PLtoday)
Robot2SQL.UpdatePLtotal(string
Name, double PLtotal)
Robot2SQL.UpdatePingTime(string
Name)
Robot2SQL.UpdateDataTime(string
Name)
· Методы
которые вызываются по факту произошедшего события.
Robot2SQL.UpdatePosition(string
Name, string Instrument, int Position)
Robot2SQL.UpdateLastDeal(string
Name, DateTime DTdeal, string Instrument, int
Size)
Robot2SQL.UpdateRoundTrip(string
Name, double RoundTrip)
Robot2SQL.UpdateTrade(string
Name, long tradeID, string
Ticker, DateTime DT, double Price, int Amount, double Volume)
Monitor. Структура БД
Структура БД. Monitor. Автор Н.Андронов
Deals:
SELECT
`Deals`.`tradeID`,
`Deals`.`StratName`,
`Deals`.`Ticker`,
`Deals`.`Time`,
`Deals`.`Price`,
`Deals`.`Amount`,
`Deals`.`Volume`
FROM `Monitor`.`Deals`;
QuikPositions
SELECT
`QuikPositions1`.`Account`,
`QuikPositions1`.`Instrument`,
`QuikPositions1`.`Amount`,
`QuikPositions1`.`SecCode`,
`QuikPositions1`.`Type`,
`QuikPositions1`.`Margin`,
`QuikPositions1`.`Value`
FROM `Monitor`.`QuikPositions1`;
Strategies
SELECT
`strategies`.`StratName`,
`strategies`.`AlgoID`,
`strategies`.`User`,
`strategies`.`Account`,
`strategies`.`Client`,
`strategies`.`CompName`,
`strategies`.`Comment`,
`strategies`.`StartTime`,
`strategies`.`PingTime`,
`strategies`.`DataTime`,
`strategies`.`PLtoday`,
`strategies`.`PLtotal`,
`strategies`.`LastDealTime`,
`strategies`.`LastDealInstrument`,
`strategies`.`LastDealSize`,
`strategies`.`RoundTrip`,
`strategies`.`Instrument1`,
`strategies`.`Position1`,
`strategies`.`Instrument2`,
`strategies`.`Position2`,
`strategies`.`Instrument3`,
`strategies`.`Position3`,
`strategies`.`Instrument4`,
`strategies`.`Position4`,
`strategies`.`Instrument5`,
`strategies`.`Position5`
FROM `Monitor`.`strategies`;
Deals:
SELECT
`Deals`.`tradeID`,
`Deals`.`StratName`,
`Deals`.`Ticker`,
`Deals`.`Time`,
`Deals`.`Price`,
`Deals`.`Amount`,
`Deals`.`Volume`
FROM `Monitor`.`Deals`;
SELECT
`QuikPositions1`.`Account`,
`QuikPositions1`.`Instrument`,
`QuikPositions1`.`Amount`,
`QuikPositions1`.`SecCode`,
`QuikPositions1`.`Type`,
`QuikPositions1`.`Margin`,
`QuikPositions1`.`Value`
FROM `Monitor`.`QuikPositions1`;
SELECT
`strategies`.`StratName`,
`strategies`.`AlgoID`,
`strategies`.`User`,
`strategies`.`Account`,
`strategies`.`Client`,
`strategies`.`CompName`,
`strategies`.`Comment`,
`strategies`.`StartTime`,
`strategies`.`PingTime`,
`strategies`.`DataTime`,
`strategies`.`PLtoday`,
`strategies`.`PLtotal`,
`strategies`.`LastDealTime`,
`strategies`.`LastDealInstrument`,
`strategies`.`LastDealSize`,
`strategies`.`RoundTrip`,
`strategies`.`Instrument1`,
`strategies`.`Position1`,
`strategies`.`Instrument2`,
`strategies`.`Position2`,
`strategies`.`Instrument3`,
`strategies`.`Position3`,
`strategies`.`Instrument4`,
`strategies`.`Position4`,
`strategies`.`Instrument5`,
`strategies`.`Position5`
FROM `Monitor`.`strategies`;
Строки подключения к MySql
public static string SQLServerName = "192.168.1.19";
public static string SQLDataBaseName = "Monitor";
public static string SQLLogin = "root";
public static string SQLPassword = "*********";
public static string TableNameForStrategies = "strategies";
public static string SQLDataBaseName = "Monitor";
public static string SQLLogin = "root";
public static string SQLPassword = "*********";
public static string TableNameForStrategies = "strategies";
четверг, 2 октября 2014 г.
Monitor от Андронова Николая.
Компоненты:
MySql.Data - https://www.nuget.org/packages/MySql.Data/
ObjectListView - http://sourceforge.net/projects/objectlistview/
SparkleLibrary - http://objectlistview.sourceforge.net/cs/animations.html
TeeChart - http://www.steema.com/
Work()
UpdateDeals() - 60 секунд
CalculatePL() - 10, 30 секунд
Основной цикл:
/// Основной рабочий цикл класса включает в себя
/// 1. считывание данных из базы
/// 2. репликацию в коллекцию источник данных для формы
/// 3. проверку на то работает ли биржа и генерацию звука и е-мейл сообщений в случае проблем
Work:
{
///проверка того что биржа работает
CheckMarket()
/// Закачка данных из SQL
WorkStrats()
{
Добавляет Новые Стратегии в Процессе работы без Рестарта
}
/// Реплицирует данные из коллекции закачанной из SQL в ту которая выводится в форме.
/// Репликация отделена от закачки и коллекции разделены для того чтоб
/// потенциальные лаги при закачке из базы денных не вносили задержку в обработке формы.
Replicate()
}
// Метод подкачивает из базы данных сделки для всех стратегий.
UpdateDeals()
читает сделки из БД через 60 секунд
long tradeID = Reader.GetInt64("tradeID");
string StratName = Reader.GetString("StratName");
string Ticker = Reader.GetString("Ticker");
DateTime DT = Reader.GetDateTime("Time");
double Price = Reader.GetDouble("Price");
int Amount = Reader.GetInt32("Amount");
double Volume = Reader.GetDouble("Volume");
LastUpdatedTime = DT;
MySql.Data - https://www.nuget.org/packages/MySql.Data/
ObjectListView - http://sourceforge.net/projects/objectlistview/
SparkleLibrary - http://objectlistview.sourceforge.net/cs/animations.html
TeeChart - http://www.steema.com/
Work()
UpdateDeals() - 60 секунд
CalculatePL() - 10, 30 секунд
Основной цикл:
/// Основной рабочий цикл класса включает в себя
/// 1. считывание данных из базы
/// 2. репликацию в коллекцию источник данных для формы
/// 3. проверку на то работает ли биржа и генерацию звука и е-мейл сообщений в случае проблем
Work:
{
///проверка того что биржа работает
CheckMarket()
/// Закачка данных из SQL
WorkStrats()
{
Добавляет Новые Стратегии в Процессе работы без Рестарта
}
/// Реплицирует данные из коллекции закачанной из SQL в ту которая выводится в форме.
/// Репликация отделена от закачки и коллекции разделены для того чтоб
/// потенциальные лаги при закачке из базы денных не вносили задержку в обработке формы.
Replicate()
}
// Метод подкачивает из базы данных сделки для всех стратегий.
UpdateDeals()
читает сделки из БД через 60 секунд
long tradeID = Reader.GetInt64("tradeID");
string StratName = Reader.GetString("StratName");
string Ticker = Reader.GetString("Ticker");
DateTime DT = Reader.GetDateTime("Time");
double Price = Reader.GetDouble("Price");
int Amount = Reader.GetInt32("Amount");
double Volume = Reader.GetDouble("Volume");
LastUpdatedTime = DT;
Projects Track
Проект:
PositionTracker:
Web\Portfolio\PortfoloMvc\PortfolioMvc_01\caWebClient_05\
Status:
Тестирование с 02.10.2014
PositionTracker:
http://192.168.10.6/PositionsMvc_05/
Location:Web\Portfolio\PortfoloMvc\PortfolioMvc_01\caWebClient_05\
Status:
Тестирование с 02.10.2014
среда, 1 октября 2014 г.
Bus Test
Проекты для проверки работы FF Bus Design
Службы:
Production\Test_BusRecTra
Push:
ExceutionReports
Subscriber:
ExceutionReports
Transactions
Positions
Portfolios
Test\PortfolioFormServ01 -
Subscriber:
ExecutionReports
Pusher:
ExecutionReports
Transactions
Positions
Portfolios
Службы:
Production\Test_BusRecTra
Push:
ExceutionReports
Subscriber:
ExceutionReports
Transactions
Positions
Portfolios
Test\PortfolioFormServ01 -
Subscriber:
ExecutionReports
Pusher:
ExecutionReports
Transactions
Positions
Portfolios
Ссылки на тестовые Проекты
192.168.10.6/PositionsMvc_02 - Позиции
192.168.10.6/PortfolioMvc_01 - Portfolio - Обработка сделок по BackOffice' s Reports
192.168.10.6/PortfolioMvc_01 - Portfolio - Обработка сделок по BackOffice' s Reports
Проекты
PortfolioDb - C:\devTest\Web\Portfolio\PortfolioDB\PortfolioDB
PortfolioBo - C:\devTest\Web\Portfolio\PortfolioBo\PortfolioBo
PortfolioForm - пишет в PortfolioBo - Transactions, Trades, Portfolios, сформированные в PortfolioManager по результатам сформированных ExecutionReport из текстовых файлов.
192.168.10.6/PositionsMvc_02 - Позиции
192.168.1.57/PositionsMvc_01 - Позиции
192.168.10.6/PortfolioMvc_01 - Портфолио
PortfolioBo - C:\devTest\Web\Portfolio\PortfolioBo\PortfolioBo
PortfolioForm - пишет в PortfolioBo - Transactions, Trades, Portfolios, сформированные в PortfolioManager по результатам сформированных ExecutionReport из текстовых файлов.
192.168.10.6/PositionsMvc_02 - Позиции
192.168.1.57/PositionsMvc_01 - Позиции
192.168.10.6/PortfolioMvc_01 - Портфолио
Подписаться на:
Комментарии (Atom)
