예제 #1
0
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     series = new LineSeries("price changes")
     {
         LineColor = ColorLine,
         ShiftX = Period + 1
     };
     SeriesResult = new List<Series.Series> { series };
     EntitleIndicator();
 }
예제 #2
0
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     seriesRatio = new LineSeries("E-Ratio")
     {
         LineColor = Color.Blue,
         ShiftX = 1,
         MarkerSpanPoints = 2,
         MinPixelsBetweenMarkers = 10
     };
     SeriesResult = new List<Series.Series> { seriesRatio };
     // инициализируем индикатор
     EntitleIndicator();
 }
예제 #3
0
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     // инициализируем индикатор
     seriesRSI = new LineSeries(Name)
     {
         LineColor = LineColor,
         Transparent = true,
         ShiftX = 1,
         DrawShadow = DrawShadow,
         ShadowWidth = ShadowWidth,
         ShadowColor = Color.Gray,
         ShadowAlpha = ShadowAlpha,
     };
     seriesBound = new RegionSeries(Localizer.GetString("TitleRSIBorders")) { DrawAsFrame = true };
     SeriesResult = new List<Series.Series> { seriesRSI, seriesBound };
     EntitleIndicator();
 }
예제 #4
0
        public void Add(ChartControl chart, Pane ownerPane)
        {
            owner = chart;
            // инициализируем индикатор
            MainLine = new LineSeries(Name + " Main")
            {
                LineColor = LineColor1,
                Transparent = true,
                ShiftX = 1,
                DrawShadow = DrawShadow,
                ShadowWidth = ShadowWidth,
                ShadowColor = Color.Gray,
                ShadowAlpha = ShadowAlpha,
            };
            SignalLine = new LineSeries(Name + " Signal")
            {
                LineColor = LineColor2,
                Transparent = true,
                ShiftX = 1,
                DrawShadow = DrawShadow,
                ShadowWidth = ShadowWidth,
                ShadowColor = Color.Gray,
                ShadowAlpha = ShadowAlpha,
            };
            FastEMALine = new SeriesData();
            SlowEMALine = new SeriesData();

            SeriesResult = new List<Series.Series> { MainLine, SignalLine};
            EntitleIndicator();
        }
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     // инициализируем индикатор
     EntitleIndicator();
     seriesLine = new LineSeries(Name);
     SeriesResult = new List<Series.Series> { seriesLine };
     // цветовая схема
     ColorLine = IndicatorColorScheme.colorsLine[indicatorThemeIndex];
     ColorFill = IndicatorColorScheme.colorsFill[indicatorThemeIndex++];
     if (indicatorThemeIndex >= IndicatorColorScheme.PresetColorsCount)
         indicatorThemeIndex = 0;
 }
예제 #6
0
 // 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();
 }
예제 #7
0
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     // инициализируем индикатор
     seriesZigZag = new LineSeries(Localizer.GetString("TitleZigzag"))
     {
         Transparent = true,
         LineColor = lineColor,
         LineWidth = ((float)LineWidth),
         ShiftX = 1,
         DashPattern = new float[] { 3, 5 }
     };
     SeriesResult = new List<Series.Series> { seriesZigZag };
     EntitleIndicator();
 }
예제 #8
0
 public void Add(ChartControl chart, Pane ownerPane)
 {
     owner = chart;
     seriesK = new LineSeries("Stochastic")
     {
         LineColor = colorLineK,
         ShiftX = 1,
         Transparent = true
     };
     seriesD = new LineSeries("Stochastic MA")
     {
         LineColor = colorLineD,
         ShiftX = 1,
         LineDashStyle = DashStyle.Dot,
         Transparent = true
     };
     seriesBounds = new PartSeries("Stochastic Bounds") { LineStyle = LineStyle.Dot };
     SeriesResult = new List<Series.Series> { seriesK, seriesD, seriesBounds };
     EntitleIndicator();
 }
예제 #9
0
 private void BuildLineSeriesFromPivots(List<Cortege2<DateTime, float>> pivots, LineSeries targetSeries)
 {
     if (pivots.Count == 0) return;
     var curIndex = 0;
     var candles = owner.StockSeries.Data.Candles;
     if (candles.Count == 0) return;
     targetSeries.Data.Add(candles[0].close);
     foreach (var candle in candles)
     {
         var curLevel = candle.close;
         var candleDate = candle.timeOpen;
         var itemIndex = pivots.FindIndex(curIndex, p => p.a > candleDate);
         if (itemIndex < 0) break;
         if (itemIndex > 0)
         {
             var prevPivot = pivots[itemIndex - 1];
             if (prevPivot.a <= candleDate)
             {
                 curIndex = itemIndex;
                 curLevel = pivots[itemIndex - 1].b;
             }
         }
         targetSeries.Data.Add(curLevel);
     }
 }