Files
Finlytic/FinlyticEngine/Services/Scoring/ICompositeOpportunityScorer.cs
T

32 lines
936 B
C#

using System.Threading;
using System.Threading.Tasks;
using FinlyticCore.Dtos.Fundamentals;
using FinlyticCore.Dtos.Sentiment;
using FinlyticCore.Dtos.TechnicalAnalysis;
namespace FinlyticEngine.Services.Scoring;
public record ScoringResult(
decimal CompositeScore,
decimal TechnicalScore,
decimal SentimentScore,
decimal FundamentalScore,
bool PassedEarningsLockout,
int? DaysToNextEarnings,
decimal ReliabilityBonus = 0m,
bool PassedSimulationVeto = true,
bool PassedDividendGate = true,
int? DaysToNextExDividend = null
);
public interface ICompositeOpportunityScorer
{
Task<ScoringResult> CalculateCompositeScoreAsync(
StrategyResultDto setup,
IsinSentimentSummaryDto? sentiment,
AssetFundamentalsDto? fundamentals,
FinlyticCore.Dtos.Simulation.StrategyAssetReliabilityDto? reliability = null,
CancellationToken cancellationToken = default);
}