убрал отложенное выполнение решений
parent
6770d12640
commit
a20609ae72
|
@ -1,14 +0,0 @@
|
|||
using KLHZ.Trader.Core.Contracts.Declisions.Dtos.Enums;
|
||||
using KLHZ.Trader.Core.Contracts.Messaging.Dtos.Interfaces;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace KLHZ.Trader.Core.Exchange.Models.Trading
|
||||
{
|
||||
internal class DeferredDeclision
|
||||
{
|
||||
public ImmutableDictionary<TradingEvent, decimal> Events { get; init; } = ImmutableDictionary<TradingEvent, decimal>.Empty;
|
||||
public Stops Stops { get; init; }
|
||||
public DateTime ExpirationTime { get; init; }
|
||||
public required ITradeDataItem Message { get; init; }
|
||||
}
|
||||
}
|
|
@ -32,7 +32,6 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
private readonly ExchangeConfig _exchangeConfig;
|
||||
private readonly ILogger<Trader> _logger;
|
||||
|
||||
private readonly ConcurrentDictionary<string, DeferredDeclision> DeferredDeclisions = new();
|
||||
private readonly ConcurrentDictionary<string, SupportLevel[]> SupportLevels = new();
|
||||
private readonly ConcurrentDictionary<string, decimal> _pirsonValues = new();
|
||||
|
||||
|
@ -169,40 +168,6 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
{
|
||||
if (message.Figi == "FUTIMOEXF000")
|
||||
{
|
||||
if (DeferredDeclisions.TryGetValue(message.Figi, out var dec))
|
||||
{
|
||||
if (dec.ExpirationTime < message.Time)
|
||||
{
|
||||
if (dec.Events[TradingEvent.OpenShort] > Constants.BlockingCoefficient)
|
||||
{
|
||||
if (dec.Message.Price < message.Price)
|
||||
{
|
||||
var stops2 = GetStops(message);
|
||||
var declisionsStops2 = ProcessStops(stops2, 2m);
|
||||
var e = TraderUtils.MergeResultsMult(dec.Events, declisionsStops2);
|
||||
await ExecuteDeclisions(e.ToImmutableDictionary(), message, stops2, 1);
|
||||
}
|
||||
}
|
||||
else if (dec.Events[TradingEvent.OpenLong] > Constants.BlockingCoefficient)
|
||||
{
|
||||
if (dec.Message.Price > message.Price)
|
||||
{
|
||||
var stops2 = GetStops(message);
|
||||
var declisionsStops2 = ProcessStops(stops2, 2m);
|
||||
var e = TraderUtils.MergeResultsMult(dec.Events, declisionsStops2);
|
||||
await ExecuteDeclisions(e.ToImmutableDictionary(), message, stops2, 1);
|
||||
}
|
||||
}
|
||||
else if (dec.Events[TradingEvent.CloseLong] > Constants.BlockingCoefficient
|
||||
|| dec.Events[TradingEvent.CloseShort] > Constants.BlockingCoefficient)
|
||||
{
|
||||
await ExecuteDeclisions(dec.Events, dec.Message, dec.Stops, 1);
|
||||
}
|
||||
|
||||
DeferredDeclisions.TryRemove(message.Figi, out _);
|
||||
}
|
||||
}
|
||||
|
||||
await CalcSupportLevels(message, 3, 5);
|
||||
var stops = GetStops(message);
|
||||
var pirson = await CalcPirson(message);
|
||||
|
@ -215,20 +180,6 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
res = TraderUtils.MergeResultsMax(res, mavRes);
|
||||
|
||||
await ExecuteDeclisions(res.ToImmutableDictionary(), message, stops, 1);
|
||||
|
||||
var declision = new DeferredDeclision()
|
||||
{
|
||||
Message = message,
|
||||
Stops = stops,
|
||||
Events = res.ToImmutableDictionary(),
|
||||
ExpirationTime = message.Time.AddSeconds(5)
|
||||
};
|
||||
|
||||
if (declision.Events.Values.Any(v => v > Constants.BlockingCoefficient))
|
||||
{
|
||||
//DeferredDeclisions.TryAdd(message.Figi, declision);
|
||||
}
|
||||
|
||||
_oldItems[message.Figi] = message;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue