32 lines
936 B
C#
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);
|
|
}
|
|
|