很久以前,我 在MQL3中写了 线性回归指标,开始在4中重写,它们没有工作。专家们请帮助我写作或纠正一个错误。
还有一个类似的:双曲回归(也找不到错误)。
//+------------------------------------------------------------------+ //| гиперболическая регрессия.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //#property indicator_chart_window #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int nn=21; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- double barr, as, bs,cs,ds,e, f,k,LR,ExtMapBuffer1[]; int n,n1; // Индикатор Гиперболической Регресии for (barr=0;barr<=100;barr++){ for (n=1;n<=nn;n++){ n1=barr+n-1; as=as+1/n; bs=bs+1/(n*n); cs=cs+Close[n1]; ds=ds+Close[n1]/n; } e=nn*bs-as*as; f=cs*bs-ds*as; k=nn*ds-as*cs; f=f/e; k=k/e; LR = f+k/nn; as=0; bs=0; cs=0; ds=0; ExtMapBuffer1[n]=LR; } //---- return(0); } //+------------------------------------------------------------------+
https://forum.mql4.com/ru/10446/page13
谢谢,很有意思,但我在哪里弄乱了指标?
kvn:
谢谢,很有意思,但我在哪里弄乱了指标?
这就对了--搞砸了。
谢谢,很有意思,但我在哪里弄乱了指标?
Rosh:
这是正确的 -我 搞砸了。
kvn。
谢谢,很有意思,但我在哪里弄乱了指标?
谢谢,很有意思,但我在哪里弄乱了指标?
这是正确的 -我 搞砸了。
你是识字的,对吗? 那就告诉我在哪里。 而且非常感谢你。
kvn:
那就告诉我在哪里,非常感谢你。
这里已经有很多关于这个主题的信息。我只能给你一个大致的概念:从近似曲线的标准偏差之和的方程,有多少给定的参数就有多少。然后找到每个参数的偏导数,并将其等效为零。从所产生的线性方程组中可以找到所有必要的参数。正如你所看到的,这个算法很简单,而且做起来一点都不费劲。
罗什。
这就对了--搞砸了。
kvn。
谢谢,很有意思,但我在哪里弄乱了指标?
谢谢,很有意思,但我在哪里弄乱了指标?
这就对了--搞砸了。
那就告诉我在哪里,非常感谢你。
你所说的并不完全是线性回归。我的指标中描述了LR技术。
//使用公式建立指标:LR = at+b
//where LR - 预测的收盘 "平均 "价格。
//t--时间点,Pt--过去N期的收盘价。
/a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - 回归线的角正切。
//b = 1/n*(SUMM(Pt) - a*SUMM(t)), - 横移}。
但当我执行它时,首先得到的是错误的数据(当n=1-100时,),然后n=22,正确的数值就出来了。某处有一个小错误,我找不到了。
我怀疑错误出在循环运算符上。
//使用公式建立指标:LR = at+b
//where LR - 预测的收盘 "平均 "价格。
//t--时间点,Pt--过去N期的收盘价。
/a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - 回归线的角正切。
//b = 1/n*(SUMM(Pt) - a*SUMM(t)), - 横移}。
但当我执行它时,首先得到的是错误的数据(当n=1-100时,),然后n=22,正确的数值就出来了。某处有一个小错误,我找不到了。
我怀疑错误出在循环运算符上。
虽然我不喜欢维基百科,但我还是提供一个关于线性回归主题 的链接。我还在某个博客上发现了这个--http://cmacfm.mazoo.net/archives/000936.html
我不会争论LR的问题。那么,指标代码??????? 中的错误在哪里呢?