код для функции линейного предсказания

 

чтоб было меньше вопросов, смотрим формулу тут  https://en.wikipedia.org/wiki/Linear_prediction

кто уже реализовывал на mql  поделитесь плиз, намаялся стока а результат кривой выходит

 
Это линейная регрессия 1 в 1,
возьми стандартный объект или функцию у KimIV в его ветке
если повыбражать, то можно формулу предсказание (прогноз) взять из XL прямо из хэлпа, но опять же полностью совпадет с LR
 

я разве про цену что то говорил? хочу забить отдельной функцией на будущее, а там мож и пригодится

цены в лоб прогнозировать глупо -)

линканите плиз на более-менее нормальный код 

 
anubis >>:

...

цены в лоб прогнозировать глупо -)

...

Не понимаю я таких высказываний. Торгуете ведь вы по ценам. Можем и не в лоб, давайте будем

прогнозировать например лунную активность, рынок ведь учитывает всё :)

 

Хм. Рынок учитывает всё.

Тогда надо не предсказывать цены, а создавать события, которые влияют на рынок в нужном направлении. Просто надо рулить и всё будет Ок :)

 
anubis писал(а) >>

...линканите плиз на более-менее нормальный код

https://www.mql4.com/ru/search/?keyword=%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F+%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F

 
всем спасибо за помощь, пойду разбираться -)
 

все таки линейная регрессия  дает совершенно непригодные результаты и общего с линейным предсказанием ничего не имеет...

 

2Integer спс, оч полезная ссылка!

осталось разобраться в с++

 
//Calculation of LPC filter koeffs using Levinson - Durbin recursion.

//*acf = значения автокорреляции

//*lpc = коэффициенты фильтра  

//lpc_order = порядок LPC

double lpc(double acf[],double & lpc[],int lpc_order){
   int i,j;
   double tmp0,E,Pk;
   double tmp[];
   ArrayResize(tmp,lpc_order);
   E=acf[0];
      for(i=0;i<lpc_order;i++){
         lpc[i]=0.0;
      }
      for(i=0;i<lpc_order;i++){
         tmp0=acf[i+1];
            for(j=0;j<i;j++){
               tmp0-=lpc[j]*acf[i-j];
            }
            if(MathAbs(tmp0)>=E){
               break;
            }
         Pk=tmp0/E;
         lpc[i]=Pk;
         E-=tmp0*Pk;
            for(j=0;j<i;j++){
               tmp[j]=lpc[j];
            }
            for(j=0;j<i;j++){
               lpc[j]-=Pk*tmp[i-j-1];
            }
      }
   return(E);
}

//LPC analyse FIR filter (whitening filter)

//*data = входные/выходные данные
//*lpc = коэффициенты фильтра
//*z = памаять фильтра
//data_length = размер обрабатываемых данных
//lpc_order = порядок LPC

void lpc_analyse_filter(double & data[],double lpc[],double & z[],int data_length,int lpc_order){
   int i,j;
   double tmp;
      for(i=0;i<data_length;i++){
         tmp=data[i];
            for(j=0;j<lpc_order;j++){
               tmp-=z[j]*lpc[j];
            }
            for(j=lpc_order-1;j>0;j--){
               z[j]=z[j-1];
            }
         z[0]=data[i];
         data[i]=tmp;
      }
}

//LPC synthesis IIR filter (modeling filter)

//*data = входные/выхоlные данные
//*lpc = коэффиценты фильтра
//*z = память фильтра

//data_length = размер обрабатываемых данных
//lpc_order = порядок LPC

void lpc_synthesis_filter(double & data[],double lpc[],double & z[],int data_length,int lpc_order){
   int i,j;
   double tmp;
      for(i=0;i<data_length;i++){
         tmp=data[i];
            for(j=0;j<lpc_order;j++){
               tmp+=z[j]*lpc[j];
            }
            for(j=lpc_order-1;j>0;j--){
               z[j]=z[j-1];
            }
         data[i]=tmp;  
         z[0]=tmp;
      }
}
Что с этим делать дальше - большой вопрос.
Причина обращения: