Example #1
0
        protected override IndicatorResult CalculateResult(IIndicatorContext context)
        {
            var worker = new Worker(this, context);
            var result = worker.Calculate();

            return(result);
        }
Example #2
0
        private IndicatorResult GenerateMissingDataResult(IIndicatorContext context)
        {
            var result = new IndicatorResult(Name, context.Stock, Signal.None);

            result.Report = new MissingDataReport(Name);

            return(result);
        }
Example #3
0
        public override IndicatorResult Calculate(IIndicatorContext context)
        {
            if (!IsEnoughDataAvailable(context))
            {
                return(GenerateMissingDataResult(context));
            }

            return(CalculateResult(context));
        }
Example #4
0
        public override IndicatorResult Calculate(IIndicatorContext context)
        {
            var result = new CombinedIndicatorResult(this, context.Stock);

            foreach (var indicator in myIndicators)
            {
                var r = indicator.Calculate(context);
                result.AddResult(r);
            }

            result.Close();

            return(result);
        }
Example #5
0
        public override IndicatorResult Calculate( IIndicatorContext context )
        {
            var result = new CombinedIndicatorResult( this, context.Stock );

            foreach ( var indicator in myIndicators )
            {
                var r = indicator.Calculate( context );
                result.AddResult( r );
            }

            result.Close();

            return result;
        }
Example #6
0
        protected override bool IsEnoughDataAvailable(IIndicatorContext context)
        {
            if (!base.IsEnoughDataAvailable(context))
            {
                return(false);
            }

            var prices = Prices.ForStock(context.Stock);

            if (!ShortTerm.ContainsEnoughData(prices) || !LongTerm.ContainsEnoughData(prices))
            {
                // really too few data to calculate anything
                return(false);
            }

            return(true);
        }
Example #7
0
        protected virtual bool IsEnoughDataAvailable(IIndicatorContext context)
        {
            var prices = Prices.ForStock(context.Stock);

            if (!prices.Any())
            {
                return(false);
            }

            if (prices.Last().Time < context.DateUnderAnalysis && !context.GenerateHistoricSignals)
            {
                // we should only generate signals for DUA but there is no data available for it
                return(false);
            }

            return(true);
        }
Example #8
0
        protected override bool IsEnoughDataAvailable(IIndicatorContext context)
        {
            if (!base.IsEnoughDataAvailable(context))
            {
                return(false);
            }

            var calculator = context.CalculatorFactory.Create("sma", NumDays);

            var prices = Prices.ForStock(context.Stock);

            if (!calculator.ContainsEnoughData(prices))
            {
                // really too few data to calculate anything
                return(false);
            }

            return(true);
        }
Example #9
0
 public override IndicatorResult Calculate( IIndicatorContext context )
 {
     return new IndicatorResult( Name, context.Stock, new NeutralSignal( 50 ) );
 }
Example #10
0
 public IndicatorResult Calculate( IIndicatorContext context )
 {
     var result = myIndicator.Calculate( context );
     return new WeightedIndicatorResult( this, result );
 }
Example #11
0
 public abstract IndicatorResult Calculate( IIndicatorContext context );
Example #12
0
        public IndicatorResult Calculate(IIndicatorContext context)
        {
            var result = myIndicator.Calculate(context);

            return(new WeightedIndicatorResult(this, result));
        }
Example #13
0
 public abstract IndicatorResult Calculate(IIndicatorContext context);
Example #14
0
 public override IndicatorResult Calculate(IIndicatorContext context)
 {
     return(new IndicatorResult(Name, context.Stock, new NeutralSignal(50)));
 }
Example #15
0
 public Worker(DoubleCrossover indicator, IIndicatorContext context)
     : base(indicator, context)
 {
 }
Example #16
0
 protected WorkerBase(TIndicator indicator, IIndicatorContext context)
 {
     Indicator = indicator;
     Context   = context;
 }
Example #17
0
 protected abstract IndicatorResult CalculateResult(IIndicatorContext context);
Example #18
0
 public Worker(SimpleMovingAverage indicator, IIndicatorContext context)
     : base(indicator, context)
 {
 }