Example #1
0
            public GenericChartSection Generate(SystemResult result)
            {
                var chart = new StockPriceChart(result.System, result.Stock, result.Prices);

                chart.Signals = result.Signals;

                var section = new GenericChartSection("Chart", chart);

                return(section);
            }
        public void Add(StockPriceChart model)
        {
            var priceCurve = AddCurve("Prices", model.Prices);

            foreach (var indicatorPoints in model.IndicatorPoints)
            {
                AddCurve(indicatorPoints.Key, indicatorPoints.Value);
            }

            if (model.Signals.Any())
            {
                SetSignals(model.Signals);
            }
        }
Example #3
0
        private void AddChart(Data data)
        {
            var chart = new StockPriceChart(Name, myStock, data.Prices);

            foreach (var entry in data.Points)
            {
                chart.IndicatorPoints.Add(entry.Key, entry.Value);
            }

            chart.Signals = data.Signals;

            var section = new GenericChartSection(Name, chart);

            Sections.Add(section);
        }
Example #4
0
        private GenericChartSection CreateChartSection(TradingResult tradingResult)
        {
            var chart = new StockPriceChart("TradingProtocol", tradingResult.Stock, tradingResult.Prices);

            var trades = tradingResult.TradingLog.Orders
                         .Select(o => o.Timestamp)
                         .ToList();
            var signals = tradingResult.SystemSignals
                          .Where(s => trades.Contains(s.Time));

            chart.Signals = new SignalSeries(tradingResult.Prices, new SeriesIdentifier(new StockObjectIdentifier(tradingResult.Stock), new ObjectDescriptor("Trading")), signals);

            AddIndicators(chart, tradingResult.SystemReport);

            var section = new GenericChartSection("Chart", chart);

            return(section);
        }
Example #5
0
        private void AddIndicators(StockPriceChart chart, Report report)
        {
            var visitor = new ChartSectionVisitor();
            var walker  = new ReportWalker(visitor);

            walker.Visit(report);

            foreach (var section in visitor.Sections.OfType <GenericChartSection>())
            {
                foreach (var entry in section.Chart.IndicatorPoints)
                {
                    // could be that the chart is already added
                    // sample: indicator 1 = SMA.200, indicator 2 = SMA.10xSMA.200 (double cross over). then SMA.200 would be added two times
                    if (!chart.IndicatorPoints.ContainsKey(entry.Key))
                    {
                        chart.IndicatorPoints.Add(entry.Key, entry.Value);
                    }
                }
            }
        }
Example #6
0
        public void Add( StockPriceChart model )
        {
            var priceCurve = AddCurve( "Prices", model.Prices );

            foreach ( var indicatorPoints in model.IndicatorPoints )
            {
                AddCurve( indicatorPoints.Key, indicatorPoints.Value );
            }

            if ( model.Signals.Any() )
            {
                SetSignals( model.Signals );
            }
        }