/// <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]); } } }
public BotWhithTwoTimeFrameUi(BotWhithTwoTimeFrame bot) { InitializeComponent(); _painter = new ChartCandlePainter("chart", bot.StartProgram); _painter.StartPaintPrimeChart(HostChart, Rectangle); _bot = bot; ButtonPaint.Content = OsLocalization.Trader.Label133; }
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; }
// сервис /// <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]); } } }