AssetManager.API/AssetManager.Infrastructure/Services/IMarketDataService.cs
OpenClaw Agent 1977dd609d fix: 请求收益曲线时自动回填历史数据
- GetNavHistoryAsync现在会自动检查是否有历史数据
- 无历史数据时自动调用BackfillNavHistoryInternalAsync
- 拆分内部回填方法,避免重复验证权限
2026-03-13 16:21:31 +00:00

59 lines
2.3 KiB
C#
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AssetManager.Models.DTOs;
namespace AssetManager.Infrastructure.Services;
/// <summary>
/// 市场数据服务接口
/// </summary>
public interface IMarketDataService
{
/// <summary>
/// 获取实时价格(自动根据资产类型路由到对应数据源)
/// </summary>
/// <param name="symbol">标的代码</param>
/// <param name="assetType">资产类型Stock/Crypto</param>
/// <returns>价格信息</returns>
Task<MarketPriceResponse> GetPriceAsync(string symbol, string assetType);
/// <summary>
/// 获取历史数据(自动根据资产类型路由到对应数据源)
/// </summary>
/// <param name="symbol">标的代码</param>
/// <param name="assetType">资产类型Stock/Crypto</param>
/// <param name="timeframe">时间周期</param>
/// <param name="limit">数据点数量</param>
/// <returns>历史数据列表</returns>
Task<List<MarketDataResponse>> GetHistoricalDataAsync(string symbol, string assetType, string timeframe, int limit);
/// <summary>
/// 获取股票实时价格
/// </summary>
/// <param name="symbol">股票代码</param>
/// <returns>股票价格信息</returns>
Task<MarketPriceResponse> GetStockPriceAsync(string symbol);
/// <summary>
/// 获取加密货币实时价格
/// </summary>
/// <param name="symbol">加密货币代码</param>
/// <returns>加密货币价格信息</returns>
Task<MarketPriceResponse> GetCryptoPriceAsync(string symbol);
/// <summary>
/// 获取股票历史数据
/// </summary>
/// <param name="symbol">股票代码</param>
/// <param name="timeframe">时间周期</param>
/// <param name="limit">数据点数量</param>
/// <returns>历史数据列表</returns>
Task<List<MarketDataResponse>> GetStockHistoricalDataAsync(string symbol, string timeframe, int limit);
/// <summary>
/// 获取加密货币历史数据
/// </summary>
/// <param name="symbol">加密货币代码</param>
/// <param name="timeframe">时间周期</param>
/// <param name="limit">数据点数量</param>
/// <returns>历史数据列表</returns>
Task<List<MarketDataResponse>> GetCryptoHistoricalDataAsync(string symbol, string timeframe, int limit);
}