Линия регрессии строится на базе канала регрессии, у канала есть начало и конец, так вот линия регрессии строится по конечной точке канала, Нужно построить линию по начальной точке...
Подскажите, что заменить в формуле, для получения данной линии, спасибо.
а может по средней построить?
этот файо ничего общего не имеет с линией регрессии
хм... но расчёт последней точки совпадает с конечной точкой канала... Есть ещё другие коды, может в них можно подкорректировать...
Где вы взяли первый код? Просто ужас какой-то.
Ваше счастье выглядит примерно вот так:
//+------------------------------------------------------------------+ //| SPMA.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ ////////////////////////////////////////////////////////////////////// // // LinearRegression.mq4 // Copyright © 2008 Antonuk Oleg // ////////////////////////////////////////////////////////////////////// #property indicator_chart_window #property indicator_buffers 2 #property indicator_width1 1 #property indicator_color1 Gold #property indicator_width2 1 #property indicator_color2 Red extern int barsToCount=50; double bufferB[]; double bufferE[]; ////////////////////////////////////////////////////////////////////// int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,bufferB); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,bufferE); SetIndexEmptyValue(1,0.0); return(0); } ////////////////////////////////////////////////////////////////////// int deinit() { return(0); } ////////////////////////////////////////////////////////////////////// int start() { int limit; int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; double a,b,c,sumy,sumx,sumxy,sumx2; for(int j=limit; j>=0; j--) { sumy=0.0; sumx=0.0; sumxy=0.0; sumx2=0.0; for(int i=0; i<barsToCount; i++) { sumy+=Close[i+j]; sumxy+=Close[i+j]*i; sumx+=i; sumx2+=i*i; } c=sumx2*barsToCount-sumx*sumx; if(c==0.0) { Alert("LinearRegression error: can\'t resolve equation"); return; } b=(sumxy*barsToCount-sumx*sumy)/c; a=(sumy-sumx*b)/barsToCount; bufferB[j]=a; bufferE[j]=a+b*barsToCount; } return(0); }
Да, это то, что я искал, спасибо! Вот только она(линия) смещена к текущей цене, как её отправить на своё законное место?
Чта касается первого кода, то я его нашёл где-то на форуме... А за 2 последних кода, отдельное спасибо! вообще не тормозят.
Да, это то, что я искал, спасибо! Вот только она(линия) смещена к текущей цене, как её отправить на своё законное место?
Чта касается первого кода, то я его нашёл где-то на форуме... А за 2 последних кода, отдельное спасибо! вообще не тормозят.
конечно можно сделать, но разве не видно красная хуже коррелирует с ценой?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Линия регрессии строится на базе канала регрессии, у канала есть начало и конец, так вот линия регрессии строится по конечной точке канала, Нужно построить линию по начальной точке...
Подскажите, что заменить в формуле, для получения данной линии, спасибо.