Доступ к значениям индикатора ZigZag

Как получить значения точек, которые рисует индикатор ZigZag?

  1. jimearthworm

    Регистрация:
    02.12.19
    Сообщения:
    6
    Был на сайте:
    18.06.21

    Как получить значения точек, которые  рисует индикатор ZigZag?

    Такое ощущение, что индекс прошлых максимальных и минимальных значений обновляется с каждой свечкой.

    Вот например отрисовалась точка "-1". Я хочу сравнить открытие текущей цены с точкой "-2".

    candles[candles.Count - 1].Open < 

    _zigzag.DataSeries[0].Values[_zigzag.DataSeries[0].Values.Count - 2]

    Такое условие никогда не сработает.

    Как обращаться к значениям этих точек? Или как добавить в индикатор добавить ещё две DataSeries содержащие Max и Min точки?

    jimearthworm
    26.04.2020 21:29
    #1
  2. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1172
    Был на сайте:
    15.04.24
    Цитата: jimearthworm

    Как получить значения точек, которые  рисует индикатор ZigZag?

    Такое ощущение, что индекс прошлых максимальных и минимальных значений обновляется с каждой свечкой.

    Вот например отрисовалась точка "-1". Я хочу сравнить открытие текущей цены с точкой "-2".

    candles[candles.Count - 1].Open < 

    _zigzag.DataSeries[0].Values[_zigzag.DataSeries[0].Values.Count - 2]

    Такое условие никогда не сработает.

    Как обращаться к значениям этих точек? Или как добавить в индикатор добавить ещё две DataSeries содержащие Max и Min точки?

    да. Такое обращение не сработает. Нужно в цикле бежать назад по массиву значений и запоминать их в другой массив если они отличны от нуля. 

    List<decimals> zigZag = _zigzag.DataSeries[0].Values;

    list<decimal> values = new List<decimal>();

    for(int i = zigZag.Count-1;i > 0;i --)

    {

    if(zigZag[i] != 0) values.Add(zigZag[i]);

    }

    Как-то так.

    Алексей Ван
    26.04.2020 22:25
    #2
  3. jimearthworm

    Регистрация:
    02.12.19
    Сообщения:
    6
    Был на сайте:
    18.06.21
    Цитата: Алексей Ван
    Цитата: jimearthworm

    Как получить значения точек, которые  рисует индикатор ZigZag?

    Такое ощущение, что индекс прошлых максимальных и минимальных значений обновляется с каждой свечкой.

    Вот например отрисовалась точка "-1". Я хочу сравнить открытие текущей цены с точкой "-2".

    candles[candles.Count - 1].Open < 

    _zigzag.DataSeries[0].Values[_zigzag.DataSeries[0].Values.Count - 2]

    Такое условие никогда не сработает.

    Как обращаться к значениям этих точек? Или как добавить в индикатор добавить ещё две DataSeries содержащие Max и Min точки?

    да. Такое обращение не сработает. Нужно в цикле бежать назад по массиву значений и запоминать их в другой массив если они отличны от нуля. 

    List<decimals> zigZag = _zigzag.DataSeries[0].Values;

    list<decimal> values = new List<decimal>();

    for(int i = zigZag.Count-1;i > 0;i --)

    {

    if(zigZag[i] != 0) values.Add(zigZag[i]);

    }

    Как-то так.

    Т.е. при получении каждой новой свечки, нужно очищать список и прогонять цикл по поиску значений ZigZag заново? 

    jimearthworm
    27.04.2020 20:20
    #3
  4. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1172
    Был на сайте:
    15.04.24
    Цитата: jimearthworm

    Т.е. при получении каждой новой свечки, нужно очищать список и прогонять цикл по поиску значений ZigZag заново? 

    да

    Алексей Ван
    28.04.2020 18:43
    #4