Exemplo n.º 1
0
 public BotWhithTwoTimeFrameUi(BotWhithTwoTimeFrame bot)
 {
     InitializeComponent();
     _painter = new ChartPainter("chart", bot.StartProgram);
     _painter.StartPaintPrimeChart(HostChart, Rectangle);
     _bot = bot;
 }
Exemplo n.º 2
0
        /// <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]);
                }
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        private void paintChart(Graphics g)
        {
            g.Clear(Color.White);
            ChartPainter chartPainter = new ChartPainter();

            chartPainter.PrintCoordinateSystem(g);
            chartPainter.PaintChart(func, g);
            g.Dispose();
        }
Exemplo n.º 5
0
 public BotPanelChartUi(BotPanel panel)
 {
     InitializeComponent();
     _panel = panel;
     CreateTabs();
     TabControlBotsName.SelectionChanged += TabControlBotsName_SelectionChanged;
     _chart = new ChartPainter(panel.NameStrategyUniq);
     PaintActivTab(0);
 }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
0
// сервис

        /// <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;
        }
Exemplo n.º 8
0
        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);
                }
            }
        }
Exemplo n.º 9
0
// сервис

        /// <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;
        }
Exemplo n.º 10
0
        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]);
                }
            }
        }
Exemplo n.º 11
0
 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);
     }
 }
Exemplo n.º 12
0
        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);
                }
            }
        }
Exemplo n.º 13
0
        /// <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);
            }
        }
Exemplo n.º 14
0
 public TimelineSchedulerControl()
 {
     InitializeComponent();
     chart   = new TimelineChart(this);
     painter = new ChartPainter(this);
 }