文章 "MQL5 中的统计分布 - 取最佳的 R" - 页 15

 

谢谢、

以防万一(以防万一):

我在 ubuntu 14 中通过 wine 运行 MT5。

 
我在 ubuntu 14
中通过 wine 运行 MT5,没错,系统是 32 位的。
 

要么是我弄错了什么,要么是经验密度计算有问题。看起来好像是在缩放过程中混淆了坐标轴:

#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(); 
  }

远方

 

有效值计算误差

//+------------------------------------------------------------------+
//} 计算数组[]中数值的方差。
//+------------------------------------------------------------------+
double MathVariance(const double &array[])
  {
   int size=ArraySize(array);
//--- 检查数据范围
   if(size<2)
      return(QNaN); // 至少需要 2 次观测
//--- 计算平均值
   double mean=0.0;
   for(int i=0; i<size; i++)
      mean+=array[i];
   mean=mean/size;
//--- 计算方差
   double variance=0;
   for(int i=0; i<size; i++)
      variance+=MathPow(array[i]-mean,2);
   variance=variance/(size-1);
//--- 返回方差
   return(variance);
  }
 
fxsaber:

计算有效值时出现错误

这是给某人的答复还是自言自语?明天我会看看源代码,也许那里有错误。

 
Rashid Umarov:

这是在回答某人还是在自言自语?明天我再看看源代码,也许那里有错误。

这篇文章特别描述了 Math.mqh 中的函数。我提取了其中一个函数的源代码,并标出了错误。

 
fxsaber:

这篇文章特别描述了 Math.mqh 中的函数。我提取了其中一个函数的源代码并突出显示了错误。

是计算无偏差,即标准偏差。也就是说,有两个二次方:-)如果简单地按大小-划分,则是均方差,如果按大小-1划分,则是无偏差或标准差。在不同的情况下使用不同的计算公式,但在规模较大的情况下,两者之间的差别微乎其微。
 
Maxim Kuznetsov:
是计算无偏差或标准偏差。换句话说,有两个二次方:-)如果简单除以大小-,则是均方差,如果除以大小-1,则是无偏差或标准偏差。在不同的情况下使用不同的值,但在大尺寸时,两者的差别会非常小。

是的

 
Maxim Kuznetsov:
是计算无偏差或标准偏差。换句话说,有两个二次方:-)如果简单除以大小-,则是均方差,如果除以大小-1,则是无偏差或标准偏差。在不同的情况下适用不同的计算公式,但在大尺寸情况下,两者之间的差别微乎其微。

为什么要引入一种在小尺寸时不起作用,而在大尺寸时差别很小的方法呢?

您可以在 MathMean 中除以(size-1)。几乎没有人会注意到。


ZY R 也是通过 (size-1) 计算的吗?我在 MathMean 中检查过了--它是按大小除的。Wolfram- 除以 (size-1)。真蠢。

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:

为什么要引入在小尺寸下不起作用,而在大尺寸下差别很小的东西呢?

您可以在 MathMean 中除以(size-1)。几乎没有人会注意到。

这就需要你去学一门数理统计课程了 :-))把它看作是上天以 GOST 的形式赐予我们的神圣真理吧。