Вывод параметров индикатора в советник через iCustom() - страница 2

 
Vyacheslav:
Я согласен с Решетовым по поводу индюков, которые перерисовывают на нескольких последних свечах линии.
Но в данном коде перерисовка шла на нулевом баре, но я его убрал из рассчетов.


Точно трудно сказать о какой именно версии SuperTrend идет речь, поскольку код не приаттачен, но в оригинальной версии перерисовка была и по нулевому (текущая свеча) и по первому бару (предпоследняя свеча). Поэтому проще, наверное было бы читать показания с бара за номером 2. В этом случае индюк уже точно врать перестанет, но мы получим запаздывание на 2 бара. А еще лучше советник перевести на трейдинг по ценам открытия и считывать показания индюка со второго бара, чтобы получить запаздывание индюка всего лишь на 1 (предыдущий) бар и 1 пипс (нового) сформировавшегося бара.
 
В основном я примерно уже разобрался.
Вот новый вопрос, который по этому коду. Как вывести значение цены, на которой находится нарисованная линия на последней закрытой свече. Цвет линии в данной ситуации уже не имеет значение. Мне нужна именно цена ту которую я вижу на графике.
Пример на графике.


Подскажите, кто знает, как из представленного выше по ветке кода индикатора можно вывести ценовое значение линии этого индикатора на последней закрытой свече?

С уважением, Вячеслав.
 
вот так:

STh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1);
STl=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 1, 1);
ну и нормализовать еще на всякий случай:)
 
sashken писал (а):
вот так:

STh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1);
STl=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 1, 1);
ну и нормализовать еще на всякий случай:)


Откровенно говоря не понял, что я могу взять с "0" и "1" ?
Как практически в коде советника принтануть, чтобы увидеть что за "0" и "1" идут числовые значения, а точнее мне нужны ценовые значения?
 
STh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1);

1 ЭТО - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Соответственно в индикаторе значение цены предпоследнего бара (свечи если угодно) именно то что вы спрашиваете.
10,9,8,7,6,5,4,3,2,1,0

0 - последний бар
1 - предпоследний
2 - еще на один бар назад
и такдалее

если посчитать на графике с право на лево это и будет тот бар на котором заканчивается линия индикатора.
а как определить где право а где лево я незнаю - sorry :-)
 
xeon писал (а):
STh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1);

1 ЭТО - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Соответственно в индикаторе значение цены предпоследнего бара (свечи если угодно) именно то что вы спрашиваете.
10,9,8,7,6,5,4,3,2,1,0

0 - последний бар
1 - предпоследний
2 - еще на один бар назад
и такдалее

если посчитать на графике с право на лево это и будет тот бар на котором заканчивается линия индикатора.
а как определить где право а где лево я незнаю - sorry :-)
Извиняюсь, за то, что не вразумительно обозначил вопрос.
Я имею ввиду не последние цифры в коде, а предпоследние, которые и выводят значение из буферов индикатора (выделил красным)
    double SThigh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1); 
    double STlow= iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 1, 1);
Так вот, если посмотреть на график, то мы видим на нем одну единственную линию (двух цветов), мне нужно значение цены этой линии на последней закрытой свече (пример на рисунке выше по ветке) .

Если поставить код индюка в советник, то тогда я решаю эту проблему легко, но сталкиваюсь уже с другими. Поэтому то и хочу как и советует автор статей по переносу кода индикатора в советник, оставить все в индикаторе, а взять из него только нужные мне данные.
 
Если же говорить еще конкретнее то мне нужно вытащить из индикатора вот эти два значения
TrendDown[1] = ????
TrendDown[1] = ????
то есть через дополнительные, как я понимаю буферы вытащить именно числовые значения цены линии на последнем закрытом баре.
 
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
В индикаторе индикаторные буферы нумеруются 0,1,2 и т.д.

Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.

iCustom(NULL, 0, "MACD",12,26,0,0);
iCustom(NULL, 0, "MACD",12,26,1,0);
в iCustom именно к буферам вы и обращаетесь
 
xeon писал (а):
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
В индикаторе индикаторные буферы нумеруются 0,1,2 и т.д.

Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.

iCustom(NULL, 0, "MACD",12,26,0,0);
iCustom(NULL, 0, "MACD",12,26,1,0);
в iCustom именно к буферам вы и обращаетесь

И это я тоже понимаю и знаю, но вот как вывести то что я прошу, дайте, реально пример на представленном коде индюка?
Пожалуйста, кто знает, подсобите малёха.
 
SetIndexBuffer(0, TrendUp); //Буфер показанной на графике линии
Соответственно вызывать нужно именно этот буфер

 double SThigh=iCustom(NULL, TimeFrame, "Supertrend_I", CCIperiod,ATRperiod, applied_price, 0, 1);
1 количество баров назад тоже известно
Причина обращения: