Центральная линия строится так же, как и у канала линейной регрессии (поиск по слову regression).
int n=m_pos[1]-m_pos[0]+1;
//---- calculate price values
double value=Close[m_pos[0]];
double a,b,c;
double sumy=value;
double sumx=0.0;
double sumxy=0.0;
double sumx2=0.0;
for(i=1; i<n; i++)
{
value=Close[m_pos[0]+i];
sumy+=value;
sumxy+=value*i;
sumx+=i;
sumx2+=i*i;
}
c=sumx2*n-sumx*sumx;
if(c==0.0) return;
b=(sumxy*n-sumx*sumy)/c;
a=(sumy-sumx*b)/n;
m_value[0]=a;
m_value[1]=a+b*(n-1);
Сам же расчёт канала несколько иной
double sma=sumy/n;
double sumdev=0;
for(i=0; i<n; i++)
{
double deviation=Close[m_pos[0]+i]-sma;
sumdev+=deviation*deviation;
}
double maxdev=sqrt(sumdev/n)*m_deviations;
От центральной линии откладываете вверх и вниз значение maxdev
Slawa, спасибо!!
А средствами стандартного граф. обьекта "Канал стандартных отклонений" это не сделать?
А средствами стандартного граф. обьекта "Канал стандартных отклонений" это не сделать?
К сожалению, нет. Надо считать самостоятельно. Значения с центральной линии Вы возьмёте. Размер канала считайте по представленному алгоритму.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как узнать значение линии (поддержки или сопротивления) канала в заданное время используя, например, стандартный графический обьект "Канал стандартных отклонений"?
Или надо рисовать этот канал трендовыми линиями?
Есть ли простое решение?
Спасибо!