Почему не получается вытащить последнее значение из индикатора фракталов?

всё по инструкции

  1. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20

    Вот что я делаю:

     

    // Подключаем индикатор Фракталы


            _fra = IndicatorsFactory.CreateIndicatorByName("Fractal", name + "Fractal_for_back_to_channel", false);
            _fra = (Aindicator)_tab.CreateCandleIndicator(_fra, "Prime");

             _fra.Save();

     

    потом хочу вытащить значения последнего фрактала

     _lastTopFractal = _fra.DataSeries[1].Last;

    Но значение всегда равно 0.

     

    И раз уж я здесь, второй вопрос - как без модификации Aindicator, вытащить index свечи, на которой сработал фрактал?

    Спасибки

     

    mrmvd
    08.09.2020 22:36
    #1
  2. Алексей Ван Команда форума

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

    Вот что я делаю:

     

    // Подключаем индикатор Фракталы


            _fra = IndicatorsFactory.CreateIndicatorByName("Fractal", name + "Fractal_for_back_to_channel", false);
            _fra = (Aindicator)_tab.CreateCandleIndicator(_fra, "Prime");

             _fra.Save();

     

    потом хочу вытащить значения последнего фрактала

     _lastTopFractal = _fra.DataSeries[1].Last;

    Но значение всегда равно 0.

     

    И раз уж я здесь, второй вопрос - как без модификации Aindicator, вытащить index свечи, на которой сработал фрактал?

    Спасибки

     

    Поставь точку останова и посмотри на массивы с данными которые есть в этом индикаторе. Станет понятно и первое и второе.

    Алексей Ван
    09.09.2020 12:08
    #2
  3. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20

    Я вот что не понимаю: как в данной конструкции формируется  значение .Last?
    Фрактал становится фракталом 2 свечи назад, "позавчера".
    Значение .Last - это "вчера", на прошлой свечке.

    Соответственно .Last всегда либо уже 0, потому что фрактал прошёл "позавчера" либо ещё 0, потому что он ещё не наступил.

    Я пытался вместо .Last ставить .Values[Count - 1] - не работает.

    mrmvd
    09.09.2020 16:29
    #3
  4. Алексей Ван Команда форума

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

    Я вот что не понимаю: как в данной конструкции формируется  значение .Last?
    Фрактал становится фракталом 2 свечи назад, "позавчера".
    Значение .Last - это "вчера", на прошлой свечке.

    Соответственно .Last всегда либо уже 0, потому что фрактал прошёл "позавчера" либо ещё 0, потому что он ещё не наступил.

    Я пытался вместо .Last ставить .Values[Count - 1] - не работает.

     .Values[Count - 3] попробуй или минус 2. Должно там где-то быть

    Алексей Ван
    09.09.2020 17:21
    #4
  5. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20
    Цитата: Алексей Ван
    Цитата: mrmvd

    Я вот что не понимаю: как в данной конструкции формируется  значение .Last?
    Фрактал становится фракталом 2 свечи назад, "позавчера".
    Значение .Last - это "вчера", на прошлой свечке.

    Соответственно .Last всегда либо уже 0, потому что фрактал прошёл "позавчера" либо ещё 0, потому что он ещё не наступил.

    Я пытался вместо .Last ставить .Values[Count - 1] - не работает.

     .Values[Count - 3] попробуй или минус 2. Должно там где-то быть

    он всегда ругается что Count не определена, когда такую конструкцию строишь.
    он её почему-то не вытаскивает ни из фабрики индикаторов Aindicator ни из самого индикатора

    откуда её взять можно ? Кстати, если привязываться к index, то count как-то соотносится с index ?

    mrmvd
    09.09.2020 19:42
    #5
  6. mrmvd

    Регистрация:
    19.03.20
    Сообщения:
    92
    Был на сайте:
    22.09.20

    В общем, как братюня любит говорить, "поставил костыль":

     // Получаем номер текущей свечи
            candlecount = (candles.Count - 1);

            if (_fra.DataSeries[0].Values[candlecount - 2] != 0)
            {

    //Выводим значение фрактала в переменную
                  _lastDownFractal = _fra.DataSeries[0].Values[candlecount - 2]; ;
            }

    Может, кому пригодится.

    mrmvd
    09.09.2020 23:21
    #6
  7. Ghost-mo

    Регистрация:
    22.06.20
    Сообщения:
    19
    Был на сайте:
    02.02.23
    Цитата: mrmvd
    if (_fra.DataSeries[0].Values[candlecount - 2] != 0)

    Тогда уж:

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

    Брать значсения индикатора, как то логичней..?

    Ghost-mo
    24.09.2020 23:03
    #7