你是如何对MA饲料集群的检测进行算法的? - 页 11 1...456789101112131415161718 新评论 Aleksey Nikolayev 2020.10.02 13:23 #101 Mikhail Toptunov:所以莫达是每三分之一(x[2],x[5]......)或只有x[2]是莫达。对不起,我不明白它是...(相当于数组pdf[i] 的最大值(函数的第四个参数。)) 类似这样的事情。 #include <Math\Stat\Math.mqh> void OnStart() { double a[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.55, 0.56, 0.565, 0.57, 0.58, 0.59, 0.6, 0.7, 0.8, 0.9}; double mode, eps = 0.01; mode = mode_calc(a, eps); Print("mode = ", mode); } //+------------------------------------------------------------------+ double mode_calc(double &a[], double eps)// вычисление моды для выборки a[] с точностью eps { double x[], pdf[]; MathSequence(MathMin(a), MathMax(a), eps, x); int n = ArraySize(x); ArrayResize(pdf, n); MathProbabilityDensityEmpirical(a, n, x, pdf); int ix = ArrayMaximum(pdf); return x[ix]; } Mikhail Toptunov 2020.10.02 13:34 #102 Maxim Kuznetsov:以一种简单明了的方式,没有优化、矩阵和复杂的数学。1.对于当前柱状图,分别计算所有的MAs。我们得到SMA[N]数组,其中包含了N以内的最大值的值2.我们创建一个热图[M],它涵盖了从最小=1.00000的价格,每个元素负责(例如)10个点。3.我们填充这个 "原始 "热图:我们取每个ma值,看看它指的是哪个单元。index=(SMA[i]-minimum)/resolution。我们增加这个单元格的值 hetmap[index]+=1.0你可以将结果输出到CSV,并认为4.平滑 "原始 "热图值:启动数组smooth[],读取从i窗口到i+窗口(含)的热图平均值smotch[i]。5.smootch的局部最大值将表明一个 "饲料集群"。我希望你知道如何寻找最大值 :-)第1-5点可以用数学方法分解和计算,速度快得多,只需最少的循环和额外的数组,但不一定更直观。 我不明白hetmap[index],index-(如果500MA为例, 而分辨率=10点)会是多少? 他妈的,什么是最小=1.00000。 根据我的理解: 一般来说,没有办法,似乎我们需要比较两个最近的MA,如果小于1,就写到hetmap[i]。 Mikhail Toptunov 2020.10.02 13:35 #103 Dmitry Fedoseev:这张热力图是如何体现的? 对不起,我不明白该从哪方面着手! Dmitry Fedoseev 2020.10.02 13:40 #104 Mikhail Toptunov:对不起,那我不知道该走哪条路! 我想我们应该从学习一本ABC书开始。 Mikhail Toptunov 2020.10.02 13:55 #105 Dmitry Fedoseev:似乎你必须从学习ABC书开始。 这就是我可以做的,这是最好的选择!!。但这是***。 Dmitry Fedoseev 2020.10.02 13:59 #106 Mikhail Toptunov:这是我可以做的,这是最好的选择!!!但这是***。 那里标记的群组在哪里? Maxim Kuznetsov 2020.10.02 14:14 #107 你将如何寻找直线上的点群?最简单的是计算平均值(密度dljat)。这里也是如此。 Dmitry Fedoseev 2020.10.02 15:12 #108 进入深度冥想,寻找 "dljat "一词的含义...... Mikhail Toptunov 2020.10.03 04:12 #109 Dmitry Fedoseev:群集的标记在哪里? 一般来说,有必要计算一个束向另一个束过渡的时刻,也就是集群改变运动的时候。 据称,图片显示这些时刻在50ur phyb点。 Maxim Kuznetsov: 你将如何在一条直线上搜索点群? 最简单的是计算平均值(dljats的密度)。 这里也是如此。 如果(MA[i-1]-MA[i])+(MA[i]-MA[i+1])<0.005那么 在МА[i]区域内(例如,指数i的+-10值),我寻找MA的最小值 并将集群点的参数写入类中(在类中创建一个对象)。 识别相邻的捆绑物(捆绑物本身),专门用于相邻的条形物。也就是说,我通过类对象 来寻找一个句号和一个条形的接近性。 并看到物体束的倾向性 Mikhail Toptunov 2020.10.03 05:23 #110 一般来说,我做这种行为 void medianaL0_0(const int rates_total,const datetime &time[]) { double masPra[Pmax]; // хранение цены МА int masPer[Pmax]; // хранение Периода CountPO=0; ArrayResize(PO,CountPO); ZeroMemory(PO); for(int b=rates_total-Pmax; b<rates_total; b++) { for(int p=2; p<Pmax; p++) // отбор по периодам { masPra[p]=sm.d[p-1].m[b]; masPer[p]=p; } MathQuickSort(masPra,masPer,2,Pmax-1,1); medianaL0_2(masPra,masPer,b,time); } } void medianaL0_2(const double &masPra[],const int &masPer[],int bar,const datetime &time[]) { double m[Pmax],x=0,y=0; for(int i=5; i<Pmax-1; i++) { filter0_0(i); x=MathAbs(masPra[i-1]-masPra[i]); //MathSqrt y=MathAbs(masPra[i]-masPra[i+1]); int a=MathAbs(masPer[_ot]-masPer[i]); int b=MathAbs(masPer[i]-masPer[_do]); if(masPer[i]-masPer[i-1]<=_ot)//&&masPer[i+1]-masPer[i]<=_ot m[i]=x+y; else m[i]=-1; } medianaL0_3(masPra,masPer,bar,time,m); } void medianaL0_3(const double &masPra[],const int &masPer[],int bar,const datetime &time[],const double &m[]) { for(int i=5; i<Pmax-1; i++) { filter0_0(i); int z=ArrayMinimum(m,_ot,_do); if(m[z]<=0.005&&m[z]!=-1) { ArrayResize(PO,CountPO+1); PO[CountPO].bar=bar; PO[CountPO].period=masPer[i]; PO[CountPO].mediana=i; PO[CountPO].praceMA=masPra[i]; PO[CountPO].time=time[bar]; CountPO++; } i=i+_do; } } 1...456789101112131415161718 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以莫达是每三分之一(x[2],x[5]......)或只有x[2]是莫达。
对不起,我不明白它是...(相当于数组pdf[i] 的最大值(函数的第四个参数。))
类似这样的事情。
以一种简单明了的方式,没有优化、矩阵和复杂的数学。
1.对于当前柱状图,分别计算所有的MAs。我们得到SMA[N]数组,其中包含了N以内的最大值的值
2.我们创建一个热图[M],它涵盖了从最小=1.00000的价格,每个元素负责(例如)10个点。
3.我们填充这个 "原始 "热图:我们取每个ma值,看看它指的是哪个单元。index=(SMA[i]-minimum)/resolution。我们增加这个单元格的值 hetmap[index]+=1.0
你可以将结果输出到CSV,并认为
4.平滑 "原始 "热图值:启动数组smooth[],读取从i窗口到i+窗口(含)的热图平均值smotch[i]。
5.smootch的局部最大值将表明一个 "饲料集群"。我希望你知道如何寻找最大值 :-)
第1-5点可以用数学方法分解和计算,速度快得多,只需最少的循环和额外的数组,但不一定更直观。
我不明白hetmap[index],index-(如果500MA为例, 而分辨率=10点)会是多少?
他妈的,什么是最小=1.00000。
根据我的理解:
一般来说,没有办法,似乎我们需要比较两个最近的MA,如果小于1,就写到hetmap[i]。
这张热力图是如何体现的?
对不起,我不明白该从哪方面着手!
对不起,那我不知道该走哪条路!
我想我们应该从学习一本ABC书开始。
似乎你必须从学习ABC书开始。
这就是我可以做的,这是最好的选择!!。但这是***。
这是我可以做的,这是最好的选择!!!但这是***。
那里标记的群组在哪里?
群集的标记在哪里?
一般来说,有必要计算一个束向另一个束过渡的时刻,也就是集群改变运动的时候。
据称,图片显示这些时刻在50ur phyb点。
你将如何在一条直线上搜索点群?
如果(MA[i-1]-MA[i])+(MA[i]-MA[i+1])<0.005那么
在МА[i]区域内(例如,指数i的+-10值),我寻找MA的最小值
并将集群点的参数写入类中(在类中创建一个对象)。
识别相邻的捆绑物(捆绑物本身),专门用于相邻的条形物。也就是说,我通过类对象 来寻找一个句号和一个条形的接近性。
并看到物体束的倾向性
一般来说,我做这种行为