public TradeIdeasSentiment GetSentiment(TradeIdeaRule ruleMatch, HistoricalData historicalData) { TradeIdeasSentiment tradeIdeasSentiment = TradeIdeasSentiment.Bullish; if (ruleMatch != TradeIdeaRule.None) { tradeIdeasSentiment = ruleMatch.GetSentiment(); return(tradeIdeasSentiment); } if (historicalData == null) { return(tradeIdeasSentiment); } Tuple <int?, int?> sentimentValues = _signalsProxyService.GetSyrahSentimentTermValues(historicalData); Tuple <SignalInterpretation, SignalInterpretation> sentimentInterpretations = _signalsProxyService.MakeInterpretationOfSyrahSentiments(sentimentValues); SignalInterpretation shortTermInterpretation = sentimentInterpretations.Item1; SignalInterpretation longTermInterpretation = sentimentInterpretations.Item2; if (shortTermInterpretation == null || longTermInterpretation == null) { return(tradeIdeasSentiment); } SentimentInterpretationValue shortTermSentimentInterpretationValue = (SentimentInterpretationValue)shortTermInterpretation.Interpretation; SentimentInterpretationValue longTermSentimentInterpretationValue = (SentimentInterpretationValue)longTermInterpretation.Interpretation; if (longTermSentimentInterpretationValue == SentimentInterpretationValue.Neutral) { switch (shortTermSentimentInterpretationValue) { case SentimentInterpretationValue.Bullish: case SentimentInterpretationValue.MildlyBullish: case SentimentInterpretationValue.Neutral: return(TradeIdeasSentiment.Bullish); case SentimentInterpretationValue.Bearish: case SentimentInterpretationValue.MildlyBearish: return(TradeIdeasSentiment.Bearish); default: throw new ArgumentOutOfRangeException(); } } switch (longTermSentimentInterpretationValue) { case SentimentInterpretationValue.Bullish: case SentimentInterpretationValue.MildlyBullish: return(TradeIdeasSentiment.Bullish); case SentimentInterpretationValue.Bearish: case SentimentInterpretationValue.MildlyBearish: return(TradeIdeasSentiment.Bearish); default: throw new ArgumentOutOfRangeException(); } }
public static TradeIdeasSentiment GetSentiment(this TradeIdeaRule tradeIdeaRule) { TradeIdeasSentiment result = BullishRules.Contains(tradeIdeaRule) ? TradeIdeasSentiment.Bullish : TradeIdeasSentiment.Bearish; return(result); }