public BotWhithTwoTimeFrameUi(BotWhithTwoTimeFrame bot) { InitializeComponent(); _painter = new ChartPainter("chart", bot.StartProgram); _painter.StartPaintPrimeChart(HostChart, Rectangle); _bot = bot; }
/// <summary> /// прорисовать паттерн на его индивидуальном чарте /// </summary> private void PaintSinglePattern(IPattern pattern, ChartPainter chart) { if (chart.GetChart().InvokeRequired) { chart.GetChart().Invoke(new Action <IPattern, ChartPainter>(PaintSinglePattern), pattern, chart); return; } chart.ClearDataPointsAndSizeValue(); chart.ClearSeries(); if (pattern.Type == PatternType.Candle) { chart.PaintSingleCandlePattern(((PatternCandle)pattern).GetInCandle()); } if (pattern.Type == PatternType.Volume) { chart.PaintSingleVolumePattern(((PatternVolume)pattern).GetInCandle()); } if (pattern.Type == PatternType.Indicators) { PatternIndicators pat = (PatternIndicators)pattern; for (int i = 0; pat.Indicators != null && i < pat.Indicators.Count; i++) { if (chart.IndicatorIsCreate(pat.Indicators[i].Name + "0") == false) { chart.CreateSeries(chart.GetChartArea(pat.Indicators[i].NameArea), pat.Indicators[i].TypeIndicator, pat.Indicators[i].NameSeries + "0"); } chart.ProcessIndicator(pat.Indicators[i]); } } }
public PatternTraderUi(PatternTrader bot) { InitializeComponent(); _bot = bot; _gridPatternsToOpen = new DataGridView(); _gridPatternsToOpen.MouseClick += _gridPatternsToOpen_MouseClick; _gridPatternsToOpen.CellValueChanged += _gridPatternsToOpen_CellValueChanged; _gridPatternsToClose = new DataGridView(); _gridPatternsToClose.MouseClick += _gridPatternsToClose_MouseClick; _gridPatternsToClose.CellValueChanged += _gridPatternsToClose_CellValueChanged; CreateGridPatternsGrid(_gridPatternsToOpen, HostGridPatternsToOpen); CreateGridPatternsGrid(_gridPatternsToClose, HostGridPatternToClose); _chartSingleOpenPattern = new ChartPainter("OpenSinglePattern"); _chartSingleOpenPattern.IsPatternChart = true; _chartSingleClosePattern = new ChartPainter("CloseSinglePattern"); _chartSingleClosePattern.IsPatternChart = true; _chartSingleOpenPattern.StartPaintPrimeChart(HostSinglePatternToOpen, new Rectangle()); _chartSingleClosePattern.StartPaintPrimeChart(HostSinglePatternToClose, new Rectangle()); InitializePrimeSettings(); InitializePattarnsToOpenTab(); InitializeTabClosePosition(); PaintGridPatternsToOpen(); PaintGridPatternsToClose(); PaintClosePattern(0); PaintOpenPattern(0); }
private void paintChart(Graphics g) { g.Clear(Color.White); ChartPainter chartPainter = new ChartPainter(); chartPainter.PrintCoordinateSystem(g); chartPainter.PaintChart(func, g); g.Dispose(); }
public BotPanelChartUi(BotPanel panel) { InitializeComponent(); _panel = panel; CreateTabs(); TabControlBotsName.SelectionChanged += TabControlBotsName_SelectionChanged; _chart = new ChartPainter(panel.NameStrategyUniq); PaintActivTab(0); }
public static void PaintChart(System.Drawing.Graphics g, System.Drawing.Rectangle r, FarPoint.Win.Spread.Appearance appearance, GridElement Element) { ChartPainter chartPainter = Element.Value as ChartPainter; chartPainter.UpdateDataSource(); IPainter Painter = chartPainter as IPainter; Image image = Painter.Paint(r.Width, r.Height); g.DrawImage(image, r.X, r.Y, r.Width, r.Height); }
// сервис /// <summary> /// Конструктор /// </summary> /// <param name="nameBoss">Имя робота которому принадлежит чарт</param> public ChartMaster(string nameBoss) { _name = nameBoss + "ChartMaster"; ChartCandle = new ChartPainter(nameBoss); ChartCandle.GetChart().Click += ChartMasterOneSecurity_Click; ChartCandle.LogMessageEvent += NewLogMessage; ChartCandle.ClickToIndexEvent += _chartCandle_ClickToIndexEvent; Load(); _canSave = true; }
void SubMenuItem_Click(object sender, EventArgs e) { Object value = null; ToolStripMenuItem MenuItem = sender as ToolStripMenuItem; if (MenuItem != null) { switch (MenuItem.Text) { case "数据列": value = new ReportCommon.DataColumn(); break; case "普通文本": value = new LiteralText(); break; case "公式": value = new Formula(); break; case "图表": value = new ChartPainter(); break; case "图片": value = new ReportCommon.Picture(); break; case "斜线": value = new Slash(); break; case "变量": value = new Variable(); break; } if (value != null) { ActiveSheet.ActiveCell.CellType = general; ReportElementEventArgs elementevent = new ReportElementEventArgs(); elementevent.Value = value; OnReportElementAdding(elementevent); } else { String msg = "当前版本不支持" + MenuItem.Text + "报表元素。"; MessageBox.Show(msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
// сервис /// <summary> /// Конструктор /// </summary> /// <param name="nameBoss">Имя робота которому принадлежит чарт</param> public ChartMaster(string nameBoss) { _name = nameBoss + "ChartMaster"; _chartCandle = new ChartPainter(nameBoss); _chartCandle.GetChart().Click += ChartMasterOneSecurity_Click; _chartCandle.LogMessageEvent += NewLogMessage; _reloadState = ChartReloadState.OneSecond; Load(); _canSave = true; }
private void PaintActivTab(int tabNum) { if (_lastTabNum == tabNum) { return; } _lastTabNum = tabNum; if (_chart != null) { _chart.StopPaint(); _chart.ClearDataPointsAndSizeValue(); _chart.Delete(); } if (tabNum < _panel.TabsSimple.Count) { _chart = new ChartPainter(_panel.NameStrategyUniq); _chart.ProcessCandles(_panel.TabsSimple[tabNum].CandlesFinishedOnly); _chart.StartPaintPrimeChart(ChartHostPanel, RectChart); _chart.ProcessPositions(_panel.TabsSimple[tabNum].PositionsAll); for (int i = 0; _panel.TabsSimple[tabNum].Indicators != null && i < _panel.TabsSimple[tabNum].Indicators.Count; i++) { ChartArea area = _chart.CreateArea("Area" + _panel.TabsSimple[tabNum].Indicators[i].Name, 15); _panel.TabsSimple[tabNum].Indicators[i].NameSeries = _chart.CreateSeries(area, _panel.TabsSimple[tabNum].Indicators[i].TypeIndicator, _panel.TabsSimple[tabNum].Indicators[i].NameSeries); _chart.ProcessIndicator(_panel.TabsSimple[tabNum].Indicators[i]); } } else { tabNum = tabNum - _panel.TabsSimple.Count; _chart = new ChartPainter(_panel.NameStrategyUniq); _chart.ProcessCandles(_panel.TabsIndex[tabNum].Candles); _chart.StartPaintPrimeChart(ChartHostPanel, RectChart); for (int i = 0; _panel.TabsIndex[tabNum].Indicators != null && i < _panel.TabsIndex[tabNum].Indicators.Count; i++) { ChartArea area = _chart.CreateArea("Area" + _panel.TabsIndex[tabNum].Indicators[i].Name, 15); _panel.TabsIndex[tabNum].Indicators[i].NameSeries = _chart.CreateSeries(area, _panel.TabsIndex[tabNum].Indicators[i].TypeIndicator, _panel.TabsIndex[tabNum].Indicators[i].Name + i); _chart.ProcessIndicator(_panel.TabsIndex[tabNum].Indicators[i]); } } }
public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor) { if (value is ChartPainter) { ChartPainter chartPainter = value as ChartPainter; IPainter Painter = chartPainter as IPainter; Image image = Painter.Paint(r.Width, r.Height); g.DrawImage(image, r.X, r.Y, r.Width, r.Height); } else { appearance.HorizontalAlignment = CellHorizontalAlignment.Center; appearance.VerticalAlignment = CellVerticalAlignment.Center; base.PaintCell(g, r, appearance, Resource.图表类型, isSelected, isLocked, zoomFactor); } }
void SubMenuItem_1_Click(object sender, EventArgs e) { Object value = null; ToolStripMenuItem MenuItem = sender as ToolStripMenuItem; if (MenuItem != null) { switch (MenuItem.Text) { case "图表": FloatElement Element = new FloatElement(); ActiveSheet.AddShape(Element); Element.setName(string.Format("图表_{0}", ActiveSheet.DrawingContainer.ContainedObjects.Count)); value = new ChartPainter(); Element.setValue(value); Rectangle RowHeaderRectangle = FpSpread.GetRowHeaderRectangle(0); Rectangle ColumnHeaderRectangle = FpSpread.GetColumnHeaderRectangle(0); Point point = new Point(Element.Left + RowHeaderRectangle.Width, Element.Top + ColumnHeaderRectangle.Height); CellRange range = FpSpread.GetCellFromPixel(0, 0, point.X, point.Y); Rectangle r = FpSpread.GetCellRectangle(0, 0, range.Row, range.Column); Element.setRow(range.Row); Element.setColumn(range.Column); Element.setLeftDistance(point.X - r.Left); Element.setTopDistance(point.Y - r.Top); break; } if (value == null) { String msg = "当前版本不支持" + MenuItem.Text + "报表浮动元素。"; MessageBox.Show(msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
/// <summary> /// загрузить из строки сохранения /// </summary> public void Load(string saveStr) { string[] array = saveStr.Split('?'); _name = array[0]; // разбираем паттерны на вход string[] patternsToEnter = array[1].Split('%'); for (int i = 0; i < patternsToEnter.Length - 1; i += 1) { LoadPattern(patternsToEnter[i], PatternsToOpen); } // разбираем паттерны на выход string[] patternsToExit = array[2].Split('%'); for (int i = 0; i < patternsToExit.Length - 1; i += 1) { LoadPattern(patternsToExit[i], PatternsToClose); } IsOn = Convert.ToBoolean(array[3]); Enum.TryParse(array[4], out SideInter); StopOrderIsOn = Convert.ToBoolean(array[5]); ProfitOrderIsOn = Convert.ToBoolean(array[6]); ExitFromSomeCandlesIsOn = Convert.ToBoolean(array[7]); TrailingStopIsOn = Convert.ToBoolean(array[8]); StopOrderValue = Convert.ToInt32(array[9]); ProfitOrderValue = Convert.ToInt32(array[10]); TreilingStopValue = Convert.ToInt32(array[11]); ExitFromSomeCandlesValue = Convert.ToInt32(array[12]); SecurityToInter = array[13]; WeigthToInter = Convert.ToDecimal(array[14]); WeigthToExit = Convert.ToDecimal(array[15]); WeigthToTempPattern = Convert.ToDecimal(array[16]); Enum.TryParse(array[17], out PlaceToUsePattern); ExpandToTempPattern = Convert.ToDecimal(array[18]); MiningMo = Convert.ToDecimal(array[19]); MiningDealsCount = Convert.ToInt32(array[20]); MiningProfit = Convert.ToDecimal(array[21]); DataServer = new OsMinerServer(Name); DataServer.CandleSeriesChangeEvent += _dataServer_CandleSeriesChangeEvent; _chart = new ChartMaster(_name); _chart.ClickToIndexEvent += _chart_ClickToIndexEvent; _chartTempPattern = new ChartPainter(_name + "TempPattern"); _chartTempPattern.IsPatternChart = true; _chartSingleOpenPattern = new ChartPainter(_name + "OpenSinglePattern"); _chartSingleOpenPattern.IsPatternChart = true; _chartSingleClosePattern = new ChartPainter(_name + "CloseSinglePattern"); _chartSingleClosePattern.IsPatternChart = true; if (PatternsToOpen.Count != 0) { PaintClosePattern(0); } if (PatternsToClose.Count != 0) { PaintOpenPattern(0); } }
public TimelineSchedulerControl() { InitializeComponent(); chart = new TimelineChart(this); painter = new ChartPainter(this); }