using AssetManager.Data; using AssetManager.Models.DTOs; using Microsoft.Extensions.Logging; namespace AssetManager.Infrastructure.StrategyEngine.Calculators; /// /// 均线趋势策略计算器 /// public class MaTrendCalculator : IStrategyCalculator { private readonly ILogger _logger; public string StrategyType => AssetManager.Models.DTOs.StrategyType.MaTrend; public MaTrendCalculator(ILogger logger) { _logger = logger; } public async Task CalculateAsync( string configJson, List positions, CancellationToken cancellationToken = default) { _logger.LogInformation("计算均线趋势策略信号"); var config = System.Text.Json.JsonSerializer.Deserialize(configJson, new System.Text.Json.JsonSerializerOptions { PropertyNameCaseInsensitive = true }) ?? new MaTrendConfig(); if (positions.Count == 0) { return new StrategySignal { StrategyType = StrategyType, Signal = "HOLD", Reason = "无持仓", GeneratedAt = DateTime.UtcNow }; } // 简单实现:返回持有信号 await Task.Delay(1, cancellationToken); return new StrategySignal { StrategyType = StrategyType, Signal = "HOLD", Reason = "均线趋势策略暂未实现", GeneratedAt = DateTime.UtcNow }; } }