KimIV的有用功能 - 页 47 1...404142434445464748495051525354...128 新评论 Prival 2008.09.10 09:30 #461 如果你这样称呼它,对我来说也是一样的。 for (int i=0; i<r; i++) { Y[i]=Close[i+1]; X[i]=i; } Array_LR(X, Y); for (i=0; i<r; i++) { SetArrow(170, Blue, "arr"+i+r, Time[i+1], Y[i]); } 诚然,两种变体中的点并不完全重叠。但这很可能是SetArrow()的一个特殊性。 这里有一张图片 Igor Kim 2008.09.10 10:15 #462 Prival писал (а)>> 诚然,两种变体中的点并不完全重叠。但这很可能是SetArrow()的一个特性。 不,这是OBJ_ARROW图形对象的一个特征。它不是由质心固定,而是由上界的中间固定。 Igor Kim 2008.09.15 10:37 #463 ArrayMo()函数。 返回Modu - 分布密度曲线的最大值。该函数接受以下可选参数。 x- 数字系列值的数组。 d- 数字系列值的准确性,小数点后的数字。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 21.06.2008 | //| Описание : Возвращает Моду - максимум кривой плотности распределения. | //+----------------------------------------------------------------------------+ //| Параметры: | //| x - массив значений числового ряда | //| d - точность значений числового ряда, количество знаков после запятой | //+----------------------------------------------------------------------------+ double ArrayMo(double& x[], int d=4) { double e, s=0; double m[][2]; // временный массив: // столбец 1 - количество значений // столбец 2 - значения int i, k=ArraySize(x); int n; // номер строки временного массива m int r; // количество строк во временном массиве m if (k>0) { for (i=0; i<k; i++) { e=NormalizeDouble(x[i], d); n=ArraySearchDouble(m, e); if (n<0) { r=ArrayRange(m, 0); ArrayResize(m, r+1); m[r][0]++; m[r][1]=e; } else m[n][0]++; } ArraySort(m, WHOLE_ARRAY, 0, MODE_DESCEND); s=m[0][1]; } else Print("ArrayMo(): Массив пуст!"); return(s); } Igor Kim 2008.09.15 10:39 #464 使用ArrayMo()函数的例子。 确定在当前图表的最后1000个左右的条形图中最经常出现的高价位。 #define R 1000 void start() { double a[R]; for (int i=0; i<R; i++) a[i]=High[i]; Message(ArrayMo(a, 4)); } 附上一个测试ArrayMo()函数的脚本。 附加的文件: test_arraymo.mq4 5 kb Igor Kim 2008.09.15 12:13 #465 b-Array 函数库已经完整发布,并被设计用于处理数组。 Prival 2008.09.15 14:13 #466 还有一个,计算协方差 //+----------------------------------------------------------------------------+ //| Автор : Сергей Привалов aka Prival, Skype: privalov-sv | //+----------------------------------------------------------------------------+ //| Версия : 11.09.2008 | //| Описание : Рассчет ковариации массива cvar(X,Y) | //+----------------------------------------------------------------------------+ //| Параметры: | //| X - массив значений числового ряда, ось X | //| Y - массив значений числового ряда, ось Y | //+----------------------------------------------------------------------------+ double cvar(double &X[], double &Y[]) { double mo_X = 0, mo_Y = 0, res = 0; int i,N=ArraySize(X); if(N>1 && ArraySize(Y)==N) { for( i = 0; i < N; i ++ ) { mo_X +=X[i]-X[0]; mo_Y +=Y[i]; } mo_X /=N; mo_Y /=N; for( i = 0; i < N; i ++ ) res +=(X[i]-mo_X)*(Y[i]-mo_Y); res /=N; } else Print("cvar(): Недостаточное количество элементов ряда! N=", N, " или не совпадает размерность"); return(res); 纠正了。 TheXpert 2008.09.15 15:09 #467 Prival писал (а)>> 还有一个,计算协方差 将其添加到库中。虽然有更多的数组(矩阵)定义。但我认为我们会逐渐填补它。 有几个问题。 1.什么是mo_XY? 2.在以X为单位的MOs积累线中 mo_X +=X[i]-X[0]; 为什么要拿掉X[0]? 3.为什么要对X阵列进行排序? Prival 2008.09.15 15:32 #468 1. 可以删除mo_XY,检查不同的计算选项。这是不良变体留下的。 2.我引用的这个算法,如果Time[]以X的形式出现,那么在计算中出错的几率很小。大数的乘法会逐渐导致误差的积累,并会出现。正是为了这个目的,消除可能出现的这种错误,X被(额外地)移到原点,减去X[0]。 3.我想得太多了,也许是我想错了。 主要是在X中输入的数值与Y对应。 我现在就去纠正它。 Prival 2008.09.15 16:53 #469 mo_X += X[0]; // 可能被遗忘了 。 这是一个不必要的操作。你可以仔细检查一下。 Prival 2008.09.15 18:13 #470 TheXpert писал (а)>> 我不同意。 不信任是一个很好的经验法则。在任何数学软件包中都可以查到。我们将公布结果。我现在就在MathCade里做。 1...404142434445464748495051525354...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你这样称呼它,对我来说也是一样的。
诚然,两种变体中的点并不完全重叠。但这很可能是SetArrow()的一个特殊性。
这里有一张图片
诚然,两种变体中的点并不完全重叠。但这很可能是SetArrow()的一个特性。
不,这是OBJ_ARROW图形对象的一个特征。它不是由质心固定,而是由上界的中间固定。
ArrayMo()函数。
返回Modu - 分布密度曲线的最大值。该函数接受以下可选参数。
使用ArrayMo()函数的例子。
确定在当前图表的最后1000个左右的条形图中最经常出现的高价位。
附上一个测试ArrayMo()函数的脚本。b-Array 函数库已经完整发布,并被设计用于处理数组。
还有一个,计算协方差
纠正了。
还有一个,计算协方差
将其添加到库中。虽然有更多的数组(矩阵)定义。但我认为我们会逐渐填补它。有几个问题。
1.什么是mo_XY?
2.在以X为单位的MOs积累线中
1. 可以删除mo_XY,检查不同的计算选项。这是不良变体留下的。
2.我引用的这个算法,如果Time[]以X的形式出现,那么在计算中出错的几率很小。大数的乘法会逐渐导致误差的积累,并会出现。正是为了这个目的,消除可能出现的这种错误,X被(额外地)移到原点,减去X[0]。
3.我想得太多了,也许是我想错了。 主要是在X中输入的数值与Y对应。
我现在就去纠正它。
这是一个不必要的操作。你可以仔细检查一下。
我不同意。
不信任是一个很好的经验法则。在任何数学软件包中都可以查到。我们将公布结果。我现在就在MathCade里做。