Как написать функции iCustom? - страница 2

 
SergNF:
liza:
SamMan:
liza:
Как написать функции iCustom(???) для этих индикатора? (прикреплен)
iCustom(NULL, 0, "_Forex_Nn_Ind", X, 0);

где X или 0(если нужно значение 1-й линии, та что берет свои значения из массива arrNocBuffer в тексте индик.), или 1(для 2-й линии, значения из arrNnBuffer). Ф-ия вернет значение указанной линии в соотв. момент времени.




double nn1=iCustom(NULL,15,"_Forex_Nn_Ind",0,0);

double nn2=iCustom(NULL,15,"_Forex_Nn_Ind",1,0);

Print(nn1,", ",nn2);

Print выдает -- 0, 0



Если посмотреть код



...
    int nPos = Bars - nExtCountedBars;

    while(nPos > 0)
    {
        if(nPos > Bars - nRemoveFirst)
        {
            arrNocBuffer[nPos] = 0.5;
            nPos--;
...
то нулевой элемент внешних буферов (нулевой, не закрытый, бар) индикатор НЕ заполняет. Соответственно в iCustom необходимо последний параметр выставлять >0 (закрытые бары) или переписывать индиктор.

Поняла, спасибо!!!   С первыь элементом работает.  Но было бы интереснее с нулевым.  Не могли бы подсказать как это можно было бы сделать?

 

Поняла, спасибо!!! С первыь элементом работает. Но было бы интереснее с нулевым. Не могли бы подсказать как это можно было бы сделать?

Если ОЧЕНЬ навскидку - то прописать while(nPos >= 0) вместо просто >. Но будьте осторожны - мож там по логике работы в 0-ой элемент и впрямь нельзя соваться? Короче - повнимательнее с этим предложением.

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