35 lines
1.6 KiB
C#
35 lines
1.6 KiB
C#
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);
|
|
}
|