From 83038954d987709615f7c3f41285dbf2f3c5251a Mon Sep 17 00:00:00 2001 From: vlad zverzhkhovskiy Date: Tue, 9 Sep 2025 09:28:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A7=D1=83=D1=82=D1=8C=20=D0=B4=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Declisions/Enums/DeclisionTradeAction.cs | 2 ++ KLHZ.Trader.Core/Exchange/Services/Trader.cs | 25 +++++++++++-------- .../Controllers/PlayController.cs | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/KLHZ.Trader.Core/DataLayer/Entities/Declisions/Enums/DeclisionTradeAction.cs b/KLHZ.Trader.Core/DataLayer/Entities/Declisions/Enums/DeclisionTradeAction.cs index 49255be..b09e574 100644 --- a/KLHZ.Trader.Core/DataLayer/Entities/Declisions/Enums/DeclisionTradeAction.cs +++ b/KLHZ.Trader.Core/DataLayer/Entities/Declisions/Enums/DeclisionTradeAction.cs @@ -6,7 +6,9 @@ StopBuy = 1, StopBuyShortTime = 2, OpenLong = 100, + OpenLongReal = 101, CloseLong = 200, + CloseLongReal = 201, OpenShort = 300, CloseShort = 400, } diff --git a/KLHZ.Trader.Core/Exchange/Services/Trader.cs b/KLHZ.Trader.Core/Exchange/Services/Trader.cs index 09e0370..04160c0 100644 --- a/KLHZ.Trader.Core/Exchange/Services/Trader.cs +++ b/KLHZ.Trader.Core/Exchange/Services/Trader.cs @@ -187,6 +187,7 @@ namespace KLHZ.Trader.Core.Exchange.Services var accounts = _tradeDataProvider.Accounts .Where(a => !a.Value.Assets.ContainsKey(message.Figi)) .ToArray(); + var loggedDeclisions = 0; foreach (var acc in accounts) { if (IsBuyAllowed(acc.Value, message.Value, 1, _accountCashPartFutures, _accountCashPart)) @@ -201,16 +202,16 @@ namespace KLHZ.Trader.Core.Exchange.Services Count = 1, RecomendPrice = null, }); + if (loggedDeclisions == 0) + { + await LogDeclision(DeclisionTradeAction.OpenLongReal, message); + loggedDeclisions++; + } } - - await LogDeclision(DeclisionTradeAction.OpenLong, message); } } } - else - { - await LogDeclision(DeclisionTradeAction.OpenLong, message); - } + await LogDeclision(DeclisionTradeAction.OpenLong, message); } } } @@ -218,6 +219,7 @@ namespace KLHZ.Trader.Core.Exchange.Services if ((res & TradingEvent.UptrendEnd) == TradingEvent.UptrendEnd) { var assetType = _tradeDataProvider.GetAssetTypeByFigi(message.Figi); + var loggedDeclisions = 0; if (!message.IsHistoricalData && BotModeSwitcher.CanSell()) { var assetsForClose = _tradeDataProvider.Accounts @@ -248,14 +250,15 @@ namespace KLHZ.Trader.Core.Exchange.Services Count = (long)asset.Count, RecomendPrice = null, }); - await LogDeclision(DeclisionTradeAction.CloseLong, message, profit); + if (loggedDeclisions == 0) + { + loggedDeclisions++; + await LogDeclision(DeclisionTradeAction.CloseLongReal, message, profit); + } } } } - else - { - await LogDeclision(DeclisionTradeAction.CloseLong, message); - } + await LogDeclision(DeclisionTradeAction.CloseLong, message); } } diff --git a/KLHZ.Trader.Service/Controllers/PlayController.cs b/KLHZ.Trader.Service/Controllers/PlayController.cs index 1d4c43f..5c6b924 100644 --- a/KLHZ.Trader.Service/Controllers/PlayController.cs +++ b/KLHZ.Trader.Service/Controllers/PlayController.cs @@ -25,7 +25,7 @@ namespace KLHZ.Trader.Service.Controllers { try { - var time = DateTime.UtcNow.AddDays(-40); + var time = DateTime.UtcNow.AddMinutes(-40); using var context1 = await _dbContextFactory.CreateDbContextAsync(); context1.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; var data = await context1.PriceChanges