feat(engine): add FinlyticEngine microservice with trade lifecycle, AI reasoning gate, composite scoring, and unit tests

This commit is contained in:
2026-08-24 21:37:05 +02:00
parent a4959658a2
commit 5c95dd182c
49 changed files with 7709 additions and 0 deletions
@@ -0,0 +1,34 @@
using System.Threading;
using System.Threading.Tasks;
using FinlyticCore.Dtos.Fundamentals;
using FinlyticCore.Dtos.Sentiment;
using FinlyticCore.Dtos.Simulation;
using FinlyticCore.Dtos.TechnicalAnalysis;
using FinlyticCore.Dtos.Trading;
using FinlyticEngine.Services.Scoring;
namespace FinlyticEngine.Services.Ai;
public interface IAiReasoningGateService
{
/// <summary>
/// Validiert ein technisches Setup entweder über den konfigurierten KI-Webhook oder, falls das
/// Gate deaktiviert ist bzw. der Webhook nicht verfügbar ist, über eine regelbasierte
/// Ersatzentscheidung. Das Ergebnis kennzeichnet über <see cref="AiValidationResultDto.Source"/>
/// eindeutig, welcher der beiden Fälle vorliegt.
/// </summary>
/// <param name="reliability">
/// FinlyticSimulation's backtest-reliability verdict for this exact (Isin, StrategyKey) combination, if
/// one has ever been computed (see <c>QuantSimulationEngine</c>) - forwarded onto the AI payload so the
/// model sees the same win-rate/profit-factor evidence <see cref="ICompositeOpportunityScorer"/> already
/// used for its bonus/veto. <see langword="null"/> when nobody has ever run a backtest for this
/// combination yet (never fabricated, Rules.md §4).
/// </param>
Task<AiValidationResultDto> ValidateOpportunityAsync(
StrategyResultDto setup,
IsinSentimentSummaryDto? sentiment,
AssetFundamentalsDto? fundamentals,
ScoringResult score,
StrategyAssetReliabilityDto? reliability = null,
CancellationToken cancellationToken = default);
}