отрисовка линий-торговых уровней. выше и ниже базового уровня

отрисовка линий-торговых уровней. выше и ниже базового уровня

  1. Konstb

    Регистрация:
    18.03.17
    Сообщения:
    51
    Был на сайте:
    06.12.23

    прошу помощи. Задача отрисовать торговые уровни выше и ниже базового уровня. Определены в списках _linesup и _linesdn. Код ниже. Вывожу циклом линии. Но выводятся только линии ниже базового уровня. 

     

    private void RepaintLinesUp()

        {

            if (_lineDrawUp == null ||

                _linesup.Count != _linesup.Count)

            {

                _lineDrawUp = new List<LineHorisontal>();

     

                for (int i = 0; i < _linesup.Count; i++)

                {

                    _lineDrawUp.Add(new LineHorisontal(NameStrategyUniq + "Line" + i, "Prime", false) { Value = _linesup[i], Color = Color.DarkRed, Label = "N=" + i });

                    Tab.SetChartElement(_lineDrawUp[i]);

                }

            }

            else

            {

                for (int i = 0; i < _lineDrawUp.Count; i++)

                {

                    if (_lineDrawUp[i].Value != _linesup[i])

                    {

                        _lineDrawUp[i].Value = _linesup[i];

                    }

                    _lineDrawUp[i].Refresh();

                }

            }

        }

        private void RepaintLinesDn()

        {

            if (_lineDrawDn == null ||

                _linesdn.Count != _linesdn.Count)

            {

                _lineDrawDn = new List<LineHorisontal>();

     

                for (int i = 0; i < _linesdn.Count; i++)

                {

                    _lineDrawDn.Add(new LineHorisontal(NameStrategyUniq + "Line" + i, "Prime", false) { Value = _linesdn[i], Color = Color.DarkGreen, Label = "N=-" + i });

                    Tab.SetChartElement(_lineDrawDn[i]);

                }

            }

            else

            {

                for (int i = 0; i < _lineDrawDn.Count; i++)

                {

                    if (_lineDrawDn[i].Value != _linesdn[i])

                    {

                        _lineDrawDn[i].Value = _linesdn[i];

                    }

                    _lineDrawDn[i].Refresh();

                }

            }

        }

    Konstb
    14.03.2021 11:12
    #1
  2. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1169
    Был на сайте:
    29.03.24
    Цитата: Konstb

    прошу помощи. Задача отрисовать торговые уровни выше и ниже базового уровня. Определены в списках _linesup и _linesdn. Код ниже. Вывожу циклом линии. Но выводятся только линии ниже базового уровня. 

     

    private void RepaintLinesUp()

        {

            if (_lineDrawUp == null ||

                _linesup.Count != _linesup.Count)

            {

                _lineDrawUp = new List<LineHorisontal>();

     

                for (int i = 0; i < _linesup.Count; i++)

                {

                    _lineDrawUp.Add(new LineHorisontal(NameStrategyUniq + "Line" + i, "Prime", false) { Value = _linesup[i], Color = Color.DarkRed, Label = "N=" + i });

                    Tab.SetChartElement(_lineDrawUp[i]);

                }

            }

            else

            {

                for (int i = 0; i < _lineDrawUp.Count; i++)

                {

                    if (_lineDrawUp[i].Value != _linesup[i])

                    {

                        _lineDrawUp[i].Value = _linesup[i];

                    }

                    _lineDrawUp[i].Refresh();

                }

            }

        }

        private void RepaintLinesDn()

        {

            if (_lineDrawDn == null ||

                _linesdn.Count != _linesdn.Count)

            {

                _lineDrawDn = new List<LineHorisontal>();

     

                for (int i = 0; i < _linesdn.Count; i++)

                {

                    _lineDrawDn.Add(new LineHorisontal(NameStrategyUniq + "Line" + i, "Prime", false) { Value = _linesdn[i], Color = Color.DarkGreen, Label = "N=-" + i });

                    Tab.SetChartElement(_lineDrawDn[i]);

                }

            }

            else

            {

                for (int i = 0; i < _lineDrawDn.Count; i++)

                {

                    if (_lineDrawDn[i].Value != _linesdn[i])

                    {

                        _lineDrawDn[i].Value = _linesdn[i];

                    }

                    _lineDrawDn[i].Refresh();

                }

            }

        }

    У Вас линии верхние и нижние называются одинакого. Нужно добавить что-то ещё в название линий

    Алексей Ван
    14.03.2021 19:23
    #2
  3. Konstb

    Регистрация:
    18.03.17
    Сообщения:
    51
    Был на сайте:
    06.12.23

    спасибо. 

    Konstb
    20.03.2021 11:21
    #3