你是如何对MA饲料集群的检测进行算法的? - 页 9

 
阴阳符号被建议作为MA的模型,而不是作为无神论或辩证法的 "图标"。价格相对于MA的收敛/背离,在价格水平上形成新的极值,但是价格比以前的极值更接近MA(在统计偏差上),即形成趋势变化的概率(MA交叉),没有交叉,但是符号中也存在条件--元素的诞生发生在相反值的区域。
 
Aleksei Stepanenko:

伙计们,我仍然不知道它是上升还是下降。

对。

 
Aleksey Nikolayev:

哪些量值应该被计算在内,例如

{0.5} - 中位数

{0.25,0.5,0.75} - 四分位数

{0.01, 0.02, ..., 0.99}--持久物

你能告诉我一些事情吗?

如果我通过MathQuantile 传递一个数组,我是否应该对它进行排序?

- 我的理解是,是否分类并不重要。


事实证明,索引是无法追踪到数组的。 量子化是按价格计算的,而价格所链接的数组的索引...

 

我明白,这种带有中位数或量子的数学,并不能令人满意地解决问题!

一些我不能...

 

返回一个指定量值的数组。这些值在未排序的数组中的索引是不知道的。整个问题是关于速度的。如果这个函数在每个条形图上计算,并且数值数组很大,那么优化时间可能会被延迟。我会走另一条路,但这取决于你。

 
Mikhail Toptunov:

如果你通过MathQuantile 传递一个数组,它应该被排序吗?

任何排列组合(例如排序)都 不应该改变结果。

 
Aleksei Stepanenko:

返回一个指定量值的数组。这些值在未排序的数组中的索引是不知道的。整个问题是关于速度的。如果这个函数在每个条形图上计算,并且数值数组很大,那么优化时间可能会被延迟。我将采取不同的方式,但这取决于你。

你会走哪条路?

阿列克谢,哪种方式能解决问题)!

 

我不知道你给自己定了什么任务,但一般来说,循环计算越少,算法就越快。 有一个基本的循环--它是对历史上所有条目的传递,我们无法摆脱它。但我们应该努力摆脱其余的人。MathQuantile、iHighest 和其他函数实际上隐藏的循环。为了加快速度,应该在信息到达时进行处理,并存储到下一个条形图中。在当前的计算中,不要使用原始的历史数据,而是使用以前准备的数据。

在寻找中位数和其他定量的情况下,随着信息的到来,维护一个有序的数组的成本较低。我写了上面的代码。如果你有一个需要信息的 "滑动窗口",你需要考虑如何以同样快速的方式从数组中删除旧值。你可能需要另一个数组来存储索引。

 
Maxim Kuznetsov:

计算热图的近似算法(如100巴)。

为1至100的所有Close。

Close[N]=X将在heatmap上添加行heatmap[Resolution(X)]+={X/N}+{X/(N+1)}+{X/(N+2)}...最多100。
大括号里的是平均数的 "组成部分",只是突出显示。
Resolution(X) - "分辨率",例如10点 Round((X-MinimalX)/Point/10)

获得一个你需要找到的局部最大值的向量。

这个向量实际上是一个垂直的价格曲线

你能帮我计算一下热力图 吗? 我已经试过中位数,量化并不能很好地显示出MA集群。

//Pmax - количество Скользящих Средних МА
//masPra[] - значение цены МА по текущему бару
//masPer[] - значение индексов массива цен МА, для сортировки
void medianaL0_2(const double &masPra[],const int &masPer[])
 {
  // MathQuickSort(masPra,masPer,10,Pmax-1,1); // сортируем массив цен с 10 периода, по Pmax-1
  

如果你能说明需要做什么,计算(一次一栏)。

 
Mikhail Toptunov:

请你帮忙计算一下热力图,通过中位数、量子数的尝试,并不能实现对MA集群的正常检测。

如果你能告诉我需要做什么,计算(一次一个栏)。

我将直接展示结果,没有优化、矩阵和复杂的数学。

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点可以在数学上进行分解和计算,速度更快,循环和额外的数组最少,但不一定更明显