Ich glaube gerne, dass viele Funktionen mit beschleunigter Berechnung hergestellt werden können. So wie man einen Wert vom Ende einer Periode subtrahiert und einen neuen Wert am Anfang hinzufügt, ohne einen Zyklus.
Hier ist ein Beispiel dafür, wie Sie verschiedene Arten von Filtern berechnen können, von der einfachen Wellenform bis zur linearen Regression ohne Zyklus.
Hier bei N=0 - normale SMA, N=1 - linear gewichtet, N=3 - lineare Regression. Und man kann auch Zwischenwerte erhalten, da N eine Bruchzahl ist. Ich habe auch den RMS auf ähnliche Weise berechnet. Ich denke, die polynomiale Regression kann auf die gleiche Weise durchgeführt werden. Es wäre eine praktische Notwendigkeit. Zumindest ist es mir noch nicht gelungen, die polynomiale Regression in profitablen Expert Advisors einzusetzen. Kanäle auf EMAs sind einfacher und funktionieren in der Praxis gut.
Hier ist eine leicht manipulierte Variante der linearen Regression auf mq4 mit RMS ohne Zyklus. Es gibt einen Zyklus einmal bei der Einleitung, genauer gesagt, bei der Berechnung der ersten Wertemenge, und das ist alles, - dann gibt es nur noch Summen und Differenzen. Eine Besonderheit ist, dass der Zeitraum in Stunden angegeben wird und beim Wechsel des Zeitrahmens neu berechnet wird.
#property strict#property indicator_chart_window#property indicator_buffers6#property indicator_color1clrDodgerBlue#property indicator_color2clrOrangeRed#property indicator_color3clrLavender#property indicator_color4clrLavender#property indicator_color5clrMediumAquamarine#property indicator_color6clrMagenta#property indicator_width12#property indicator_width22#property indicator_style52#property indicator_type1DRAW_LINE#property indicator_type2DRAW_LINE#property indicator_type3DRAW_LINE#property indicator_type4DRAW_LINE#property indicator_type5DRAW_LINE#property indicator_type6DRAW_LINE//===========================externdouble hrLR = 12;
externdouble ksq = 1;
externint i0 = 1;
externint SPR = 1;
//===========================double ss[],ssL[],sH[],sL[],ma[],sU[];
double lri,sq,mai,ui,spr2;
int p,fs;
//******************************************************************int init()
{
SetIndexBuffer(0,ss);
SetIndexBuffer(1,ssL); SetIndexEmptyValue(1,0);
SetIndexBuffer(2,sH);
SetIndexBuffer(3,sL);
SetIndexBuffer(4,ma);
SetIndexBuffer(5,sU);
//--------------------
p=int(hrLR*60/Period()); if (p<3) p=3;
if (SPR<0) spr2=-SPR*Point/2;
return(0);
}
//******************************************************************int start()
{
int cbi=Bars-IndicatorCounted()-1; if (cbi<0) return(-1);
if (i0==1 && cbi==0) return(0); if (cbi==1) cbi=0;
if (SPR>0) spr2=NormalizeDouble(Ask-Bid,Digits)/2;
if (cbi>1)
{
cbi=Bars-p-1;
af_LR0(0,cbi); ui=mai;
}
//------------------------------for(int i=cbi; i>=0; i--)
{
lri=af_LR0(1,i);
ss[i]=lri;
sH[i]=lri+sq;
sL[i]=lri-sq;
ma[i]=mai;
if (sL[i]>ui) ui=sL[i]; elseif (sH[i]<ui) ui=sH[i];
sU[i]=ui;
if (ss[i]>ss[i+1]) fs=1;
if (ss[i]<ss[i+1]) {if (fs==1) ssL[i+1]=ss[i+1]; fs=2;}
if (fs==2) ssL[i]=ss[i]; elseif (fs==1) ssL[i]=0.0;
}
return(0);
}
//********************************************************************double af_LR0(int index, int i)
{
staticdouble sx,syp,sxy,syyp,S;
double ci=0,c1=0,cp=0,sy,syy,aa,bb;
staticint ti;
if (index==1)
{
if (ti!=Time[i])
{
if (i0==0) {c1=Close[i+1]+spr2; cp=Close[i+p]+spr2;} elseif (i0==1) {c1=Open[i+1]+spr2; cp=Open[i+p]+spr2;} elseif (i0==2) {c1=(High[i+1]+Low[i+1])/2+spr2; cp=(High[i+p]+Low[i+p])/2+spr2;}
sxy+=syp+c1-p*cp;
syp+=c1-cp;
syyp+=c1*c1-cp*cp;
ti=int(Time[i]);
}
}
else
{
int j;
double sxx;
sx=0.0; sxx=0.0;
for (j=0; j<p; j++) {sx+=j; sxx+=j*j;}
S=sx*sx-p*sxx;
syp=0.0; sxy=0.0; syyp=0.0;
for (j=1; j<p; j++)
{
if (i0==0) ci=Close[i+j]+spr2; elseif (i0==1) ci=Open[i+j]+spr2; elseif (i0==2) ci=(High[i+j]+Low[i+j])/2+spr2;
syp+=ci;
sxy+=j*ci;
syyp+=ci*ci;
}
ti=int(Time[i]);
}
if (i0==0) ci=Close[i]+spr2; elseif (i0==1) ci=Open[i]+spr2; elseif (i0==2) ci=(High[i]+Low[i])/2+spr2;
sy=syp+ci;
syy=syyp+ci*ci;
aa=(sx*sy-p*sxy)/S;
bb=(sy-aa*sx)/p;
sq = (syy - aa*sxy - bb*sy)/(p-2);
if (sq>=0) sq = MathSqrt(sq)*ksq;
mai=sy/p;
return(bb);
}
//********************************************************************
Wie viel schneller wird Ihr Code dadurch ausgeführt?
Eine ganze Menge sogar. Ich habe es mit GetTickCount() gemessen. Aber es ist gut spürbar, wenn man viele Optimierungen vornehmen muss. Es ist eine Sache, wenn man mehrere Stunden lang viele Varianten zählen muss, und eine andere Sache, wenn man dies in einigen Dutzend oder Einheiten von Minuten tun muss. Aber das ist selten nötig. Deshalb sollten Sie sich nicht zu sehr damit befassen.
Ich glaube gerne, dass es möglich ist, viele Funktionen mit beschleunigter Berechnung auszuführen. So wie man einen Wert vom Ende einer Periode subtrahiert und einen neuen Wert am Anfang hinzufügt, ohne einen Zyklus.
Hier ist ein Beispiel dafür, wie Sie verschiedene Arten von Filtern berechnen können, von der einfachen Wellenform bis zur linearen Regression, ohne Zyklus.
Hier bei N=0 - normale SMA, N=1 - linear gewichtet, N=3 - lineare Regression. Und man kann auch Zwischenwerte erhalten, da N eine Bruchzahl ist. Ich habe auch den RMS auf ähnliche Weise berechnet. Ich denke, die polynomiale Regression kann auf die gleiche Weise durchgeführt werden. Es wäre eine praktische Notwendigkeit. Zumindest ist es mir noch nicht gelungen, die polynomiale Regression in profitablen Expert Advisors einzusetzen. Kanäle auf EMAs sind einfacher und funktionieren in der Praxis gut.
Hier ist eine etwas komplexere Variante der linearen Regression in mq4 mit RMS ohne Schleifen. Es gibt einen Zyklus einmal bei der Einführung, genauer gesagt, bei der Berechnung der ersten Ablesung, und das war's - dann gibt es nur noch Summen und Differenzen. Natürlich rechnet er um ein Vielfaches schneller als mit Zyklen.
Ja, das ist richtig. Dies ist ein echtes Beispiel für die zyklusfreie RMS-Berechnung bei der linearen Regression. Allerdings liegt irgendwo im Algorithmus ein kleiner Fehler vor, der dazu führt, dass alle drei Linien (Mitte, Ober- und Untergrenze des Kanals) nach oben verschoben sind.
Ja, das ist richtig. Dies ist ein echtes Beispiel für die zyklusfreie RMS-Berechnung bei der linearen Regression. Allerdings liegt irgendwo im Algorithmus ein kleiner Fehler vor, der dazu führt, dass alle drei Linien (Mitte, Ober- und Untergrenze des Kanals) nach oben verschoben sind.
Und das ist nur die Hälfte der Spanne, die zusammengezählt wird. Ich habe dies einmal getan, um einen Trading Expert Advisor zu testen, um eine Ausrichtung relativ zu - Ask-Bid zu haben. Wenn Sie SPR=0 einstellen, gibt es keinen Versatz. Es wird ausschließlich auf die Angebotspreise abgestellt.
ANG3110: Und da ist nur die Hälfte des Aufschlags eingerechnet. Ich habe dies einmal getan, um einen Trading Expert Advisor zu testen, um eine Ausrichtung relativ zu - Ask-Bid zu haben. Wenn wir SPR=0 setzen, gibt es keinen Versatz. Es wird ausschließlich auf die Angebotspreise abgestellt.
Ja, genau. Eine vollständige Übereinstimmung mit meiner Implementierung der linearen Regression.
Vladimir Baskakov: Wie verhält sich der Sultonov-Indikator? Hat er bereits das Rückgrat des Devisenmarktes gebrochen oder ist er dabei, dies zu tun?
Der Indikator arbeitet auf einem realen Ein-Cent-Konto bei der UPU auf einer "run and forget"-Basis mit einer Einzahlung von 48 c.u. Im zweiten Monat pendelte sie um die 50 und wartete offenbar auf ihre Zeit. Es ist unmöglich, mehr als 10 % pro Jahr auf dem Forex zu erhalten, stabil und ohne Risiko, vorausgesetzt, dass die Gewinne über viele Jahre reinvestiert werden - das sind meine Schlussfolgerungen über das Rückgrat des Forex. Die voreiligen Schlussfolgerungen von vor 8 Jahren sind durch die Realität des Marktes zunichte gemacht worden. Das leistungsfähige universelle Regressionsmodell hat kläglich versagt und bankfähige Gewinne produziert. Die URM leistet hervorragende Arbeit in Bezug auf alle technischen, sozialen, bergbaulichen (Gewinnung von Gold aus armen Erzen) und sonstigen Prozesse, mit Ausnahme des Marktaspekts. Die Schlussfolgerung ist, dass Regressionsmodelle nur ein begrenztes Potenzial haben, um Gewinne aus dem Markt zu ziehen.
Ich glaube gerne, dass viele Funktionen mit beschleunigter Berechnung hergestellt werden können. So wie man einen Wert vom Ende einer Periode subtrahiert und einen neuen Wert am Anfang hinzufügt, ohne einen Zyklus.
Hier ist ein Beispiel dafür, wie Sie verschiedene Arten von Filtern berechnen können, von der einfachen Wellenform bis zur linearen Regression ohne Zyklus.
Hier bei N=0 - normale SMA, N=1 - linear gewichtet, N=3 - lineare Regression. Und man kann auch Zwischenwerte erhalten, da N eine Bruchzahl ist. Ich habe auch den RMS auf ähnliche Weise berechnet. Ich denke, die polynomiale Regression kann auf die gleiche Weise durchgeführt werden. Es wäre eine praktische Notwendigkeit. Zumindest ist es mir noch nicht gelungen, die polynomiale Regression in profitablen Expert Advisors einzusetzen. Kanäle auf EMAs sind einfacher und funktionieren in der Praxis gut.
Hier ist eine leicht manipulierte Variante der linearen Regression auf mq4 mit RMS ohne Zyklus. Es gibt einen Zyklus einmal bei der Einleitung, genauer gesagt, bei der Berechnung der ersten Wertemenge, und das ist alles, - dann gibt es nur noch Summen und Differenzen. Eine Besonderheit ist, dass der Zeitraum in Stunden angegeben wird und beim Wechsel des Zeitrahmens neu berechnet wird.
Warum hat sich Fedosejew selbst verlassen, wenn er richtig argumentiert hat?
Weil er falsch argumentiert hat.
Lesen Sie das Thema.
Wie sehr beschleunigt es die Codeausführung?
Was bedeutet "keine Schleife" für Sie?
Wie viel schneller wird Ihr Code dadurch ausgeführt?
Ich glaube gerne, dass es möglich ist, viele Funktionen mit beschleunigter Berechnung auszuführen. So wie man einen Wert vom Ende einer Periode subtrahiert und einen neuen Wert am Anfang hinzufügt, ohne einen Zyklus.
Hier ist ein Beispiel dafür, wie Sie verschiedene Arten von Filtern berechnen können, von der einfachen Wellenform bis zur linearen Regression, ohne Zyklus.
Hier bei N=0 - normale SMA, N=1 - linear gewichtet, N=3 - lineare Regression. Und man kann auch Zwischenwerte erhalten, da N eine Bruchzahl ist. Ich habe auch den RMS auf ähnliche Weise berechnet. Ich denke, die polynomiale Regression kann auf die gleiche Weise durchgeführt werden. Es wäre eine praktische Notwendigkeit. Zumindest ist es mir noch nicht gelungen, die polynomiale Regression in profitablen Expert Advisors einzusetzen. Kanäle auf EMAs sind einfacher und funktionieren in der Praxis gut.
Hier ist eine etwas komplexere Variante der linearen Regression in mq4 mit RMS ohne Schleifen. Es gibt einen Zyklus einmal bei der Einführung, genauer gesagt, bei der Berechnung der ersten Ablesung, und das war's - dann gibt es nur noch Summen und Differenzen. Natürlich rechnet er um ein Vielfaches schneller als mit Zyklen.
Ja, das ist richtig. Dies ist ein echtes Beispiel für die zyklusfreie RMS-Berechnung bei der linearen Regression.
Allerdings liegt irgendwo im Algorithmus ein kleiner Fehler vor, der dazu führt, dass alle drei Linien (Mitte, Ober- und Untergrenze des Kanals) nach oben verschoben sind.
Ja, das ist richtig. Dies ist ein echtes Beispiel für die zyklusfreie RMS-Berechnung bei der linearen Regression.
Allerdings liegt irgendwo im Algorithmus ein kleiner Fehler vor, der dazu führt, dass alle drei Linien (Mitte, Ober- und Untergrenze des Kanals) nach oben verschoben sind.
Was bedeutet dieses "no loop" für Sie?
Wie viel schneller wird Ihr Code dadurch ausgeführt?
Allein die Berechnung des Effektivwerts kann je nach Periode einen Gewinn von etwa 10 bis 1.000 ergeben.
Und da ist nur die Hälfte des Aufschlags eingerechnet. Ich habe dies einmal getan, um einen Trading Expert Advisor zu testen, um eine Ausrichtung relativ zu - Ask-Bid zu haben. Wenn wir SPR=0 setzen, gibt es keinen Versatz. Es wird ausschließlich auf die Angebotspreise abgestellt.
Ja, genau. Eine vollständige Übereinstimmung mit meiner Implementierung der linearen Regression.
Wie verhält sich der Sultonov-Indikator? Hat er bereits das Rückgrat des Devisenmarktes gebrochen oder ist er dabei, dies zu tun?
Der Indikator arbeitet auf einem realen Ein-Cent-Konto bei der UPU auf einer "run and forget"-Basis mit einer Einzahlung von 48 c.u. Im zweiten Monat pendelte sie um die 50 und wartete offenbar auf ihre Zeit. Es ist unmöglich, mehr als 10 % pro Jahr auf dem Forex zu erhalten, stabil und ohne Risiko, vorausgesetzt, dass die Gewinne über viele Jahre reinvestiert werden - das sind meine Schlussfolgerungen über das Rückgrat des Forex. Die voreiligen Schlussfolgerungen von vor 8 Jahren sind durch die Realität des Marktes zunichte gemacht worden. Das leistungsfähige universelle Regressionsmodell hat kläglich versagt und bankfähige Gewinne produziert. Die URM leistet hervorragende Arbeit in Bezug auf alle technischen, sozialen, bergbaulichen (Gewinnung von Gold aus armen Erzen) und sonstigen Prozesse, mit Ausnahme des Marktaspekts. Die Schlussfolgerung ist, dass Regressionsmodelle nur ein begrenztes Potenzial haben, um Gewinne aus dem Markt zu ziehen.