Esempio n. 1
0
        /// <summary>
        /// draw a pattern on his individual chart
        /// прорисовать паттерн на его индивидуальном чарте
        /// </summary>
        private void PaintSinglePattern(IPattern pattern, ChartCandlePainter chart)
        {
            if (chart.GetChart().InvokeRequired)
            {
                chart.GetChart().Invoke(new Action <IPattern, ChartCandlePainter>(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]);
                }
            }
        }
Esempio n. 2
0
 public BotWhithTwoTimeFrameUi(BotWhithTwoTimeFrame bot)
 {
     InitializeComponent();
     _painter = new ChartCandlePainter("chart", bot.StartProgram);
     _painter.StartPaintPrimeChart(HostChart, Rectangle);
     _bot = bot;
     ButtonPaint.Content = OsLocalization.Trader.Label133;
 }
Esempio 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 ChartCandlePainter("OpenSinglePattern", bot.StartProgram);
            _chartSingleOpenPattern.IsPatternChart = true;
            _chartSingleClosePattern = new ChartCandlePainter("CloseSinglePattern", bot.StartProgram);
            _chartSingleClosePattern.IsPatternChart = true;

            _chartSingleOpenPattern.StartPaintPrimeChart(HostSinglePatternToOpen, new Rectangle());
            _chartSingleClosePattern.StartPaintPrimeChart(HostSinglePatternToClose, new Rectangle());

            InitializePrimeSettings();
            InitializePattarnsToOpenTab();
            InitializeTabClosePosition();

            PaintGridPatternsToOpen();
            PaintGridPatternsToClose();
            PaintClosePattern(0);
            PaintOpenPattern(0);

            Title = OsLocalization.Trader.Label114;
            LabelRegime.Content                     = OsLocalization.Trader.Label115;
            LabelSet.Content                        = OsLocalization.Trader.Label116;
            LabelPatternGroup.Content               = OsLocalization.Trader.Label117;
            LabelMaximumPositions.Content           = OsLocalization.Trader.Label118;
            LabelVolume.Content                     = OsLocalization.Trader.Label30;
            TabItemOpeningPosition.Header           = OsLocalization.Trader.Label119;
            LabelPatterns.Content                   = OsLocalization.Trader.Label120;
            LabelSide.Content                       = OsLocalization.Trader.Label121;
            LabelEntryWeight.Content                = OsLocalization.Trader.Label122;
            LabelSlippage.Content                   = OsLocalization.Trader.Label92;
            TabItemClosePosition.Header             = OsLocalization.Trader.Label100;
            CheckBoxStopOrderIsOn.Content           = OsLocalization.Trader.Label123;
            CheckBoxProfitOrderIsOn.Content         = OsLocalization.Trader.Label124;
            CheckBoxExitFromSomeCandlesIsOn.Content = OsLocalization.Trader.Label125;
            CheckBoxTrailingStopIsOn.Content        = OsLocalization.Trader.Label126;

            LabelSlippage1.Content = OsLocalization.Trader.Label92;
            LabelSlippage2.Content = OsLocalization.Trader.Label92;
            LabelSlippage3.Content = OsLocalization.Trader.Label92;
            LabelSlippage4.Content = OsLocalization.Trader.Label92;
            LabelSlippageExitByPatterns.Content = OsLocalization.Trader.Label127;
            LabelWeightForExit.Content          = OsLocalization.Trader.Label128;
        }
Esempio n. 4
0
// сервис

        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="nameBoss">Имя робота которому принадлежит чарт</param>
        /// <param name="startProgram">программа создавшая класс</param>
        public ChartCandleMaster(string nameBoss, StartProgram startProgram)
        {
            _name         = nameBoss + "ChartMaster";
            _startProgram = startProgram;
            ChartCandle   = new ChartCandlePainter(nameBoss, startProgram);
            ChartCandle.GetChart().Click += ChartMasterOneSecurity_Click;
            ChartCandle.LogMessageEvent      += NewLogMessage;
            ChartCandle.ClickToIndexEvent    += _chartCandle_ClickToIndexEvent;
            ChartCandle.SizeAxisXChangeEvent += ChartCandle_SizeAxisXChangeEvent;
            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 ChartCandlePainter(_panel.NameStrategyUniq, _panel.StartProgram);
                _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 ChartCandlePainter(_panel.NameStrategyUniq, _panel.StartProgram);
                _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]);
                }
            }
        }