Пример #1
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var newNode = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("SpanWithText"));

            newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            var atr = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("start"));

            atr.Value = StartIndex.ToString();

            atr       = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("end"));
            atr.Value = EndIndex.ToString();

            atr       = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("price"));
            atr.Value = Price.ToStringUniform();

            atr       = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("tstLeft"));
            atr.Value = TextLeft;

            atr       = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("tstRight"));
            atr.Value = TextRight;

            if (!string.IsNullOrEmpty(Name))
            {
                atr       = newNode.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("name"));
                atr.Value = Name;
            }
        }
Пример #2
0
 public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
 {
     if (itemNode.Attributes["magic"] != null)
     {
         Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
     }
     if (itemNode.Attributes["start"] != null)
     {
         StartIndex = itemNode.Attributes["start"].Value.ToInt();
     }
     if (itemNode.Attributes["end"] != null)
     {
         EndIndex = itemNode.Attributes["end"].Value.ToInt();
     }
     if (itemNode.Attributes["price"] != null)
     {
         Price = itemNode.Attributes["price"].Value.ToFloatUniform();
     }
     if (itemNode.Attributes["tstLeft"] != null)
     {
         TextLeft = itemNode.Attributes["tstLeft"].Value;
     }
     if (itemNode.Attributes["tstRight"] != null)
     {
         TextRight = itemNode.Attributes["TextRight"].Value;
     }
 }
Пример #3
0
 public override string ActivateScript(CandleChartControl chart, PointD worldCoords)
 {
     this.chart = chart;
     startTime  = chart.chart.StockSeries.GetCandleOpenTimeByIndex((int)worldCoords.X);
     CalcStatistics();
     return(string.Empty);
 }
Пример #4
0
        public ChartCommentEditDialog(ChartComment obj, CandleChartControl chart) : this()
        {
            comment = obj;//new ChartComment(); ChartComment.Copy(comment, obj);

            // отобразить содержание полей
            tbText.Text = comment.Text;
            btnColorPicker.BackColor         = comment.ColorText;
            tbText.ForeColor                 = comment.ColorText;
            tbText.BackColor                 = chart.chart.BackColor;
            cbShowArrow.Checked              = !comment.HideArrow;
            cbShowFrame.Checked              = comment.DrawFrame;
            btnColorLine.ForeColor           = comment.Color;
            btnColorFill.ForeColor           = comment.ColorFill;
            tbMagic.Text                     = comment.Magic.ToString();
            transparencyControl.Transparency = comment.FillTransparency;

            // настройки выпадающих списков
            //cbTextStyle.SelectedIndex = SeriesComment.FontBold
            var patterns = new CommentaryPatternsList().GetStandardValues();

            if (patterns == null)
            {
                return;
            }
            var items = new object[patterns.Count];

            patterns.CopyTo(items, 0);
            cbTemplates.Items.AddRange(items);
        }
Пример #5
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("Asterisk"));

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Name")).Value = Name;

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Text")).Value  = Text;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Sign")).Value  = Sign;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ColorLine")).Value = ColorLine.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ColorFill")).Value = ColorFill.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ColorText")).Value = ColorText.ToArgb().ToString();

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Price")).Value = Price.ToString(CultureProvider.Common);
            if (DateStart.HasValue)
            {
                node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("PivotTime")).Value =
                    DateStart.Value.ToString("ddMMyyyy HHmmss", CultureProvider.Common);
            }
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Shape")).Value        = Shape.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Transparency")).Value =
                Transparency.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("TransparencyText")).Value =
                TransparencyText.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Radius")).Value =
                Radius.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();
        }
        public override string ActivateScript(CandleChartControl chart, PointD worldCoords)
        {
            this.chart            = chart;
            scriptActivatedCoords = worldCoords;

            // найти робота / роботов на данный тикер / ТФ
            var robots = MainForm.Instance.RobotFarm.GetRobotCopies();

            robots = robots.Where(r => r.Graphics.Any(g => g.a == chart.chart.Symbol && g.b == chart.chart.Timeframe))
                     .ToList();
            if (robots.Count == 0)
            {
                return("Нет роботов для " + chart.Symbol + ":" + chart.Timeframe);
            }
            selectedBot = robots[0];
            // если роботов несколько - предложить пользователю выбрать интересующего
            if (robots.Count > 1)
            {
                object selectedRobot;
                string inputText;

                if (!Dialogs.ShowComboDialog("Укажите робота",
                                             robots.Cast <object>().ToList(), out selectedRobot,
                                             out inputText))
                {
                    return("робот не выбран из списка");
                }
                selectedBot = (BaseRobot)selectedRobot;
            }

            ShowRobotDataOnChart();

            return("");
        }
Пример #7
0
        /// <summary>
        /// поставить отметку на графике
        /// </summary>
        private void ShowPriceOnChart(CandleChartControl chart, PointD worldCoords)
        {
            var text = PricePoint == PricePointType.A ? "A" : "B";
            var name = "ScriptSetFiboMark" + text;

            // удалить старую отметку с графика
            int index;

            chart.seriesAsteriks.FindObject(a => a.Name == name, out index);
            if (index >= 0)
            {
                chart.seriesAsteriks.RemoveObjectByNum(index);
            }

            // добавить новую отметку
            var mark = new AsteriskTooltip(name, text)
            {
                Price       = (float)worldCoords.Y,
                CandleIndex = (int)(Math.Round(worldCoords.X)),
                ColorLine   = chart.chart.visualSettings.SeriesForeColor,
                Sign        = text
            };

            mark.ColorText = mark.ColorLine;
            mark.ColorFill = chart.chart.visualSettings.ChartBackColor;
            mark.Shape     = AsteriskTooltip.ShapeType.Звезда;

            chart.seriesAsteriks.data.Add(mark);
        }
Пример #8
0
 public override void AdjustColorScheme(CandleChartControl chart)
 {
     foreach (var obj in data)
     {
         obj.AjustColorScheme(chart);
     }
 }
 public ChooseIndicatorDialog(CandleChartControl owner)
     : this()
 {
     this.owner = owner;
     SetupTreeGrid();
     ChangeView(true);
 }
Пример #10
0
        private void BtnUpdateSeriesClick(object sender, EventArgs e)
        {
            if (panelSeriesParams.Controls.Count == 0)
            {
                return;
            }
            var node = treeSeries.SelectedNode;

            if (node == null)
            {
                return;
            }

            // изменить настройки для серии
            foreach (GenericObjectEditor ctrl in panelSeriesParams.Controls)
            {
                var propInf = (PropertyInfo)ctrl.Tag;
                try
                {
                    propInf.SetValue(null, ctrl.PropertyValue, null);
                }
                catch (Exception ex)
                {
                    Logger.ErrorFormat("Update series value ({0}) error: {1}",
                                       ctrl.Title, ex);
                    MessageBox.Show(string.Format(Localizer.GetString("MessageValueNotRecognizedFmt"), ctrl.Title));
                }
            }

            // сохранить настройки
            var nodeXml = ToolSettingsStorageFile.LoadOrCreateNode(ToolSettingsStorageFile.NodeNameSeries);

            CandleChartControl.SaveSeriesSettingsInXml(nodeXml);
            ToolSettingsStorageFile.SaveXml(nodeXml.OwnerDocument);
        }
Пример #11
0
        public SaveChartTemplate(CandleChartControl chart)
        {
            InitializeComponent();

            Localizer.LocalizeControl(this);
            this.chart = chart;
        }
        private static Series.Series GetOuterSeries(CandleChartControl chart,
                                                    string seriesFullName)
        {
            if (string.IsNullOrEmpty(seriesFullName))
            {
                return(null);
            }
            // получить серии от графика
            if (seriesFullName == Localizer.GetString("TitleCourse"))
            {
                return(chart.chart.StockSeries);
            }

            var nameParts = seriesFullName.Split(new[] { Separators.IndiNameDelimiter[0] },
                                                 StringSplitOptions.RemoveEmptyEntries);

            if (nameParts.Length < 2)
            {
                Logger.InfoFormat("GetOuterSeries (chart {0}, {1}): series \"{0}\" is bad-formatted",
                                  chart.Symbol, chart.Timeframe.ToString(), seriesFullName);
                return(null);
            }
            var indiName   = nameParts[0];
            var seriesName = nameParts[1];
            var indi       = chart.indicators.FirstOrDefault(i => i.UniqueName == indiName);

            if (indi == null)
            {
                return(null);
            }
            // найти серию
            return(indi.SeriesResult.FirstOrDefault(s => s.Name == seriesName));
        }
Пример #13
0
        /// <summary>
        /// уточнить цену
        /// </summary>
        private float RefinePrice(CandleChartControl chart, PointD worldCoords)
        {
            var price = (float)worldCoords.Y;

            if (RefineType == PriceRefineType.КакЕсть)
            {
                return(price);
            }

            var candleIndex = (int)(worldCoords.X + 0.5);

            if (candleIndex < 0 || candleIndex >= chart.chart.StockSeries.DataCount)
            {
                return(price);
            }
            var candle = chart.chart.StockSeries.Data.Candles[candleIndex];

            if (RefineType == PriceRefineType.Закрытия)
            {
                return(candle.close);
            }

            var deltas = new []
            {
                Math.Abs(candle.open - price), Math.Abs(candle.high - price),
                Math.Abs(candle.low - price), Math.Abs(candle.close - price)
            };

            var minIndex = deltas.IndexOfMin();

            return(minIndex == 0 ? candle.open : minIndex == 1 ? candle.high : minIndex == 2 ? candle.low : candle.close);
        }
Пример #14
0
        public override string ActivateScript(CandleChartControl chart, PointD worldCoords)
        {
            if (!AccountStatus.Instance.isAuthorized)
            {
                MessageBox.Show("Не авторизован");
                return("Не авторизован");
            }

            var accountId   = AccountStatus.Instance.accountID;
            var numStepsMax = (VolumeMax - VolumeMin) / VolumeStep;
            var rand        = new Random();
            var sb          = new StringBuilder();

            // закрытые сделки
            var closedOrders = MakeClosedOrders(chart, accountId, rand, numStepsMax);

            // SQL по закрытым сделкам
            MakeClosedOrdersSQL(closedOrders, accountId, sb);

            // найти все отметки на графике
            // и по ним сбацать "сделки"
            var positions = MakeMarketOrders(chart, accountId, rand, numStepsMax);

            // слепить SQL по открытым позам
            MakeMarketOrdersSQL(positions, accountId, sb);

            if (sb.Length > 0)
            {
                Clipboard.SetText(sb.ToString());
            }
            return((positions.Count + closedOrders.Count) + " сделок скопировано в буфер обмена");
        }
Пример #15
0
        private List <MarketOrder> MakeMarketOrders(CandleChartControl chart, int accountId, Random rand, int numStepsMax)
        {
            var positions = new List <MarketOrder>();

            foreach (var mark in chart.seriesAsteriks.data)
            {
                var side = mark.Shape == AsteriskTooltip.ShapeType.СтрелкаВниз
                               ? -1
                               : mark.Shape == AsteriskTooltip.ShapeType.СтрелкаВверх ? 1 : 0;
                if (side == 0)
                {
                    continue;
                }
                var pos = new MarketOrder
                {
                    AccountID  = accountId,
                    Side       = side,
                    TimeEnter  = mark.DateStart.Value,
                    State      = PositionState.Opened,
                    PriceEnter = mark.Price,
                    Symbol     = chart.Symbol,
                    Volume     = VolumeMin
                };
                // посчитать объем
                if (numStepsMax > 0)
                {
                    pos.Volume += rand.Next(numStepsMax + 1) * VolumeStep;
                }
                positions.Add(pos);
            }
            return(positions);
        }
Пример #16
0
        public override string ActivateScript(CandleChartControl chart, PointD worldCoords)
        {
            var dlg = new CalculatorForm(chart, worldCoords);

            dlg.ShowDialog();
            return(string.Empty);
        }
Пример #17
0
        public void AjustColorScheme(CandleChartControl chart)
        {
            var clBack = chart.chart.visualSettings.ChartBackColor;

            color     = ChartControl.ChartVisualSettings.AdjustColor(color, clBack);
            colorText = ChartControl.ChartVisualSettings.AdjustColor(colorText, clBack);
        }
Пример #18
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node     = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("ProjectionPair"));
            var attrName = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Name"));

            attrName.Value = Name;

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("isCorrection")).Value =
                isCorrection.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("isExtension")).Value =
                isExtension.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("hideFarParts")).Value =
                hideFarParts.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("markers")).Value =
                ((int)Markers).ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Color")).Value = color.ToArgb().ToString();
            // расширение - коррекция
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("LevelsProj")).Value = LevelsProj;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("LevelsCorr")).Value = LevelsCorr;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("HideLine")).Value   = HideLine.ToString();

            foreach (var point in points)
            {
                var nodePoint = node.AppendChild(parentNode.OwnerDocument.CreateElement("Point"));

                var time      = owner.chart.StockSeries.GetCandleOpenTimeByIndex(point.a);
                var attrIndex = nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Time"));
                attrIndex.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);

                var attrPrice = nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Price"));
                attrPrice.Value = point.b.ToString(CultureProvider.Common);
            }
        }
        public ChartCommentEditDialog(ChartComment obj, CandleChartControl chart)
            : this()
        {
            comment = obj;//new ChartComment(); ChartComment.Copy(comment, obj);

            // отобразить содержание полей
            tbText.Text = comment.Text;
            btnColorPicker.BackColor = comment.ColorText;
            tbText.ForeColor = comment.ColorText;
            tbText.BackColor = chart.chart.BackColor;
            cbShowArrow.Checked = !comment.HideArrow;
            cbShowFrame.Checked = comment.DrawFrame;
            btnColorLine.ForeColor = comment.Color;
            btnColorFill.ForeColor = comment.ColorFill;
            tbMagic.Text = comment.Magic.ToString();
            transparencyControl.Transparency = comment.FillTransparency;

            // настройки выпадающих списков
            //cbTextStyle.SelectedIndex = SeriesComment.FontBold
            var patterns = new CommentaryPatternsList().GetStandardValues();
            if (patterns == null)
                return;
            var items = new object[patterns.Count];
            patterns.CopyTo(items, 0);
            cbTemplates.Items.AddRange(items);
        }
Пример #20
0
        public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            if (itemNode.Attributes["Name"] != null)
            {
                Name = itemNode.Attributes["Name"].Value;
            }
            if (itemNode.Attributes["Color"] != null)
            {
                color = Color.FromArgb(int.Parse(itemNode.Attributes["Color"].Value));
            }

            if (itemNode.Attributes["isCorrection"] != null)
            {
                isCorrection = bool.Parse(itemNode.Attributes["isCorrection"].Value);
            }
            if (itemNode.Attributes["isExtension"] != null)
            {
                isExtension = bool.Parse(itemNode.Attributes["isExtension"].Value);
            }
            if (itemNode.Attributes["hideFarParts"] != null)
            {
                hideFarParts = bool.Parse(itemNode.Attributes["hideFarParts"].Value);
            }
            if (itemNode.Attributes["magic"] != null)
            {
                Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
            }

            if (itemNode.Attributes["markers"] != null)
            {
                Markers = (MarkerPlacement)(itemNode.Attributes["hideFarParts"].Value.ToIntSafe() ?? 0);
            }

            // расширение - коррекция
            if (itemNode.Attributes["LevelsProj"] != null)
            {
                LevelsProj = itemNode.Attributes["LevelsProj"].Value;
            }
            if (itemNode.Attributes["LevelsCorr"] != null)
            {
                LevelsCorr = itemNode.Attributes["LevelsCorr"].Value;
            }
            if (itemNode.Attributes["HideLine"] != null)
            {
                HideLine = itemNode.Attributes["HideLine"].Value.ToBoolSafe() ?? false;
            }

            foreach (XmlElement pointNode in itemNode.ChildNodes)
            {
                var timeStr = pointNode.Attributes["Time"].Value;
                var time    = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
                var index   = owner.chart.StockSeries.GetIndexByCandleOpen(time);
                var price   = pointNode.Attributes["Price"].Value.ToFloatUniform();
                points.Add(new Cortege2 <int, float> {
                    a = index, b = price
                });
            }
            CalculateProjections();
        }
Пример #21
0
        public override IChartInteractiveObject LoadObject(XmlElement objectNode, CandleChartControl owner, bool trimObjectsOutOfHistory = false)
        {
            var obj = new FiboSpan(this);

            obj.LoadFromXML(objectNode, owner);
            data.Add(obj);
            return(obj);
        }
Пример #22
0
        public override IChartInteractiveObject LoadObject(XmlElement objectNode, CandleChartControl owner, bool trimObjectsOutOfHistory = false)
        {
            var obj = new TurnBar(new List <int>(), true, Chart);

            obj.LoadFromXML(objectNode, owner);
            barsKey.Add(obj);
            return(obj);
        }
Пример #23
0
        public ApplyChartTemplate(CandleChartControl candleChartControl)
        {
            InitializeComponent();

            Localizer.LocalizeControl(this);
            candleChart = candleChartControl;
            symbol      = candleChartControl.Symbol;
            LoadTemplateNames();
        }
Пример #24
0
        public CandleMenuWindow(CandleChartControl ownerChart, int candleIndex)
        {
            InitializeComponent();

            this.ownerChart  = ownerChart;
            this.candleIndex = candleIndex;
            SetupChart();
            ShowCandleData();
        }
Пример #25
0
        public void AjustColorScheme(CandleChartControl chart)
        {
            var clBack = chart.chart.visualSettings.ChartBackColor;

            colorLine = ChartControl.ChartVisualSettings.AdjustColor(colorLine, clBack);
            colorText = ChartControl.ChartVisualSettings.AdjustColor(colorText, clBack);
            colorFill = ChartControl.ChartVisualSettings.AdjustColor(colorFill,
                                                                     chart.chart.visualSettings.SeriesForeColor);
        }
Пример #26
0
        public CandleMenuWindow(CandleChartControl ownerChart, int candleIndex)
        {
            InitializeComponent();

            this.ownerChart = ownerChart;
            this.candleIndex = candleIndex;
            SetupChart();
            ShowCandleData();
        }
Пример #27
0
        private void AddScriptsToChart(CandleChartControl chart)
        {
            var allScripts   = ScriptManager.Instance.GetScripts();
            var chartScripts = allScripts.Where(s => s.ScriptTarget == TerminalScript.TerminalScriptTarget.График ||
                                                s.ScriptTarget == TerminalScript.TerminalScriptTarget.Тикер);
            var menuTitles = chartScripts.Select(s => s.Title).ToList();
            var menuTags   = chartScripts.Cast <object>().ToList();

            chart.SetupScriptMenu(menuTitles, menuTags);
        }
Пример #28
0
        public ChartForm()
        {
            InitializeComponent();

            Localizer.LocalizeControl(this);
            CandleChartControl.ResetControlTags(this);
            chart.UniqueId = Guid.NewGuid().ToString();
            chart.updateTickersCacheForRobots = MainForm.Instance.UpdateTickersCacheForRobots;
            panesTabCtrl.Show();
        }
Пример #29
0
        private List <MarketOrder> MakeClosedOrders(CandleChartControl chart, int accountId, Random rand, int numStepsMax)
        {
            var positions = new List <MarketOrder>();

            foreach (var mark in chart.seriesMarker.data)
            {
                var side = (int)mark.Side;
                if (mark.exitPair == null)
                {
                    continue;
                }

                var pos = new MarketOrder
                {
                    AccountID  = accountId,
                    Side       = side,
                    TimeEnter  = mark.DateStart.Value,
                    State      = PositionState.Closed,
                    ExitReason = PositionExitReason.Closed,
                    PriceEnter = (float)mark.Price,
                    Symbol     = chart.Symbol,
                    Volume     = VolumeMin
                };

                // посчитать объем
                if (numStepsMax > 0)
                {
                    pos.Volume += rand.Next(numStepsMax + 1) * VolumeStep;
                }

                // найти отметку выхода
                var exitMarkId = mark.exitPair.Value;
                var exitMarker = chart.seriesMarker.data.First(m => m.id == exitMarkId);

                pos.PriceExit = (float)exitMarker.Price - DalSpot.Instance.GetDefaultSpread(pos.Symbol) * pos.Side;
                pos.TimeExit  = exitMarker.DateStart.Value;

                // посчитать результат в пунктах, валюте депозита и тд.
                var profitCounter = pos.Side * (pos.PriceExit.Value - pos.PriceEnter) * pos.Volume;
                var profitDepo    = profitCounter;
                if (pos.Symbol.StartsWith("USD"))
                {
                    profitDepo = profitCounter / pos.PriceExit.Value;
                }
                var profitPoints = DalSpot.Instance.GetPointsValue(pos.Symbol, pos.Side * (pos.PriceExit.Value - pos.PriceEnter));

                pos.ResultDepo   = profitDepo;
                pos.ResultPoints = profitPoints;
                pos.ResultDepo   = profitDepo;
                pos.ResultBase   = profitCounter;

                positions.Add(pos);
            }
            return(positions);
        }
Пример #30
0
        private DateTime?GetTimeByWorldCoord(CandleChartControl chart, PointD worldCoords)
        {
            var candleIndex = (int)(worldCoords.X + 0.5);

            if (candleIndex < 0 || candleIndex >= chart.chart.StockSeries.DataCount)
            {
                return(null);
            }
            var candle = chart.chart.StockSeries.Data.Candles[candleIndex];

            return(candle.timeClose.AddMinutes(2));
        }
Пример #31
0
        public CalculatorForm(CandleChartControl chart, PointD worldCoords) : this()
        {
            this.chart       = chart;
            this.worldCoords = worldCoords;
            var time  = chart.chart.StockSeries.GetCandleOpenTimeByIndex((int)worldCoords.X);
            var price = worldCoords.Y;

            dpTimeCalc.Value    = time;
            dpTimeExpires.Value = time.AddMinutes(chart.Timeframe.TotalMinutes * 200);
            tbPriceAtTime.Text  = price.ToStringUniformPriceFormat(true);
            tbStrikePrice.Text  = tbPriceAtTime.Text;
        }
        public override string ActivateScript(CandleChartControl chart, PointD worldCoords)
        {
            this.chart = chart;
            pointsSum.Clear();
            pointCost = DalSpot.Instance.GetPointsValue(chart.Symbol, 1f);
            PlaceMarkers();
            // подбить результат
            var avgPoints = pointsSum.Count == 0 ? 0 : pointsSum.Average();
            var sumPoints = pointsSum.Sum();

            return($"{sumPoints:F1} пунктов всего, в среднем {avgPoints:F1}");
        }
Пример #33
0
        public void GetIndexByCandleOpen()
        {
            var candleChartControl = new CandleChartControl
            {
                Timeframe = new BarSettings {
                    Intervals = new List <int> {
                        1
                    }, Title = "M1"
                }
            };
            var chartControl = new ChartControl
            {
                Owner     = candleChartControl,
                Timeframe = new BarSettings {
                    Intervals = new List <int> {
                        1
                    }, Title = "M1"
                }
            };

            stockSeries.Owner = new Pane("Pane", chartControl);

            foreach (var date in trueDate)
            {
                Assert.AreEqual(date.Key, stockSeries.GetIndexByCandleOpen(date.Value), "not a correct value for " + date.Value);
            }

            foreach (var date in fallDate)
            {
                Assert.AreNotEqual(date.Key, stockSeries.GetIndexByCandleOpen(date.Value), "not a correct value for " + date.Value);
            }

            stockSeries.Data.Clear();
            Assert.AreEqual(0, stockSeries.GetIndexByCandleOpen(new DateTime(2013, 9, 30, 1, 8, 0)), "must be 0 for 2013/9/30  01:08:00  after 'Clear()'");

            stockSeries.Data.Add(0, 0, 0, 0, new DateTime(2013, 10, 30, 1, 8, 0));
            Assert.AreEqual(0, stockSeries.GetIndexByCandleOpen(new DateTime(2013, 9, 30, 1, 8, 0)), "must be 0 for 2013/9/30  01:08:00");

            Assert.AreNotEqual(0, stockSeries.GetIndexByCandleOpen(new DateTime(2014, 11, 30, 1, 8, 0)), "must be !0 for 2013/11/30  01:08:00");

            // У первой свечи время закрытия сейчас не задано.
            stockSeries.Data.Add(0, 0, 0, 0, new DateTime(2013, 10, 30, 1, 9, 0));
            stockSeries.Data.Candles.Last().timeClose = new DateTime(2013, 10, 30, 1, 10, 0);
            stockSeries.Data.Add(0, 0, 0, 0, new DateTime(2013, 10, 30, 1, 10, 0));
            stockSeries.Data.Candles.Last().timeClose = new DateTime(2013, 10, 30, 1, 11, 0);
            Assert.AreEqual(1, stockSeries.GetIndexByCandleOpen(new DateTime(2013, 10, 30, 1, 9, 0)));
            Assert.AreEqual(0, stockSeries.GetIndexByCandleOpen(new DateTime(2013, 10, 30, 1, 8, 30)));


            stockSeries.Owner.Owner.Owner = null;
            Assert.AreEqual(0, stockSeries.GetIndexByCandleOpen(new DateTime(2013, 11, 30, 1, 8, 0)));
        }
 public bool OnMouseUp(List<SeriesEditParameter> parameters,
     MouseEventArgs e,
     CandleChartControl.ChartTool activeChartTool, 
     Keys modifierKeys,            
     out IChartInteractiveObject objectToEdit)
 {
     if (activeChartTool != linkedChartTool)
     {
         objectToEdit = null;
         return false;
     }
     return OnMouseUp(parameters, e, modifierKeys, out objectToEdit);
 }
 public bool OnMouseDown(MouseEventArgs e, 
     List<SeriesEditParameter> parameters,
     CandleChartControl.ChartTool activeChartTool,
     Keys modifierKeys,
     out IChartInteractiveObject objectToEdit)
 {
     if (activeChartTool == linkedChartTool)
     {
         OnMouseDown(parameters, e, modifierKeys, out objectToEdit);
         return true;
     }
     objectToEdit = null;
     return false;
 }
Пример #36
0
 public override void ProcessLoadingCompleted(CandleChartControl owner)
 {
     // построить по ключевым барам разворотные бары
     CountTurnBars();
 }
Пример #37
0
 public override void ProcessLoadingCompleted(CandleChartControl owner)
 {
 }
Пример #38
0
        public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            if (itemNode.Attributes["Name"] != null)
                Name = itemNode.Attributes["Name"].Value;
            if (itemNode.Attributes["Color"] != null)
                color = Color.FromArgb(int.Parse(itemNode.Attributes["Color"].Value));

            if (itemNode.Attributes["isCorrection"] != null)
                isCorrection = bool.Parse(itemNode.Attributes["isCorrection"].Value);
            if (itemNode.Attributes["isExtension"] != null)
                isExtension = bool.Parse(itemNode.Attributes["isExtension"].Value);
            if (itemNode.Attributes["hideFarParts"] != null)
                hideFarParts = bool.Parse(itemNode.Attributes["hideFarParts"].Value);
            if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;

            if (itemNode.Attributes["markers"] != null)
                Markers = (MarkerPlacement)(itemNode.Attributes["hideFarParts"].Value.ToIntSafe() ?? 0);

            // расширение - коррекция
            if (itemNode.Attributes["LevelsProj"] != null) LevelsProj = itemNode.Attributes["LevelsProj"].Value;
            if (itemNode.Attributes["LevelsCorr"] != null) LevelsCorr = itemNode.Attributes["LevelsCorr"].Value;
            if (itemNode.Attributes["HideLine"] != null) HideLine = itemNode.Attributes["HideLine"].Value.ToBoolSafe() ?? false;

            foreach (XmlElement pointNode in itemNode.ChildNodes)
            {
                var timeStr = pointNode.Attributes["Time"].Value;
                var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
                var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);
                var price = pointNode.Attributes["Price"].Value.ToFloatUniform();
                points.Add(new Cortege2<int, float> { a = index, b = price });
            }
            CalculateProjections();
        }
Пример #39
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("ProjectionPair"));
            var attrName = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Name"));
            attrName.Value = Name;

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("isCorrection")).Value =
                isCorrection.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("isExtension")).Value =
                isExtension.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("hideFarParts")).Value =
                hideFarParts.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("markers")).Value =
                ((int) Markers).ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Color")).Value = color.ToArgb().ToString();
            // расширение - коррекция
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("LevelsProj")).Value = LevelsProj;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("LevelsCorr")).Value = LevelsCorr;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("HideLine")).Value = HideLine.ToString();

            foreach (var point in points)
            {
                var nodePoint = node.AppendChild(parentNode.OwnerDocument.CreateElement("Point"));

                var time = owner.chart.StockSeries.GetCandleOpenTimeByIndex(point.a);
                var attrIndex = nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Time"));
                attrIndex.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);

                var attrPrice = nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Price"));
                attrPrice.Value = point.b.ToString(CultureProvider.Common);
            }
        }
Пример #40
0
 public override void ProcessLoadingCompleted(CandleChartControl owner)
 {
     MakeProjections();
 }
Пример #41
0
        public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            if (itemNode.Attributes["name"] != null)
                Name = itemNode.Attributes["name"].Value;

            if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;

            if (itemNode.Attributes["color"] != null)
                Color = Color.FromArgb(int.Parse(itemNode.Attributes["color"].Value));

            if (itemNode.Attributes["brushColor"] != null)
                BrushColor = Color.FromArgb(int.Parse(itemNode.Attributes["brushColor"].Value));

            BrushAlpha = itemNode.GetAttributeString("brushAlpha").ToIntSafe() ?? 192;

            if (itemNode.Attributes["BuildTangent"] != null)
                BuildTangent = itemNode.Attributes["BuildTangent"].Value.ToBool();

            foreach (XmlElement child in itemNode.ChildNodes)
            {
                var timeStr = child.Attributes["time"].Value;
                if (string.IsNullOrEmpty(timeStr)) continue;
                var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
                var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);
                var price = float.Parse(child.Attributes["price"].Value, CultureProvider.Common);
                // порядок не нарушится?
                points.Add(new PointF(index, price));
            }
        }
Пример #42
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("Ellipse"));

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("name")).Value = Name;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("color")).Value = Color.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("brushColor")).Value = BrushColor.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("brushAlpha")).Value = BrushAlpha.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("BuildTangent")).Value = BuildTangent.ToString();

            for (int i = 0; i < points.Count; i++)
            {
                var nodePoint = node.AppendChild(parentNode.OwnerDocument.CreateElement(string.Format("point{0}", i)));
                var time = owner.chart.StockSeries.GetCandleOpenTimeByIndex((int)Math.Round(points[i].X));
                nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("time")).Value =
                    time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);
                nodePoint.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("price")).Value =
                    points[i].Y.ToString(CultureProvider.Common);
            }
        }
Пример #43
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("Marker"));

            var attrName = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("name"));
            attrName.Value = Name;

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            var attrPrice = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("price"));
            attrPrice.Value = Price.ToString(CultureProvider.Common);

            var attrComment = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("comment"));
            attrComment.Value = Comment;

            var attrType = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("type"));
            attrType.Value = MarkerType.ToString();

            var attrSide = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("side"));
            attrSide.Value = Side.ToString();

            var time = dateStart == new DateTime()
                ? owner.chart.StockSeries.GetCandleOpenTimeByIndex((int)candleIndex) : dateStart;
            var attrStart = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("time"));
            attrStart.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);

            var attrId = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("id"));
            attrId.Value = id.ToString();

            if (exitPair.HasValue)
            {
                var attrExitId = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("exitId"));
                attrExitId.Value = exitPair.ToString();
            }
        }
Пример #44
0
        public override void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            base.LoadFromXML(itemNode, owner);
            if (itemNode.Attributes["series"] != null) Series = itemNode.Attributes["series"].Value;
            if (itemNode.Attributes["time"] != null)
            {
                var timeStr = itemNode.Attributes["time"].Value;
                var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
                var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);

                Point3 = new PointD(index, double.Parse(itemNode.Attributes["y"].Value,
                    CultureProvider.Common));
            }
        }
Пример #45
0
 public override IChartInteractiveObject LoadObject(XmlElement objectNode, CandleChartControl owner, bool trimObjectsOutOfHistory = false)
 {
     var obj = new TurnBar(new List<int>(), true, Chart);
     obj.LoadFromXML(objectNode, owner);
     barsKey.Add(obj);
     return obj;
 }
 public SummaryPositionDropWindow(CandleChartControl chart)
     : this()
 {
     this.chart = chart;
     SetupGrid();
 }
Пример #47
0
        public override void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            base.SaveInXML(parentNode, owner);
            var node = parentNode.ChildNodes[parentNode.ChildNodes.Count - 1];

            var seriesAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("series"));
            seriesAttr.Value = Series;

            if (Point3.HasValue)
            {
                var pointXAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("time"));
                var time = owner.chart.StockSeries.GetCandleOpenTimeByIndex((int)Point3.Value.X);
                pointXAttr.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);

                var pointYAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("y"));
                pointYAttr.Value = Point3.Value.Y.ToString(CultureProvider.Common);
            }
        }
        private static Series.Series GetOuterSeries(CandleChartControl chart,
            string seriesFullName)
        {
            if (string.IsNullOrEmpty(seriesFullName)) return null;
            // получить серии от графика
            if (seriesFullName == Localizer.GetString("TitleCourse")) return chart.chart.StockSeries;

            var nameParts = seriesFullName.Split(new[] { Separators.IndiNameDelimiter[0] },
                StringSplitOptions.RemoveEmptyEntries);
            if (nameParts.Length < 2)
            {
                Logger.InfoFormat("GetOuterSeries (chart {0}, {1}): series \"{0}\" is bad-formatted",
                    chart.Symbol, chart.Timeframe.ToString(), seriesFullName);
                return null;
            }
            var indiName = nameParts[0];
            var seriesName = nameParts[1];
            var indi = chart.indicators.FirstOrDefault(i => i.UniqueName == indiName);
            if (indi == null) return null;
            // найти серию
            return indi.SeriesResult.FirstOrDefault(s => s.Name == seriesName);
        }
Пример #49
0
 public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
 {
     if (itemNode.Attributes["name"] != null) Name = itemNode.Attributes["name"].Value;
     if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
     if (itemNode.Attributes["series"] != null)
         if (!string.IsNullOrEmpty(itemNode.Attributes["series"].Value))
             Series = itemNode.Attributes["series"].Value.ToDecimalArrayUniform().ToList();
     if (itemNode.Attributes["color"] != null)
         Color = Color.FromArgb(int.Parse(itemNode.Attributes["color"].Value));
     if (itemNode.Attributes["firstTimeStamp"] != null)
     {
         var timeStr = itemNode.Attributes["firstTimeStamp"].Value;
         var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
         var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);
         points.Add(new PointD(index, double.Parse(itemNode.Attributes["firstY"].Value,
             CultureProvider.Common)));
     }
     if (itemNode.Attributes["secondTimeStamp"] != null)
     {
         var timeStr = itemNode.Attributes["secondTimeStamp"].Value;
         var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
         var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);
         points.Add(new PointD(index, double.Parse(itemNode.Attributes["secondY"].Value,
             CultureProvider.Common)));
     }
 }
Пример #50
0
 public override void AdjustColorScheme(CandleChartControl chart)
 {
     foreach (var obj in data)
         obj.AjustColorScheme(chart);
 }
Пример #51
0
        public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            if (itemNode.Attributes["Name"] != null)
                Name = itemNode.Attributes["Name"].Value;
            if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
            if (itemNode.Attributes["Text"] != null)
                Text = itemNode.Attributes["Text"].Value;
            if (itemNode.Attributes["TextCustom"] != null)
                TextCustom = itemNode.Attributes["TextCustom"].Value;
            if (itemNode.Attributes["Color"] != null)
                color = Color.FromArgb(int.Parse(itemNode.Attributes["Color"].Value));
            if (itemNode.Attributes["ColorText"] != null)
                ColorText = Color.FromArgb(int.Parse(itemNode.Attributes["ColorText"].Value));

            if (itemNode.Attributes["PivotPrice"] != null)
                PivotPrice = double.Parse(itemNode.Attributes["PivotPrice"].Value, CultureProvider.Common);
            if (itemNode.Attributes["PivotTime"] != null)
            {
                var timeStr = itemNode.Attributes["PivotTime"].Value;
                var time = DateTime.ParseExact(timeStr, "ddMMyyyy HHmmss", CultureProvider.Common);
                var index = owner.chart.StockSeries.GetIndexByCandleOpen(time);
                PivotIndex = index;
            }
            if (itemNode.Attributes["ArrowLength"] != null)
                ArrowLength = int.Parse(itemNode.Attributes["ArrowLength"].Value);
            if (itemNode.Attributes["ArrowAngle"] != null)
                ArrowAngle = double.Parse(itemNode.Attributes["ArrowAngle"].Value, CultureProvider.Common);

            if (itemNode.Attributes["HideArrow"] != null)
                HideArrow = bool.Parse(itemNode.Attributes["HideArrow"].Value);

            if (itemNode.Attributes["HideBox"] != null)
                HideBox = bool.Parse(itemNode.Attributes["HideBox"].Value);

            if (itemNode.Attributes["DrawFrame"] != null)
                DrawFrame = bool.Parse(itemNode.Attributes["DrawFrame"].Value);

            if (itemNode.Attributes["ColorFill"] != null)
                ColorFill = Color.FromArgb(int.Parse(itemNode.Attributes["ColorFill"].Value));

            if (itemNode.Attributes["FillTransparency"] != null)
                FillTransparency = int.Parse(itemNode.Attributes["FillTransparency"].Value);
        }
Пример #52
0
        public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
        {
            if (itemNode.Attributes["name"] != null)
                Name = itemNode.Attributes["name"].Value;

            if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;

            if (itemNode.Attributes["price"] != null)
                Price = double.Parse(itemNode.Attributes["price"].Value, CultureProvider.Common);

            if (itemNode.Attributes["comment"] != null)
                Name = itemNode.Attributes["comment"].Value;

            if (itemNode.Attributes["type"] != null)
                MarkerType = (DealMarkerType)Enum.Parse(typeof(DealMarkerType), itemNode.Attributes["type"].Value);

            if (itemNode.Attributes["side"] != null)
                Side = (DealType)Enum.Parse(typeof(DealType), itemNode.Attributes["side"].Value);

            if (itemNode.Attributes["time"] != null)
            {
                dateStart = DateTime.ParseExact(itemNode.Attributes["time"].Value, "ddMMyyyy HHmmss",
                                                CultureProvider.Common);
                candleIndex = owner.chart.StockSeries.GetIndexByCandleOpen(dateStart);
            }

            if (itemNode.Attributes["id"] != null)
                id = int.Parse(itemNode.Attributes["id"].Value);

            if (itemNode.Attributes["exitId"] != null)
                exitPair = int.Parse(itemNode.Attributes["exitId"].Value);
        }
Пример #53
0
 public void AjustColorScheme(CandleChartControl chart)
 {
     var clBack = chart.chart.visualSettings.ChartBackColor;
     Color = ChartControl.ChartVisualSettings.AdjustColor(Color, clBack);
 }
Пример #54
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("Comment"));
            var attrName = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Name"));
            attrName.Value = Name;
            var attrText = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Text"));
            attrText.Value = Text;
            var attrColor = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Color"));
            attrColor.Value = color.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ColorText")).Value =
                ColorText.ToArgb().ToString();

            var attrPivotPrice = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("PivotPrice"));
            attrPivotPrice.Value = PivotPrice.ToString(CultureProvider.Common);

            var attrPivotTime = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("PivotTime"));
            attrPivotTime.Value = owner.chart.StockSeries.GetCandleOpenTimeByIndex((int)Math.Round(PivotIndex)).ToString(
                "ddMMyyyy HHmmss", CultureProvider.Common);
            var attrArrowLength = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ArrowLength"));
            attrArrowLength.Value = ArrowLength.ToString();
            var attrArrowAngle = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ArrowAngle"));
            attrArrowAngle.Value = ArrowAngle.ToString(CultureProvider.Common);

            var attrHideArrow = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("HideArrow"));
            attrHideArrow.Value = HideArrow.ToString();

            var attrHideBox = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("HideBox"));
            attrHideBox.Value = HideBox.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("DrawFrame")).Value = DrawFrame.ToString();

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("ColorFill")).Value = ColorFill.ToArgb().ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("FillTransparency")).Value = FillTransparency.ToString();
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("TextCustom")).Value = TextCustom;
            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();
        }
Пример #55
0
        public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
        {
            var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("FiboSpan"));

            var nameAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("name"));
            nameAttr.Value = Name;

            node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();

            var seriesAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("series"));
            seriesAttr.Value = SeriesHumanReadable;

            var colorAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("color"));
            colorAttr.Value = Color.ToArgb().ToString();

            if (points.Count > 0)
            {
                var time = owner.chart.StockSeries.GetCandleOpenTimeByIndex((int) points[0].X);
                var axAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("firstTimeStamp"));
                axAttr.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);
                var ayAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("firstY"));
                ayAttr.Value = points[0].Y.ToString(CultureProvider.Common);
            }

            if (points.Count > 1)
            {
                var time = owner.chart.StockSeries.GetCandleOpenTimeByIndex((int)points[1].X);
                var axAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("secondTimeStamp"));
                axAttr.Value = time.ToString("ddMMyyyy HHmmss", CultureProvider.Common);
                var ayAttr = node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("secondY"));
                ayAttr.Value = points[1].Y.ToString(CultureProvider.Common);
            }
        }
Пример #56
0
 public void SaveInXML(XmlElement parentNode, CandleChartControl owner)
 {
     var node = parentNode.AppendChild(parentNode.OwnerDocument.CreateElement("TurnBar"));
     node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("magic")).Value = Magic.ToString();
     node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("KeyBar")).Value = IsKeyBar.ToString();
     node.Attributes.Append(parentNode.OwnerDocument.CreateAttribute("Name")).Value = Name;
     foreach (var candle in candleIndexes)
     {
         node.AppendChild(parentNode.OwnerDocument.CreateElement("index")).Attributes.Append(
             parentNode.OwnerDocument.CreateAttribute("value")).Value = candle.ToString();
     }
 }
Пример #57
0
 public override IChartInteractiveObject LoadObject(XmlElement objectNode, CandleChartControl owner, bool trimObjectsOutOfHistory = false)
 {
     var obj = new FiboSpan(this);
     obj.LoadFromXML(objectNode, owner);
     data.Add(obj);
     return obj;
 }
Пример #58
0
 public void LoadFromXML(XmlElement itemNode, CandleChartControl owner)
 {
     IsKeyBar = bool.Parse(itemNode.Attributes["KeyBar"].Value);
     Name = itemNode.Attributes["Name"].Value;
     if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
     if (itemNode.Attributes["magic"] != null) Magic = itemNode.Attributes["magic"].Value.ToIntSafe() ?? 0;
     foreach (XmlElement node in itemNode.ChildNodes)
     {
         candleIndexes.Add(node.Attributes["value"].Value.ToInt());
     }
 }
Пример #59
0
 public CandleChartControlTag(CandleChartControl chart)
 {
     this.chart = chart;
 }
Пример #60
0
 public void AjustColorScheme(CandleChartControl chart)
 {
 }