public TraderBotResultsPlotViewModel(PlotHelper drawer) { Drawer = drawer; this.PlotViewModel = new PlotModel { Title = Drawer.Title }; CreateAxes(); Candles = new CandleStickSeries(); Candles.TrackerFormatString = "{0}\n{1}: {2}\nHigh: {3:0.########}\nLow: {4:0.########}\nOpen: {5:0.########}\nClose: {6:0.########}"; Volumes = new VolumeSeries() { PositiveHollow = false, VolumeStyle = VolumeStyle.Stacked, YAxisKey = Volume_Yaxis.Key, }; PlotViewModel.KeyDown += PlotViewModel_KeyDown; timer = new System.Timers.Timer() { Interval = 100, AutoReset = true, }; timer.Elapsed += UpdateOnTimerTick; timer.Start(); }
public IEnumerable <AuthorsGridViewModel> GetAllAuthors(Id volumeId) { VolumeSeries seriesForVolume = m_SeriesService.GetVolumeSeriesByVolumeId(volumeId); IEnumerable <AuthorWithType> seriesAuthors = (seriesForVolume != null) ? m_AuthorService.GetSeriesAuthors(seriesForVolume.SeriesId) : new List <AuthorWithType>(); IEnumerable <AuthorWithType> volumeAuthors = m_AuthorService.GetVolumeAuthors(volumeId); IEnumerable <AuthorWithType> bookAuthors = m_AuthorService.GetBookAuthors(volumeId); List <AuthorsGridViewModel> authorVms = new List <AuthorsGridViewModel>(); foreach (AuthorWithType author in seriesAuthors.Union(volumeAuthors).Union(bookAuthors)) { authorVms.Add( new AuthorsGridViewModel { Id = author.Id, Born = author.Born, Dead = author.Dead, Name = author.Name, Notes = author.Notes, AuthorType = author.AuthorType, ItemId = author.ItemId, } ); } return(authorVms); }
public void AttachVolumeToSeries(Id volumeId, Id seriesId) { VolumeSeries volumeSeries = new VolumeSeries { SeriesId = seriesId, VolumeId = volumeId, }; m_DBService.InsertOrUpdate(volumeSeries); }
// Methods private void ConstructSample() { SuspendLayout(); StockPane.PercentHeight = 75f; Pane pane = Panes.Add("VOL"); pane.PercentHeight = 25f; pane.YAxis.MinAuto = false; pane.YAxis.Min = 0.0; pane.PaneFrame.TitleBoxVisible = false; ResumeLayout(); var series = new VolumeSeries("Volume"); var random = new Random(); int num = random.Next(100, 150); DateTime date = DateTime.Today.AddDays(1.0); for (int i = 0; i < 100; i++) { int maxValue = num + random.Next(5, 0x15); int minValue = num - random.Next(5, 0x15); int num4 = random.Next(minValue, maxValue); int num5 = random.Next(0x186a0, 0x989680); if (date.DayOfWeek == DayOfWeek.Friday) { date = date.AddDays(3.0); } else if (date.DayOfWeek == DayOfWeek.Saturday) { date = date.AddDays(2.0); } else { date = date.AddDays(1.0); } StockSeries.Data.Add(num, maxValue, minValue, num4, date); series.Data.Add(num5); num += random.Next(-15, 0x15); } pane.Series.Add(series); var series2 = new LineSeries("MA 10"); series2.Data.SetDataArray(Formula.ExponentialMovingAverage(StockSeries.Data, 10)); StockPane.Series.Add(series2); FitChart(); }
public override void OnAppearing(object navigationContext) { base.OnAppearing(navigationContext); PlotModel = new PlotModel { Title = "Volume" }; var volumeSeries = new VolumeSeries { StrokeThickness = 2.0 }; volumeSeries.Items.Add(new OhlcvItem(1, 20, 4, 1, 1)); volumeSeries.Items.Add(new OhlcvItem(2, 10, 6, 1, 2)); volumeSeries.Items.Add(new OhlcvItem(3, 50, 3, 1, 0.5)); PlotModel.Series.Add(volumeSeries); }
public void InsertOrUpdateVolumeSeries(VolumeSeries volumeSeries) { m_DBService.InsertOrUpdate(volumeSeries); }
/// <summary> /// Creates the volume series. /// </summary> /// <returns>The volume series.</returns> /// <param name="title">Title.</param> /// <param name="style">Style.</param> /// <param name="n">N.</param> /// <param name="natural">If set to <c>true</c> natural.</param> /// <param name="transposed">If set to <c>true</c> transposed.</param> private static Example CreateVolumeSeries( string title, VolumeStyle style, int n = 10000, bool natural = false) { var pm = new PlotModel { Title = title }; var series = new VolumeSeries { PositiveColor = OxyColors.DarkGreen, NegativeColor = OxyColors.Red, PositiveHollow = false, NegativeHollow = false, VolumeStyle = style, Title = "VolumeSeries", }; // create bars foreach (var bar in OhlcvItemGenerator.MRProcess(n)) { series.Append(bar); } // create visible window var Istart = n - 200; var Iend = n - 120; var Xmin = series.Items[Istart].X; var Xmax = series.Items[Iend].X; // setup axes var timeAxis = new DateTimeAxis { Position = AxisPosition.Bottom, Minimum = Xmin, Maximum = Xmax }; var volAxis = new LinearAxis { Position = AxisPosition.Left, StartPosition = 0.0, EndPosition = 1.0, Minimum = natural ? double.NaN : 0, Maximum = natural ? double.NaN : 10000 }; switch (style) { case VolumeStyle.Combined: case VolumeStyle.Stacked: pm.Axes.Add(timeAxis); pm.Axes.Add(volAxis); break; case VolumeStyle.PositiveNegative: volAxis.Minimum = natural ? double.NaN : -10000; pm.Axes.Add(timeAxis); pm.Axes.Add(volAxis); break; } pm.Series.Add(series); var controller = new PlotController(); controller.UnbindAll(); controller.BindMouseDown(OxyMouseButton.Left, PlotCommands.PanAt); return(new Example(pm, controller)); }