using KLHZ.Trader.Core.Exchange.Models.AssetsAccounting; using System.Collections.Immutable; namespace KLHZ.Trader.Core.Exchange.Interfaces { public interface IManagedAccount { public decimal Balance { get; } public decimal Total { get; } bool Initialized { get; } string AccountId { get; } string? AccountName { get; } Task Init(string accountId, string? accountName = null); Task LoadPortfolio(); ImmutableDictionary Assets { get; } public Task OpenPosition(string figi, PositionType positionType, decimal stopLossShift, decimal takeProfitShift, long count = 1); public Task ClosePosition(string figi); public Task ResetStops(string figi, decimal stopLossShift, decimal takeProfitShift); } }