我不是程序员,也不懂编程。 前段时间,有位朋友花了几块钱在网上买了一个尾盘选股法,类似的广告,大家应该也看过。 朋友用这个选股法选了几只股票,结果也不管用,有涨有跌,和赌场猜大小也没啥区别。 他就把这个源代码发给了我,我一看挺简单,就算是我这样不会编程的人都是一学就会。 前几天,又有人让我帮他编个OBV的选股程序,于是我就给他写了一个。 通达信编程选股首先要列出你对股票都有哪些具体的要求,这个要求必须是量化的,可以用数字表达出来,不能含糊其辞。 看看这位朋友对股票的要求: 一,股价持续下跌两个月以上,OBV值一直在均线下方运行。 这个要求很难用数字表达,因为他是要求股价下跌两个月以上,也就是说下跌两个月、三个月甚至半年都行。 这样模糊的表述,是很难编程的,因此我们先放弃这个标准,不考虑在编程的范围之内。 二,五天前,OBV指标刚刚上穿均线。 这就是一个非常具体的数字,可以编程。 上穿均线用的函数是CROSS。 CROSS(C,MA(C,30))这个代码的意思就是股价上穿30日均线。 N天前的价格用REF这个函数。 比如说REF(c,5)就代表五天之前的股价;REF(c,6)代表六天前的股价; 两者相结合ref(c,5)/ref(c,6)>=1.0995,就代表五天之前涨停板的股票。 你可不要小看了这个公式,如果玩打板战法,又做的是N型板的话,用到的就是这个公式,只不过要稍微修改一下参数,这样一键选出满足条件的股票,而不用天天去看涨停板,节省了大量的时间。 用CROSS和REF这两个函数,再把股价改成OBV值,这样就写出了五天前,OBV上穿均线的源代码。 三,要求OBV值连续五日站在均线之上。 这里用到的函数是EVERY,它是一个统计函数,翻译成中文是“每个”的意思,在通达信编程语言中,EVERY函数的含义是“一直存在”。 用法如下:EVERY(X,N) ,表示N周期内一直存在X条件。 举个例子:EVERY(C>O,3),这个代码的意思就是股价连续三天上涨。 C代表收盘价,O代表开盘价。 C>O就是指定的条件:收盘价大于开盘价,3代表连续3天。 连续三天收盘价大于开盘价,这么就意味着连续三天上涨,是三连阳的形态。 同样一个意思,有几种表述方法。 三连阳的形态还可以写成这样的公式:EVERY(C>REF(C,1),3); REF(C,1)表示一天前的收盘价,C>REF(C,1),则表示今天的收盘价大于昨天的收盘价;3代表连续三天。 今天先写到这里,因为我也不懂编程,也就是这半个月的时间里,刚刚学习,边学边用。 这几天写的就是学习日记。 |
|