66 lines
3.4 KiB
C#
66 lines
3.4 KiB
C#
using Managing.Domain.Backtests;
|
|
using Managing.Domain.Bots;
|
|
using Managing.Domain.Candles;
|
|
using Managing.Domain.Users;
|
|
|
|
namespace Managing.Application.Abstractions.Services
|
|
{
|
|
public interface IBacktester
|
|
{
|
|
/// <summary>
|
|
/// Runs a trading bot backtest with the specified configuration and date range.
|
|
/// Automatically handles different bot types based on config.BotType.
|
|
/// </summary>
|
|
/// <param name="config">The trading bot configuration (must include Scenario object or ScenarioName)</param>
|
|
/// <param name="startDate">The start date for the backtest</param>
|
|
/// <param name="endDate">The end date for the backtest</param>
|
|
/// <param name="user">The user running the backtest (optional)</param>
|
|
/// <param name="save">Whether to save the backtest results</param>
|
|
/// <param name="withCandles">Whether to include candles and indicators values in the response</param>
|
|
/// <param name="requestId">The request ID to associate with this backtest (optional)</param>
|
|
/// <param name="metadata">Additional metadata to associate with this backtest (optional)</param>
|
|
/// <returns>The backtest results</returns>
|
|
Task<Backtest> RunTradingBotBacktest(
|
|
TradingBotConfig config,
|
|
DateTime startDate,
|
|
DateTime endDate,
|
|
User user = null,
|
|
bool save = false,
|
|
bool withCandles = false,
|
|
string requestId = null,
|
|
object metadata = null);
|
|
|
|
/// <summary>
|
|
/// Runs a trading bot backtest with pre-loaded candles.
|
|
/// Automatically handles different bot types based on config.BotType.
|
|
/// </summary>
|
|
/// <param name="config">The trading bot configuration (must include Scenario object or ScenarioName)</param>
|
|
/// <param name="candles">The candles to use for backtesting</param>
|
|
/// <param name="user">The user running the backtest (optional)</param>
|
|
/// <param name="withCandles">Whether to include candles and indicators values in the response</param>
|
|
/// <param name="requestId">The request ID to associate with this backtest (optional)</param>
|
|
/// <param name="metadata">Additional metadata to associate with this backtest (optional)</param>
|
|
/// <returns>The backtest results</returns>
|
|
Task<Backtest> RunTradingBotBacktest(
|
|
TradingBotConfig config,
|
|
List<Candle> candles,
|
|
User user = null,
|
|
bool withCandles = false,
|
|
string requestId = null,
|
|
object metadata = null);
|
|
|
|
// Additional methods for backtest management
|
|
bool DeleteBacktest(string id);
|
|
bool DeleteBacktests();
|
|
IEnumerable<Backtest> GetBacktestsByUser(User user);
|
|
IEnumerable<Backtest> GetBacktestsByRequestId(string requestId);
|
|
(IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByRequestIdPaginated(string requestId, int page, int pageSize, string sortBy = "score", string sortOrder = "desc");
|
|
Backtest GetBacktestByIdForUser(User user, string id);
|
|
bool DeleteBacktestByUser(User user, string id);
|
|
bool DeleteBacktestsByIdsForUser(User user, IEnumerable<string> ids);
|
|
bool DeleteBacktestsByUser(User user);
|
|
(IEnumerable<LightBacktest> Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page, int pageSize, string sortBy = "score", string sortOrder = "desc");
|
|
|
|
|
|
}
|
|
} |