Diskussion zum Artikel "Statistische Verteilungen in MQL5 - Nur das Beste aus R" - Seite 15

 

Ich danke Ihnen,

nur für den Fall (falls es wichtig ist):

Ich habe MT5 läuft über Wein in ubuntu 14

 
Ich habe MT5 läuft über Wein in ubuntu 14
und ja, das System ist 32-Bit
 

Entweder habe ich etwas durcheinander gebracht, oder es gibt ein Problem mit der empirischen Dichteberechnung. Es sieht so aus, als wären die Achsen bei der Skalierung vertauscht worden:

#include <Math\Stat\Normal.mqh>
#include <Graphics\Graphic.mqh>
#define  NR 1000
#define  N 100
void OnStart()
  { double x[N], y[N], r[NR];
   if (!MathSequenceByCount(-1,1,N,x)) {Print("MathSequenceByCount() error "); return;}
   if (!MathProbabilityDensityNormal(x,0,1,y)) {Print("MathProbabilityDensityNormal() error "); return;}
   ChartSetInteger(0,CHART_SHOW,false);
   CGraphic graphic;
   graphic.Create(0,"G",0,0,0,750,350);
   graphic.CurveAdd(x,y,CURVE_LINES,"theor.");
   if (!MathRandomNormal(0,1,NR,r)) {Print("MathRandomNormal() error "); return;}
   if (!MathProbabilityDensityEmpirical(r,N,x,y)) {Print("MathProbabilityDensityEmpirical() error "); return;} 
   graphic.CurveAdd(x,y,CURVE_LINES,"empir.");
   graphic.CurvePlotAll();
   graphic.Update(); 
   Sleep(30000);
   ChartSetInteger(0,CHART_SHOW,true);
   graphic.Destroy(); 
  }

weit weg

 

Fehler bei der Berechnung des RMS

//+------------------------------------------------------------------+
//| Berechnet die Varianz der Werte in array[] |
//+------------------------------------------------------------------+
double MathVariance(const double &array[])
  {
   int size=ArraySize(array);
//--- Datenbereich prüfen
   if(size<2)
      return(QNaN); // mindestens 2 Beobachtungen erforderlich
//--- Mittelwert berechnen
   double mean=0.0;
   for(int i=0; i<size; i++)
      mean+=array[i];
   mean=mean/size;
//--- Abweichung berechnen
   double variance=0;
   for(int i=0; i<size; i++)
      variance+=MathPow(array[i]-mean,2);
   variance=variance/(size-1);
//--- Rückgabe der Varianz
   return(variance);
  }
 
fxsaber:

Fehler bei der Berechnung des RMS

Ist das eine Antwort an jemanden oder nur ein Selbstgespräch? Morgen werde ich mir den Quellcode ansehen, vielleicht gibt es dort einen Fehler.

 
Rashid Umarov:

Ist das eine Antwort an jemanden oder nur ein Selbstgespräch? Morgen schaue ich mir den Quellcode an, vielleicht gibt es dort einen Fehler.

Der Artikel beschreibt vor allem Funktionen aus Math.mqh. Ich habe den Quellcode einer solchen Funktion extrahiert und den Fehler hervorgehoben.

 
fxsaber:

Der Artikel beschreibt vor allem Funktionen aus Math.mqh. Ich habe den Quellcode einer solchen Funktion extrahiert und den Fehler hervorgehoben.

ist die Berechnung der unverzerrten, d.h. der Standardabweichung. Das heißt, es gibt zwei quadratische :-) wenn einfach durch die Größe geteilt, dann den quadratischen Mittelwert, wenn durch die Größe-1, dann unverzerrt oder Standard. In verschiedenen Fällen werden verschiedene verwendet, aber im Falle einer großen Größe ist der Unterschied verschwindend gering
 
Maxim Kuznetsov:
ist die Berechnung der unverzerrten oder der Standardabweichung. Mit anderen Worten, es gibt zwei quadratische :-) wenn einfach durch die Größe geteilt, dann der quadratische Mittelwert, wenn durch die Größe-1 geteilt, dann die unverzerrte oder Standardabweichung. In verschiedenen Fällen werden unterschiedliche Werte verwendet, aber bei großer Größe ist der Unterschied verschwindend gering.

Ja, das stimmt.

 
Maxim Kuznetsov:
ist die Berechnung der unverzerrten oder der Standardabweichung. Mit anderen Worten, es gibt zwei quadratische :-) wenn einfach durch die Größe geteilt, dann der quadratische Mittelwert, wenn durch die Größe-1 geteilt, dann die unverzerrte oder Standardabweichung. Je nach Fall gelten andere Werte, aber bei großen Werten ist der Unterschied verschwindend gering.

Warum etwas einführen, das bei kleinen Größen nicht funktioniert und sich bei großen Größen nur minimal unterscheidet?!

Sie können in MathMean durch (Größe-1) dividieren. Fast niemand wird es bemerken.


ZY R zählt auch durch (size-1)? Ich habe in MathMean nachgesehen - es teilt durch Größe. Wolfram - durch (Größe-1). Dummheit.

Wolfram|Alpha: Computational Knowledge Engine
Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
fxsaber:

Warum etwas einführen, das bei kleinen Größen nicht funktioniert und sich bei großen Größen nur minimal unterscheidet!

Sie können in MathMean durch (Größe-1) dividieren. Fast niemand wird es bemerken.

Da müssen Sie schon einen Kurs in mathematischer Statistik belegen :-)) Betrachten Sie es als eine göttliche Wahrheit, die uns von oben und in Form von GOST gegeben wurde.