怎么编写股票技术指标?
在知乎,炒股的话题关注度不高,但是讨论量不小(因为韭菜多) 其中关于编程的讨论更是少得可怜,所以我的这个答案主要谈一下用编程的方式解决一些传统分析方法的不足。 我以大家比较熟悉的技术分析为例简单说一下,我这里所说的程序化是指直接用代码的形式来描述传统的分析方法。这样既保证了逻辑性又符合交易系统的特点便于操作。 在传统分析中,均线是重要的一个指标,它反映了一定周期内买卖力量的集中情况;此外移动平均线的平滑功能也使得它比简单的收盘价序列具有更好的抗干扰能力。
首先我们假设需要构建周线级别的MACD指标。为了简便起见,这里我们不考虑参数设置的问题直接给出计算公式: macd=(DIF-DEA)(2)*10; 以上公式中的DIF和DEA分别表示12周EMA减去26周EMA的计算值。 当然上面的计算过程可以用更简单的表达式来表达:
从上面两个公式可以看出,对于MACD指标来说最核心的部分就是DIF和DEA的值了。因此如果我们把DIF和DEA看作变量的话那么我们可以用递归的方式来生成任意周期的MACD值。
下面我们来推导一下当周期T为1、2、3时MACD值的求解过程: 一、周线级别的 二、日线级别 的 三、分钟级别的 上表中最左边一列表示时间T的值,第二行是不同周期下的DIF与DEA的差值,第三行是第一行的结果乘以10后再乘以2。由于MACD指标是一个对数形式的结果,所以对于上面的数据我们需要进行对数变换才能得到最终的MACD结果。具体做法如下: 如果我们想要利用前面推导出的公式得到当前时间段内任何周期的MACD值只需要将上表中满足条件的数字相加即可。