diff --git a/KLHZ.Trader.Core/Declisions/Services/Trader.cs b/KLHZ.Trader.Core/Declisions/Services/Trader.cs index 14cff7b..5b2e3ba 100644 --- a/KLHZ.Trader.Core/Declisions/Services/Trader.cs +++ b/KLHZ.Trader.Core/Declisions/Services/Trader.cs @@ -101,79 +101,75 @@ namespace KLHZ.Trader.Core.Declisions.Services _historyCash.TryAdd(message.Figi, data); } - if (message.IsHistoricalData) + float meanfullDiff; + if (message.Figi == "BBG004730N88") { - float meanfullDiff; - if (message.Figi == "BBG004730N88") + meanfullDiff = 0.05f; + } + else if (message.Figi == "FUTIMOEXF000") + { + meanfullDiff = 1f; + } + else + { + continue; + } + + try + { + //var downtrendStarts = data.CheckDowntrendStarting(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(7), meanfullDiff); + var uptrendStarts = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(7), meanfullDiff, 8, 3); + var uptrendStarts2 = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(3), meanfullDiff, 15, 2); + var downtrendEnds = data.CheckLongOpen(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(10), meanfullDiff, 15, 5); + uptrendStarts |= downtrendEnds; + uptrendStarts |= uptrendStarts2; + //var downtrendEnds = data.CheckDowntrendEnding(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(15), meanfullDiff); + + var uptrendEnds = data.CheckLongClose(TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(20), meanfullDiff * 1.5f, 8, 8); + var uptrendEnds2 = data.CheckLongClose(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(30), meanfullDiff, 15, 8); + uptrendEnds |= uptrendEnds2; + + //var uptrendEnds2 = data.CheckUptrendEnding(TimeSpan.FromSeconds(20), TimeSpan.FromSeconds(20), meanfullDiff); + + //var uptrendEnds = uptrendEnds1 || uptrendEnds2; + + var declisionAction = DeclisionTradeAction.Unknown; + + //if (downtrendStarts) + //{ + // //declisionAction = DeclisionTradeAction.OpenShort; + //} + if (uptrendStarts) { - meanfullDiff = 0.05f; + declisionAction = DeclisionTradeAction.OpenLong; } - else if (message.Figi == "FUTIMOEXF000") + //else if (downtrendEnds) + //{ + // //declisionAction = DeclisionTradeAction.CloseShort; + //} + else if (uptrendEnds) { - meanfullDiff = 1f; - } - else - { - continue; + declisionAction = DeclisionTradeAction.CloseLong; } - try + if (declisionAction != DeclisionTradeAction.Unknown) { - //var downtrendStarts = data.CheckDowntrendStarting(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(7), meanfullDiff); - var uptrendStarts = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(7), meanfullDiff, 8, 3); - var uptrendStarts2 = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(3), meanfullDiff, 15, 2); - var downtrendEnds = data.CheckLongOpen(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(10), meanfullDiff, 15, 5); - uptrendStarts |= downtrendEnds; - uptrendStarts |= uptrendStarts2; - //var downtrendEnds = data.CheckDowntrendEnding(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(15), meanfullDiff); - - var uptrendEnds = data.CheckLongClose(TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(20), meanfullDiff * 1.5f, 8, 8); - var uptrendEnds2 = data.CheckLongClose(TimeSpan.FromSeconds(120), TimeSpan.FromSeconds(30), meanfullDiff, 15, 8); - uptrendEnds |= uptrendEnds2; - - //var uptrendEnds2 = data.CheckUptrendEnding(TimeSpan.FromSeconds(20), TimeSpan.FromSeconds(20), meanfullDiff); - - //var uptrendEnds = uptrendEnds1 || uptrendEnds2; - - var declisionAction = DeclisionTradeAction.Unknown; - - //if (downtrendStarts) - //{ - // //declisionAction = DeclisionTradeAction.OpenShort; - //} - if (uptrendStarts) + using var context = await _dbContextFactory.CreateDbContextAsync(); + context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; + await context.Declisions.AddAsync(new Declision() { - declisionAction = DeclisionTradeAction.OpenLong; - } - //else if (downtrendEnds) - //{ - // //declisionAction = DeclisionTradeAction.CloseShort; - //} - else if (uptrendEnds) - { - declisionAction = DeclisionTradeAction.CloseLong; - } - - if (declisionAction != DeclisionTradeAction.Unknown) - { - using var context = await _dbContextFactory.CreateDbContextAsync(); - context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; - await context.Declisions.AddAsync(new Declision() - { - AccountId = string.Empty, - Figi = message.Figi, - Ticker = message.Ticker, - Price = message.Value, - Time = message.IsHistoricalData ? message.Time : DateTime.UtcNow, - Action = declisionAction, - }); - await context.SaveChangesAsync(); - } - } - catch (Exception ex) - { - + AccountId = string.Empty, + Figi = message.Figi, + Ticker = message.Ticker, + Price = message.Value, + Time = message.IsHistoricalData ? message.Time : DateTime.UtcNow, + Action = declisionAction, + }); + await context.SaveChangesAsync(); } + } + catch (Exception ex) + { } }