diff --git a/KLHZ.Trader.Core/Exchange/Services/Trader.cs b/KLHZ.Trader.Core/Exchange/Services/Trader.cs index 8672b3a..94c9fbb 100644 --- a/KLHZ.Trader.Core/Exchange/Services/Trader.cs +++ b/KLHZ.Trader.Core/Exchange/Services/Trader.cs @@ -18,6 +18,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System.Collections.Concurrent; using System.Collections.Immutable; +using System.Security.Cryptography; using System.Threading.Channels; using Tinkoff.InvestApi; using Asset = KLHZ.Trader.Core.Exchange.Models.AssetsAccounting.Asset; @@ -293,8 +294,8 @@ namespace KLHZ.Trader.Core.Exchange.Services await OpenPositions(accounts, message, PositionType.Long, stops.stopLoss, stops.takeProfit, 1); } await LogDeclision(DeclisionTradeAction.OpenLong, message); - await LogDeclision(DeclisionTradeAction.OpenLong, message.Value + stops.takeProfit, message.Time.AddMilliseconds(-100), message); - await LogDeclision(DeclisionTradeAction.OpenLong, message.Value - stops.stopLoss, message.Time.AddMilliseconds(100), message); + await LogDeclision(DeclisionTradeAction.OpenLong, message.Value + stops.takeProfit, message.Time.AddMilliseconds(-RandomNumberGenerator.GetInt32(10, 100)), message); + await LogDeclision(DeclisionTradeAction.OpenLong, message.Value - stops.stopLoss, message.Time.AddMilliseconds(RandomNumberGenerator.GetInt32(10, 100)), message); } if (newMod == TradingMode.Dropping && newMod != oldMod) { @@ -309,8 +310,8 @@ namespace KLHZ.Trader.Core.Exchange.Services await OpenPositions(accounts, message, PositionType.Short, stops.stopLoss, stops.takeProfit, 1); } await LogDeclision(DeclisionTradeAction.OpenShort, message); - await LogDeclision(DeclisionTradeAction.OpenShort, message.Value - stops.takeProfit, message.Time.AddMilliseconds(-100), message); - await LogDeclision(DeclisionTradeAction.OpenShort, message.Value + stops.stopLoss, message.Time.AddMilliseconds(100), message); + await LogDeclision(DeclisionTradeAction.OpenShort, message.Value - stops.takeProfit, message.Time.AddMilliseconds(-RandomNumberGenerator.GetInt32(10,100)), message); + await LogDeclision(DeclisionTradeAction.OpenShort, message.Value + stops.stopLoss, message.Time.AddMilliseconds(RandomNumberGenerator.GetInt32(10, 100)), message); } TradingModes[message.Figi] = newMod; if (oldMod != newMod) @@ -547,8 +548,8 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt } await LogDeclision(DeclisionTradeAction.OpenLong, message); - await LogDeclision(DeclisionTradeAction.OpenLong, message.Value + stops.takeProfit, message.Time.AddMilliseconds(-100), message); - await LogDeclision(DeclisionTradeAction.OpenLong, message.Value - stops.stopLoss, message.Time.AddMilliseconds(100), message); + await LogDeclision(DeclisionTradeAction.OpenLong, message.Value + stops.takeProfit, message.Time.AddMilliseconds(-RandomNumberGenerator.GetInt32(10, 100)), message); + await LogDeclision(DeclisionTradeAction.OpenLong, message.Value - stops.stopLoss, message.Time.AddMilliseconds(RandomNumberGenerator.GetInt32(10, 100)), message); } if (result[TradingEvent.DowntrendStart] > Constants.PowerUppingCoefficient && !ShortOpeningStops.ContainsKey(message.Figi) @@ -567,8 +568,8 @@ INewPrice message, int windowMaxSize, decimal uptrendStartingDetectionMeanfullSt } await LogDeclision(DeclisionTradeAction.OpenShort, message); - await LogDeclision(DeclisionTradeAction.OpenShort, message.Value - stops.takeProfit, message.Time.AddMilliseconds(-100), message); - await LogDeclision(DeclisionTradeAction.OpenShort, message.Value + stops.stopLoss, message.Time.AddMilliseconds(100), message); + await LogDeclision(DeclisionTradeAction.OpenShort, message.Value - stops.takeProfit, message.Time.AddMilliseconds(-RandomNumberGenerator.GetInt32(10, 100)), message); + await LogDeclision(DeclisionTradeAction.OpenShort, message.Value + stops.stopLoss, message.Time.AddMilliseconds(RandomNumberGenerator.GetInt32(10, 100)), message); } if (result[TradingEvent.UptrendEnd] > Constants.UppingCoefficient) {