Вывод данных из индикатора в "Окно данных" - страница 2

 
Николай #:

Я не совсем понимаю как заполнять буфер. 

Допусти я из меню количество индикаторных буферов  базовых 3 до 7

в void OnInit() добавлю 4 буфера, предварительно создав одноимённые массивы


и дальше в OnCalculate(), где идёт процесс расчёта я смогу просто класть переменную в массив. Но как это сделать? я не нашёл такой функции

Во первых в SetIndexBuffer индексы должны быть последовательны 3,4,5,6 (0,1,2 заняты оригинальными буферами)

Исходник хорошо прокомментирован, думаю что разберётесь :

в первом цикле пересчёта - указать текущее значение буферов  fido1_0, fido1_100 равно предыдущему

а в блоке 

сразу после SetFibo задаёте последнее значение этих буферов как price1,price2,price3

PS/ как присвоить значение элементу массива - смотрите в справке по языку :-)

 
Maxim Kuznetsov #:

Во первых в SetIndexBuffer индексы должны быть последовательны 3,4,5,6 (0,1,2 заняты оригинальными буферами)

Исходник хорошо прокомментирован, думаю что разберётесь :

в первом цикле пересчёта - указать текущее значение буферов  fido1_0, fido1_100 равно предыдущему

а в блоке 

сразу после SetFibo задаёте последнее значение этих буферов как price1,price2,price3

PS/ как присвоить значение элементу массива - смотрите в справке по языку :-)

Спасибо что помогаете.

Про индексы  SetIndexBuffer  я знал, просто поторопился. Справку изучил и для тесто пытаюсь передавать price1 в буфер fibo1_0. но в окно данных ничего не передаётся.

Посмотрите пожалуйста код.

 
Maxim Kuznetsov #:

Во первых в SetIndexBuffer индексы должны быть последовательны 3,4,5,6 (0,1,2 заняты оригинальными буферами)

Исходник хорошо прокомментирован, думаю что разберётесь :

в первом цикле пересчёта - указать текущее значение буферов  fido1_0, fido1_100 равно предыдущему

а в блоке 

сразу после SetFibo задаёте последнее значение этих буферов как price1,price2,price3

PS/ как присвоить значение элементу массива - смотрите в справке по языку :-)

Можете подсказать Как задать значение буфера равное предыдущему? Как я понимаю у меня проблема из-за этого

 
Николай #:

Можете подсказать Как задать значение буфера равное предыдущему? Как я понимаю у меня проблема из-за этого

там внутри индикатора задано ArraySetSeries(..., true) , поэтому примерно так:

// там-же где задаётся серийность буерам:
ArraySetSeries(fibo_0,true);  // однотипно с оригинальными буферами

.....
// внутри первого цикла пересчёта:
if (bar==rates_total-1) {
    fibo_0[bar]=EMPTY_VALUE; // самый начальный бар, нет предыдущих
} else {
    fibo_0[bar]=fibo_0[bar+1]; // значение в буфере равно предыдущему
}

Причина обращения: