Price Prediction By Nearest Neighbor Indicator For MT5
Table Of Contents:
- Price Prediction By Nearest Neighbor Indicator For MT5
- Memasang Price Prediction By Nearest Neighbor Indicator For MT5
- Parameter Price Prediction By Nearest Neighbor Indicator For MT5
- Price Prediction By Nearest Neighbor Indicator For MT5
- Bahagian Utama Kod
Price Prediction By Nearest Neighbor Indicator For MT5 menarik langkah harga masa depan yang dijangkakan yang dikira dari corak harga terkini. Corak harga terkini dipanggil jiran terdekat yang memberi nama untuk penunjuk ini. Corak harga digunakan untuk mengira pengundian berwajaran. Dari hasil itu, pergerakan harga masa depan diambil pada carta.
Memasang Price Prediction By Nearest Neighbor Indicator For MT5
Selepas anda memuat turun penunjuk melalui borang di atas, anda perlu unzip fail zip. Kemudian anda perlu menyalin fail nearest_neighbor.mq5 ke folder MQL5Indicators pemasangan MT5 anda. Selepas itu sila mulakan MT5 dan kemudian anda akan dapat melihat penunjuk dalam senarai petunjuk.
Parameter Price Prediction By Nearest Neighbor Indicator For MT5
Price Prediction By Nearest Neighbor Indicator For MT5 mempunyai parameter 2 untuk mengkonfigurasi.
input int Npast =300; // Past bars in a pattern input int Nfut =50; // Future bars in a pattern (must be < Npast)
Price Prediction By Nearest Neighbor Indicator For MT5
Price Prediction By Nearest Neighbor Indicator For MT5 menyediakan buffer 2 .
SetIndexBuffer(0,ynn,INDICATOR_DATA); SetIndexBuffer(1,xnn,INDICATOR_DATA);
Bahagian Utama Kod
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &Time[], const double &Open[], const double &High[], const double &Low[], const double &Close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- check for insufficient data and new bar int bars=rates_total; if(bars lt Npast+Nfut) { Print("Error: not enough bars in history!"); return(0); } if(PrevBars==bars) return(rates_total); PrevBars=bars; //--- initialize indicator buffers to EMPTY_VALUE ArrayInitialize(xnn,EMPTY_VALUE); ArrayInitialize(ynn,EMPTY_VALUE); //--- main cycle //--- compute correlation sums for current pattern //--- current pattern starts at i=bars-Npast and ends at i=bars-1 double my=0.0; double syy=0.0; for(int i=0;i lt Npast;i++) { double y=Open[bars-Npast+i]; my +=y; syy+=y*y; } double deny=syy*Npast-my*my; if(deny lt =0) { Print("Zero or negative syy*Npast-my*my = ",deny); return(0); } deny=MathSqrt(deny); //--- compute correlation sums for past patterns //--- past patterns start at k=0 and end at k=bars-Npast-Nfut ArrayResize(mx,bars-Npast-Nfut+1); ArrayResize(sxx,bars-Npast-Nfut+1); ArrayResize(denx,bars-Npast-Nfut+1); int kstart; if(FirstTime) kstart=0; else kstart=bars-Npast-Nfut; FirstTime=false; for(int k=kstart;k lt =bars-Npast-Nfut;k++) { if(k==0) { mx[0] =0.0; sxx[0]=0.0; for(int i=0;i lt Npast;i++) { double x=Open[i]; mx[0] +=x; sxx[0]+=x*x; } } else { double xnew=Open[k+Npast-1]; double xold=Open[k-1]; mx[k] =mx[k-1]+xnew-xold; sxx[k]=sxx[k-1]+xnew*xnew-xold*xold; } denx[k]=sxx[k]*Npast-mx[k]*mx[k]; } //--- compute cross-correlation sums and correlation coefficients and find NN double sxy[]; ArrayResize(sxy,bars-Npast-Nfut+1); double b,corrMax=0; int knn=0; for(int k=0;k lt =bars-Npast-Nfut;k++) { //--- Compute sxy sxy[k]=0.0; for(int i=0;i lt Npast;i++) sxy[k]+=Open[k+i]*Open[bars-Npast+i]; //--- Compute corr coefficient if(denx[k] lt =0) { Print("Zero or negative sxx[k]*Npast-mx[k]*mx[k]. Skipping pattern # ",k); continue; } double num=sxy[k]*Npast-mx[k]*my; double corr=num/MathSqrt(denx[k])/deny; if(corr gt corrMax) { corrMax=corr; knn=k; b=num/denx[k]; } } Print("Nearest neighbor is dated ",Time[knn]," and has correlation with current pattern of ",corrMax); //--- Compute xm[] and ym[] by scaling the nearest neighbor double delta=Open[bars-1]-b*Open[knn+Npast-1]; for(int i=0;i lt Npast+Nfut;i++) { if(i lt =Npast-1) xnn[bars-Npast+i]=b*Open[knn+i]+delta; if(i gt =Npast-1) ynn[bars-Npast-Nfut+i]=b*Open[knn+i]+delta; } return(rates_total); } //+------------------------------------------------------------------+