using Managing.Domain.Accounts; using Managing.Domain.Bots; using Managing.Domain.Candles; using Managing.Domain.Indicators; using Managing.Domain.Trades; using static Managing.Common.Enums; namespace Managing.Application.Abstractions { public interface ITradingBot { TradingBotConfig Config { get; set; } Account Account { get; set; } Dictionary Signals { get; set; } Dictionary Positions { get; set; } Dictionary WalletBalances { get; set; } DateTime PreloadSince { get; set; } int PreloadedCandlesCount { get; set; } long ExecutionCount { get; set; } Candle LastCandle { get; set; } Task Run(); Task StopBot(string reason = null); Task LoadAccount(); Task LoadLastCandle(); Task CreateManualSignal(TradeDirection direction); /// /// Gets the current trading bot configuration. /// /// A copy of the current configuration TradingBotConfig GetConfiguration(); /// /// Updates the trading bot configuration with new settings. /// /// The new configuration to apply /// True if the configuration was successfully updated, false otherwise Task UpdateConfiguration(TradingBotConfig newConfig); Task LogInformation(string message); Task LogWarning(string message); } }