线性回归渠道 - 页 18 1...1112131415161718 新评论 ANG3110 2019.08.29 14:17 #171 这里有一个mql4中抛物线和线性回归 的紧凑快速版本,但是在计算sxxy值时如何摆脱一个周期,我还没有想好。 #property strict #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 clrDeepSkyBlue #property indicator_color2 clrRed #property indicator_width1 2 #property indicator_width2 2 #property indicator_type1 DRAW_LINE #property indicator_type2 DRAW_LINE //================================ extern int p = 2 4; //================================ double lr[],qr[]; double lwi,mai,fxi; double ci,cp,sy,sxy,sxxy,lri,qri; double a1,a2; int w,n; //************************************************* int init() { SetIndexBuffer(0,qr); SetIndexBuffer(1,lr); //----------------------- if (p<3) p=3; return(0); } //******************************************************************* int start() { int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1); if (cbi==0) return(0); if (cbi==1) cbi=0; if (cbi>1) { cbi=Bars-p-1; sy=0; sxy=0; w=0; for(int j=1; j<=p; j++) { ci=Open[cbi+p-j]; sy+=ci; sxy+=j*ci; w+=j; } cbi--; a1=6.0/(p*(p+1)*(2*p+1))*(10-15.0/(p+2)); a2=12-15.0/(p+2); } //---------------------------------------- for (int i=cbi; i>=0; i--) { sxxy=0; for (int j=1; j<=p; j++) sxxy+=j*j*Open[i+p-j]; ci=Open[i]; cp=Open[i+p]; sxy+=ci*p-sy; sy+=ci-cp; mai=sy/p; lwi=sxy/w; lri=3*lwi-2*mai; qri=3*mai+a1*sxxy-lwi*a2; qr[i]=qri; lr[i]=lri; } //---------------------------------------- return(0); } //********************************************************* [删除] 2019.08.29 14:25 #172 Yousufkhodja Sultonov: 该指标的作用 而你现在在哪里寻找幸福,又是天花板上的东西(比如采矿)? Georgiy Merts 2019.08.29 14:56 #173 ANG3110: 这里是mql4中抛物线和线性回归 的一个紧凑快速的版本,但是我仍然没有弄清楚如何在计算sxxy值时摆脱一个周期。 这有什么意义呢? 试着在其他地方应用这段代码来计算回归,比如说,如果你有一个数组的值--你必须深入了解代码的工作原理。而为什么,如果反其道而行之更合理,代码可能没有那么高效,但却很容易修改。 就个人而言,我的回归类有三个虚拟函数--获取点的数量和它们的坐标,应用回归--你应该声明一个类,将这些函数重载为所需的函数--并立即得到从零到三度的任何程度的回归多项式的系数。此外,还有两个可选的函数--用于获得权重和 "极点"(即多项式必须经过的点),但这些函数可以省略,权重将被等效为1,多项式的计算将没有极点。它可能没有那么高效(既牺牲了内部循环,也牺牲了虚拟函数),但它非常灵活,而且没有必要去琢磨它。 ANG3110 2019.08.29 16:17 #174 Georgiy Merts: 这有什么意义呢? 试着在其他地方应用这段代码来计算回归,比如说,如果你有一个数组的值--你将不得不深入到代码的工作原理中。还有,为什么在更合理的情况下,要反其道而行之,让代码不是那么有效,而是容易修改。 就个人而言,我的回归类有三个虚拟函数--获得点的数量和它们的坐标,应用回归--你必须声明一个类,这些函数必须被重载--我们立即得到从零到三度的任何程度的回归多项式的系数。此外,还有两个可选的函数--用于获得权重和 "极点"(即多项式必须经过的点),但这些函数可以省略,权重将被等效为1,多项式的计算将没有极点。它可能没有那么高效(既牺牲了内部循环,也牺牲了虚拟函数),但它非常灵活,而且没有必要去琢磨它。 这些快速变体,用于特定的目的,正是那些需要速度的地方,当测试和回归结束的位置。如果你需要系数和不同程度的多项式,那么我应用这个变体。这里代码中的系数数组--X[]。也就是说,对于绘制任何深度的曲线都有详尽的信息。如果我们谈论的是一件事的权宜之计,那可能取决于谁需要它。我不在交易中使用它,到目前为止只用于特定的研究目的。 #property strict //******************************************************************** #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 clrMediumSlateBlue #property indicator_width1 2 #property indicator_type1 DRAW_LINE //================================ extern int p = 120; extern int m = 2; //================================ double fx[]; double a[],b[],sx[],x[]; double ci,sum; int N; //******************************************************************** int init() { SetIndexBuffer(0,fx); //------------------------------------------------ N=m+1; if (p<N+2) p=N+2; ArrayResize(sx,2*N); ArrayResize(a,N*N); ArrayResize(b,N); ArrayResize(x,N); return(0); } //******************************************************************** int start() { int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1); if (cbi==0) return(0); //--------sx------- sx[0]=p; for(int n=1; n<N*2; n++) { sum=0; for(int j=0; j<p; j++) sum+=MathPow(j,n); sx[n]=sum; } //-------syx-------- for(int n=0; n<N; n++) { sum=0; for(int j=0; j<p; j++) { ci=Open[j]; if (n==0) sum+=ci; else sum+=ci*MathPow(j,n); } b[n]=sum; } //------Matrix------ for(int j=0; j<N; j++) for(int n=0; n<N; n++) a[n+j*N]=sx[n+j]; //------Gauss------- af_Gauss(N,a,b,x); //------------------ for (int j=0; j<p; j++) { sum=x[0]; for(int n=1; n<N; n++) sum+=x[n]*MathPow(j,n); fx[j]=sum; } SetIndexDrawBegin(0,Bars-p); return(0); } //*************************************************************** void af_Gauss(int M, double& A[],double& B[], double& X[]) { double r,s; for(int k=0; k<M-1; k++) for(int i=k+1; i<M; i++) { r=0; if (A[k+k*M]!=0) r=A[k+i*M]/A[k+k*M]; for(int j=k; j<M; j++) A[j+i*M]-=A[j+k*M]*r; B[i]-= B[k]*r; } if (A[M-1+(M-1)*M]!=0) X[M-1]=B[M-1]/A[M-1+(M-1)*M]; else X[M-1]=0; for(int i=M-2; i>=0; i--) { s=0; for(int j=i+1; j<M; j++) s+=A[j+i*M]*X[j]; if (A[i+i*M]!=0) X[i]=(B[i]-s)/A[i+i*M]; else X[i]=0; } } //*************************************************************** Yousufkhodja Sultonov 2019.08.29 19:12 #175 我准备驳斥根深蒂固的观点,即任何程度的多项式都是幸运和不可替代的。在参与者的真实例子中,我将证明,多项式在URM回归的几乎所有指标上都输了(上面给出了链接),所以要永远忘记多项式的不可逆性。 [删除] 2019.08.29 19:33 #176 Yousufkhodja Sultonov: 我准备驳斥那种根深蒂固的观点,即任何程度的多项式都是至关重要和不可替代的。在参与者的真实例子上,我将证明多项式在URM回归的几乎所有指标上都输了(上面我给了一个链接),以永远忘记多项式的不沉性。 不需要,你早就证明了这一点,我们相信它。 Dmitry Fedoseev 2019.08.30 19:18 #177 TheXpert: 换取什么?我不在乎他,只要他不开始在技术线程中跑来跑去,特别是关于专业人员的线程,胡说八道,戏弄会员,提到 "俱乐部 "和其他胡言乱语。 只是在这个主题中,他的捣乱行为被漂亮地转化为自我封杀,我对此表示感谢。 你怎么能越过这样的东西呢?这里是俱乐部里的另一个人--11页的废话,互相拉屎,但没有人有足够的胆量写一个正常的测试--来检查和论证他们的立场。而最好是直接联合起来,至少为自己想出办法。这就是所谓的超级技术专家的专业...我可以想象他们在自己的优点上写了什么。 这里还有一个俱乐部--拥有新概念的OOP受害者俱乐部--事实证明,如果不使用继承,就不再是OOP了,所以有了这个垃圾。他们也缺乏勇气去写一个测试,检查什么时候更快--什么时候是多态性,什么时候是捎带等等......所有这些面孔我们在C++的受害者俱乐部中都知道。 Yousufkhodja Sultonov 2019.09.03 01:58 #178 Vladimir Baskakov: 而你现在在哪里寻找幸福,又是天花板上的东西(如采矿)? 任何地方都没有 "幸福 "的食谱,寻找它是没有用的。我对已经取得的成绩感到满意。我为自己成功开发了SDMhttps://www.mql5.com/ru/articles/250 和"市场理论 "https://www.mql5.com/ru/articles/1825 而 感到自豪,但是,它们将在100年或更长时间内被理解。我之前说过,https://www.mql5.com/ru/forum/318795/page17#comment_13020163 指标坚持不懈地等待时机,现在时机已经到来。 Канал линейной регрессии 2019.08.29www.mql5.com Есть индикатор линейной регрессии. Как встроить его расчет в советник и получить данные на 0 баре или на 1... [删除] 2019.09.03 03:40 #179 Yousufkhodja Sultonov: 没有任何地方有 "幸福 "的秘方 可怜你的学生,Semko很久以前就证明这种想法是站不住脚的。 Вадим Зеленков 2020.03.06 21:25 #180 Dmitry Fedoseev: 如果你能找到一个没有递归的解决方案,那就比有递归的好。 没关系的。 1...1112131415161718 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
该指标的作用
这里是mql4中抛物线和线性回归 的一个紧凑快速的版本,但是我仍然没有弄清楚如何在计算sxxy值时摆脱一个周期。
这有什么意义呢?
试着在其他地方应用这段代码来计算回归,比如说,如果你有一个数组的值--你必须深入了解代码的工作原理。而为什么,如果反其道而行之更合理,代码可能没有那么高效,但却很容易修改。
就个人而言,我的回归类有三个虚拟函数--获取点的数量和它们的坐标,应用回归--你应该声明一个类,将这些函数重载为所需的函数--并立即得到从零到三度的任何程度的回归多项式的系数。此外,还有两个可选的函数--用于获得权重和 "极点"(即多项式必须经过的点),但这些函数可以省略,权重将被等效为1,多项式的计算将没有极点。它可能没有那么高效(既牺牲了内部循环,也牺牲了虚拟函数),但它非常灵活,而且没有必要去琢磨它。
这有什么意义呢?
试着在其他地方应用这段代码来计算回归,比如说,如果你有一个数组的值--你将不得不深入到代码的工作原理中。还有,为什么在更合理的情况下,要反其道而行之,让代码不是那么有效,而是容易修改。
就个人而言,我的回归类有三个虚拟函数--获得点的数量和它们的坐标,应用回归--你必须声明一个类,这些函数必须被重载--我们立即得到从零到三度的任何程度的回归多项式的系数。此外,还有两个可选的函数--用于获得权重和 "极点"(即多项式必须经过的点),但这些函数可以省略,权重将被等效为1,多项式的计算将没有极点。它可能没有那么高效(既牺牲了内部循环,也牺牲了虚拟函数),但它非常灵活,而且没有必要去琢磨它。
我准备驳斥那种根深蒂固的观点,即任何程度的多项式都是至关重要和不可替代的。在参与者的真实例子上,我将证明多项式在URM回归的几乎所有指标上都输了(上面我给了一个链接),以永远忘记多项式的不沉性。
不需要,你早就证明了这一点,我们相信它。
换取什么?我不在乎他,只要他不开始在技术线程中跑来跑去,特别是关于专业人员的线程,胡说八道,戏弄会员,提到 "俱乐部 "和其他胡言乱语。
只是在这个主题中,他的捣乱行为被漂亮地转化为自我封杀,我对此表示感谢。
你怎么能越过这样的东西呢?这里是俱乐部里的另一个人--11页的废话,互相拉屎,但没有人有足够的胆量写一个正常的测试--来检查和论证他们的立场。而最好是直接联合起来,至少为自己想出办法。这就是所谓的超级技术专家的专业...我可以想象他们在自己的优点上写了什么。
这里还有一个俱乐部--拥有新概念的OOP受害者俱乐部--事实证明,如果不使用继承,就不再是OOP了,所以有了这个垃圾。他们也缺乏勇气去写一个测试,检查什么时候更快--什么时候是多态性,什么时候是捎带等等......所有这些面孔我们在C++的受害者俱乐部中都知道。
而你现在在哪里寻找幸福,又是天花板上的东西(如采矿)?
任何地方都没有 "幸福 "的食谱,寻找它是没有用的。我对已经取得的成绩感到满意。我为自己成功开发了SDMhttps://www.mql5.com/ru/articles/250 和"市场理论 "https://www.mql5.com/ru/articles/1825 而 感到自豪,但是,它们将在100年或更长时间内被理解。我之前说过,https://www.mql5.com/ru/forum/318795/page17#comment_13020163 指标坚持不懈地等待时机,现在时机已经到来。
没有任何地方有 "幸福 "的秘方
如果你能找到一个没有递归的解决方案,那就比有递归的好。