Example #1
0
        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();
            }
        }
Example #2
0
        public static TradeIdeasSentiment GetSentiment(this TradeIdeaRule tradeIdeaRule)
        {
            TradeIdeasSentiment result = BullishRules.Contains(tradeIdeaRule)
                                ? TradeIdeasSentiment.Bullish
                                : TradeIdeasSentiment.Bearish;

            return(result);
        }