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); } }
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); }
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); }
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); } } } }
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 ); } }