включил обработку данных в реальном времени
test / deploy_trader_prod (push) Successful in 2m14s Details

main
vlad zverzhkhovskiy 2025-08-28 10:42:09 +03:00
parent 698af45576
commit faac2b74e4
1 changed files with 60 additions and 64 deletions

View File

@ -101,79 +101,75 @@ namespace KLHZ.Trader.Core.Declisions.Services
_historyCash.TryAdd(message.Figi, data); _historyCash.TryAdd(message.Figi, data);
} }
if (message.IsHistoricalData) float meanfullDiff;
if (message.Figi == "BBG004730N88")
{ {
float meanfullDiff; meanfullDiff = 0.05f;
if (message.Figi == "BBG004730N88") }
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; declisionAction = DeclisionTradeAction.CloseLong;
}
else
{
continue;
} }
try if (declisionAction != DeclisionTradeAction.Unknown)
{ {
//var downtrendStarts = data.CheckDowntrendStarting(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(7), meanfullDiff); using var context = await _dbContextFactory.CreateDbContextAsync();
var uptrendStarts = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(7), meanfullDiff, 8, 3); context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var uptrendStarts2 = data.CheckLongOpen(TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(3), meanfullDiff, 15, 2); await context.Declisions.AddAsync(new Declision()
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)
{ {
declisionAction = DeclisionTradeAction.OpenLong; AccountId = string.Empty,
} Figi = message.Figi,
//else if (downtrendEnds) Ticker = message.Ticker,
//{ Price = message.Value,
// //declisionAction = DeclisionTradeAction.CloseShort; Time = message.IsHistoricalData ? message.Time : DateTime.UtcNow,
//} Action = declisionAction,
else if (uptrendEnds) });
{ await context.SaveChangesAsync();
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)
{
} }
}
catch (Exception ex)
{
} }
} }