понедельник, 30 ноября 2015 г.

Builder.Build3

Работает с аттрибутами:
as="AssemblyShortName" anf="AssemblyFullName"

if( as == AssemblyFullName )
t = Type.GetType(typeName, false, true) work SUCCES for simple and dynamic Assemblies

if(as="AssemblyShortName")
t = Type.GetType(typeName, false, true)
does not work with Dynamic Assemlies

for dynamic and simple Assemblies work as="AssemblyFullName"

Dynamic Assemblies work only with AssemblyFullName
and only with
 t = Type.GetType(typeFullName, name =>
                            AppDomain.CurrentDomain.GetAssemblies()
                                        .FirstOrDefault(z => z.FullName == name.FullName),

воскресенье, 29 ноября 2015 г.

суббота, 28 ноября 2015 г.

Web Projects

NEw async Controller BarsAsync

Solution: GS.Trade.Series2
Project: GS.Trade.Web.Api.TimeSeries01

New Web Api Async BarsAsyncController: With Parse to string to reduce transfer chars numbers

http://185.31.162.98/GS.Trade.Web.Api.TimeSeries01/api/barsasync?seriesId=20&date=20151001

MVC Application:

Ticker, TimeInt:
Only 3 Days for Test Only

среда, 25 ноября 2015 г.

Task All to Buid3

1/ Перейти при сериализации на Buld3( with assembly.FullName) везде, где возможно

GS.Trade Build3, Configurations

Bulder.Buld3 используется для типов Tickers, Strategies. Portfolios
для входа используется assembly.FullName и тип загружается либо из статической сборки либо из динамической. Только благодаря FulName.

суббота, 21 ноября 2015 г.

SQL Перенос Configurations Sample

DELETE From AppDbConfig2.[dbo].[Configurations]
GO

Set IDENTITY_INSert AppDbConfig2.[dbo].[Configurations] ON
GO

Insert into AppDbConfig2.[dbo].[Configurations]
(Id,[Enabled],[Catalog],Code, Token, CreatedDT, ModifiedDT)
Select Id,[Enabled],[Catalog],Code, 0 , GetDate(), GEtDate()
from AppDbConfig.[dbo].[Configurations]
go

Set IDENTITY_INSert AppDbConfig2.[dbo].[Configurations] OFF
GO

DELETE From AppDbConfig2.[dbo].[Items]
GO

Set IDENTITY_INSert AppDbConfig2.[dbo].[Items] ON
GO

Insert into AppDbConfig2.[dbo].[Items]
(Id,ConfigurationId, [Enabled],[Catalog], Obj, TrCount, Code, CreatedDT, ModifiedDT )
Select Id,ConfigurationId, [Enabled],[Catalog], Obj, TrCount, Code, GetDate(), GEtDate()
from AppDbConfig.[dbo].[Items]
go

Set IDENTITY_INSert AppDbConfig2.[dbo].[Items] OFF
GO

понедельник, 16 ноября 2015 г.

SingleTone Lazy Instance Sample using in GS.Trade

private static readonly Lazy<ConfigurationResourse> Lazy =
        new Lazy<ConfigurationResourse>(() => CreateInstance());

        public static ConfigurationResourse Instance { get { return Lazy.Value; } }

        private static ConfigurationResourse CreateInstance()
        {
            var instance = Builder.Build2<ConfigurationResourse>(@"Init\ConfigurationResourse.xml",
                        "ConfigurationResourse");
            if(instance==null)
                throw new NullReferenceException("Build ConfigurationResource Failure");
            instance.Init();
            return instance;
        }

воскресенье, 15 ноября 2015 г.

Tfs Git Chages Conflicts

1. 151115 очередной сбой в TFS Team Project  VC\1302 (это название в TFS). Не первый раз.
2. Сделал zip копию локального каталога D:\VC\1303, затем удалил все файлы
3. Сделал Clone c TFS FROM
http://localhost:8080/tfs/DefaultCollection/_git/VC1302 в тот же каталог D:\VC\1303

Каталог остался прежним D:\VC\1303

Откомпилировал, пока все работает.

GS.Trade Load Assemblies

1. В результате усилий удалось отцепить только GS.Trade.Strategies.
Убрал из GS.Trade.Strategies зависимость от GS.Time.
Стала работать сериализация.
Но поскольку есть ссылка в References на GS.Trade.Data, то при обращении к Strategy.Init - система падает, так как в Init есть обращение к типам из GS.Trade.Data. И система пытается в соответствие с References загрузить GS.Trade.Data, которой нет в bin\Debug.
Поэтому GS.Trade.Data явно указывается в Referencуs (пункт 2)

2. GS.Trade.Data указывается в References в MainWindow


среда, 11 ноября 2015 г.

GS.Trade 151111

Избавляемся от GS.Strategies и GS.Data
1. 151111_01
Загрузка только GS.Strategies
GS.Data объявлена в References TradeContext
Мешается GS.Data в GS.Windows - задействованы в Charts, OrderPlane

2. 15.11.11_02
Загрузка только GS.Strategies
GS.Data объявлена в TradeContext
Мешается GS.Data в GS.Windows - задействованы только в OrderPlane, из Charts - убрал зависимость от GS.Trade.Data

3. 15.11.11_03
Загрузка только GS.Strategies
Исправил WIndows Charts, OrderPlane - удалил, чтобы уьрать зависимость от GS.Data
В результате GS.Data и WebClients не появляются в bin\Debug
Пришлось включить их (WebClient GS.Data) в GS.Trade.MainWindow - надо подумать, что лучше, может быть вернуть их в Windows
или вручную переписывать в bin\Debug

Так как Strategies имеет зависимость от GS,Trade.Data при ее динамической загрузке Strategies грузятся динамически, а Strategy - ошибку Десереализации

Необходимо тщательно проверять состав Сборок в \bin\Debig

151111_01 _02 _03 сделаны существенные изменения. Главное - убрал зависимости от GS.Trade.Data и GS.Strategies убрал локально. Необходимо понаблюдать как будет работать.
Good Bye

При загрузке дин.сборки используется BULID3 - использует хитрый Type,GetType c Assembly.Resolver http://gs-sft.blogspot.ru/2015/11/assemblyload.html








понедельник, 9 ноября 2015 г.

Sql,TimeSeries01

Частично восстановлен после потери в результате сбоя

USE TimeSeries01
Declare @dt1 as DateTime, @dt2 as DateTime

SET @dt1 = GETDATE()
Select @dt1 as 'Start DateTIme'
delete from Bars
where id In
(
Select b.Id
FROM dbo.Bars b
INNER JOIN TimeSeries ts on b.BarSeriesId = ts.Id
INNER JOIN Tickers t on ts.TickerId = t.Id
inner join TradeBoards tb on t.TradeBoardId = tb.Id
Where (tb.Id = 2 Or tb.Id = 3) AND 
(cast(Dt as Time) < '10:00:00' OR cast(DT as Time) > '23:50:00')
)

SET @dt2  = GETDATE()
Select @dt2 as 'Finish DateTIme'
Select cast((@dt2 - @dt1) as Time) as 'ElapsedTime'
go

SQL in DbTrade2

После потери нескольких важных запросов в результате сбоя, буду хранить и постепенно восстанавливать запросы здесь.

Clear Orders & Trades & EventLogItem (восстановлен частично)

use DbTrade2

-- ORDERS
Select 'Orders To Delete' as Operation, Count(*) as Cnt, 
Min(Cast( Modified as Date)) as Dt1, Max(Cast( Modified as Date)) as Dt2
From Orders
Go

DELETE from Orders
where Cast( Created as Date) NOT IN
(
select top 2 Cast( o.Created as Date) dt
from Orders o
Group by Cast( o.Created as Date)
Order by Cast( o.Created as Date) DESC
)
GO
select  Cast( o.Created as Date) DT, Count(*) OrdersCount
from Orders o
Group by Cast( o.Created as Date)
Order by Cast( o.Created as Date) DESC
GO

Select 'Orders After Delete' as Operation, Count(*) as Cnt, 
Min(Cast( Modified as Date)) as Dt1, Max(Cast( Modified as Date)) as Dt2
From Orders
Go

-- TRADES
Select 'Trades To Delete' as Operation, Count(*) as Cnt, 
Min(Cast( DT as Date)) as Dt1, Max(Cast( DT as Date)) as Dt2
From Trades
Go

DELETE from Trades
where Cast( DT as Date) NOT IN
(
select top 2 Cast( DT as Date) DT
from Trades o
Group by Cast( DT as Date)
Order by Cast( DT as Date) DESC
)
GO
select  Cast( DT as Date) dt, Count(*) TradesCount
from Trades o
Group by Cast( DT as Date)
Order by Cast( DT as Date) DESC
GO

Select 'Trades After Delete' as Operation, Count(*) as Cnt, 
Min(Cast( DT as Date)) as Dt1, Max(Cast( DT as Date)) as Dt2
From Trades
Go

-- DEALS
--Select 'Deals Count' as Operation
Select 'Deals Count' as Operation, Count(*) as Cnt,
Min(Cast( DT as Date)) as Dt1, Max(Cast( DT as Date)) as Dt2
from Deals
go

--select  Cast( DT as Date) dt, Count(*) DealsCount
--FROM Deals
--Group by Cast( DT as Date)
--Order by Cast( DT as Date) DESC

--Select 'Deals Delete' as Operation

--DELETE from Deals
--where Cast( DT as Date) NOT IN
--(
--select top 3 Cast( DT as Date) dt
--from Deals o
--Group by Cast( DT as Date)
--Order by Cast( DT as Date) DESC
--)
--GO
--select  Cast( DT as Date) dt, Count(*) DealsCount
--from Deals o
--Group by Cast( DT as Date)
--Order by Cast( DT as Date) DESC
--GO

-- EventLogs --

Use EventLog
Select 'EventLog To Delete' as Operation, Count(*) as Cnt, 
Min(Cast( DT as Date)) as Dt1, Max(Cast( DT as Date)) as Dt2
From EventLogItems
Go
DELETE from EventLogItems 
where Cast( DT as Date) NOT IN
(
select top 2 Cast( DT as Date) dt
from EventLogItems o
Group by Cast( DT as Date)
Order by Cast( DT as Date) DESC
)
GO
select Cast( DT as Date) dt, Count(*) as EvliCount
from EventLogItems o
Group by Cast( DT as Date)
Order by Cast( DT as Date) DESC
GO
Select 'EventLog After Delete' as Operation, Count(*) as Cnt, 
Min(Cast( DT as Date)) as Dt1, Max(Cast( DT as Date)) as Dt2
From EventLogItems
Go

GS.Configurations