搜索
查看: 32206|回复: 11

[大盘交流] 请教高手:一个关于MACD的C程序

[复制链接]
发表于 2010-11-12 11:10 | 显示全部楼层

请教高手:一个关于MACD的C程序

来自:MACD论坛(bbs.shudaoyoufang.com) 作者:weiqiok 浏览:32206 回复:11

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#define  STOCK_SHORT                    12
#define  STOCK_LONG                       26
#define  STOCK_MID                          9

void  main( void)
{
   int  i, j, k ;
   float EMA12[ STOCK_MID], EMA26[ STOCK_MID] ;
   float DEA, DIFF, MACD ;
   float ClosePrice[ 35] = { 17.22, 17.20, 17.09, 17.18, 16.92, 16.63, 16.65, 16.70, 16.61, 16.69,
                             16.26, 16.22, 17.22, 18.04, 17.97, 18.54, 18.34, 19.15, 19.17, 19.55,
                             19.47, 18.85, 18.52, 18.91, 18.66, 18.56, 18.77, 18.41, 18.57, 18.66,
                             19.05, 18.92, 18.93, 19.14, 18.65} ;
   
   for( j = 0 ; j < STOCK_MID ; j ++)
   {
      k = STOCK_MID - 1 - j ;
      EMA12[ k] = 0 ;
      for( i = 35 - STOCK_SHORT - j ; i < 35 - j ; i ++)
         EMA12[ k] += ( i - 35 + STOCK_SHORT + j + 1) * ClosePrice[ i] ;

      EMA12[ k] *=  2 ;
      EMA12[ k] /= STOCK_SHORT ;
      EMA12[ k] /= STOCK_SHORT + 1 ;

      EMA26[ k] = 0 ;
      for( i = 35 - STOCK_LONG - j ; i < 35 - j ; i ++)
         EMA26[ k] += ( i - 35 + STOCK_LONG + j + 1) * ClosePrice[ i] ;

      EMA26[ k] *= 2 ;
      EMA26[ k] /= STOCK_LONG ;
      EMA26[ k] /= STOCK_LONG + 1 ;
   }

   for( j = 0 ; j < STOCK_MID ; j ++)
      DEA += ( j + 1) * ( EMA12[ j] - EMA26[ j]) ;
   DEA  *= 2 ;
   DEA  /= STOCK_MID ;
   DEA  /= STOCK_MID + 1 ;
   
   DIFF  = EMA12[ STOCK_MID - 1] - EMA26[ STOCK_MID - 1] ;
   MACD  = DIFF - DEA ;
   return ;
}


以上是我希望根据深发展2010.10.09的数据求出MACD的程序,根据上述程序,我得出:

EMA12 = 18.81            //  12日的 EMA
EMA26 = 18.74            //   26日的 EMA
DIFF = 0.0693             //   2010.10.09 的 DIFF
DEA = 0.1642              //  9日 DIFF 的 EMA
MACD = -0.0949          //  MACD

由于很多资料没有关于MACD的算法,而且 SHORT、LONG和MID取的值好像不一样,我不知道我这样的计算是不是正确。
请指正!

[ 本帖最后由 weiqiok 于 2010-11-13 07:05 编辑 ]
金币:
奖励:
热心:
注册时间:
2010-11-12

回复 使用道具 举报

发表于 2010-11-12 15:36 | 显示全部楼层
记得很久以前,“指南针”软件刚推出时,我也像你现在这样琢磨。久了,看透了,就不折腾了。把程式设计这套本事用在统计上,比用在技术指标上,效率要高多了。不过,后来微软和金山先后推出了 Offices 办公系统,用它们又比用 C 语音,效率要高多了!
参与人数 1奖励 +1 时间 理由
如来伸掌 + 1 2010-11-12 15:39 希望老兄能指点一二

查看全部评分

金币:
奖励:
热心:
注册时间:
2002-10-17

回复 使用道具 举报

发表于 2010-11-12 15:43 | 显示全部楼层
原帖由 奔腾 于 2010-11-12 15:36 发表
记得很久以前,“指南针”软件刚推出时,我也像你现在这样琢磨。久了,看透了,就不折腾了。把程式设计这套本事用在统计上,比用在技术指标上,效率要高多了。不过,后来微软和金山先后推出了 Offices 办公系统 ...


小弟愚钝,天天研究写公式统计,硬是没摸出门道
金币:
奖励:
热心:
注册时间:
2010-3-29

回复 使用道具 举报

发表于 2010-11-12 15:57 | 显示全部楼层
原帖由 如来伸掌 于 2010-11-12 15:43 发表
小弟愚钝,天天研究写公式统计,硬是没摸出门道


技术指标给出的数据只是一个形态数据,精确性不重要,只要形态对就成了。每个技术指标都有它特定的弱点,没有哪种技术指标完美无缺。如果想探寻某种完美的技术指标,那是在浪费时间。
你把每笔交易做个记录,买卖的原因,当前的图形,后市的判断都保存好,每间隔一段时间拿出来看看,总结总结,这比在技术指标研讨上,效率要高得多。
参与人数 2奖励 +2 时间 理由
greystar + 1 2010-11-13 18:07 不愧为股市达人,顶!
lebrowka + 1 2010-11-12 20:07 不愧为股市达人,顶!

查看全部评分

金币:
奖励:
热心:
注册时间:
2002-10-17

回复 使用道具 举报

签到天数: 1 天

发表于 2010-11-12 16:06 | 显示全部楼层
网上有介绍计算MACD公式的,LZ可以去查查,以前我用EXCEL VBS写过的。
金币:
奖励:
热心:
注册时间:
2007-10-26

回复 使用道具 举报

 楼主| 发表于 2010-11-12 18:56 | 显示全部楼层
原帖由 ipworld 于 2010-11-12 16:06 发表 [url=http://bbs.macd.cn/redirect.php?goto=findpost&pid=24045137&ptid=1854831][/url]
网上有介绍计算MACD公式的,LZ可以去查查,以前我用EXCEL VBS写过的。


那能否帮忙用我的数据跟我验证一下是否正确?多谢了!
金币:
奖励:
热心:
注册时间:
2010-11-12

回复 使用道具 举报

发表于 2010-11-12 20:00 | 显示全部楼层
楼主还没明白啊,上面的奔腾兄说的很清楚了
金币:
奖励:
热心:
注册时间:
2006-6-19

回复 使用道具 举报

 楼主| 发表于 2010-11-13 05:36 | 显示全部楼层
原帖由 daidelta 于 2010-11-12 20:00 发表 [url=http://bbs.macd.cn/redirect.php?goto=findpost&pid=24046185&ptid=1854831][/url]
楼主还没明白啊,上面的奔腾兄说的很清楚了


呵呵,我不是纠缠在指标是否精确,而是想了解我的指标思路(或者说算法)是否正确,如果算法没有问题,我就做接下来的工作。

其实你并不了解我要做什么,我当然知道指标是死的,人是活的,但指标既然大家都用,一定有它的科学性的。

为什么大家只是泛泛而谈,不给我实际的指点呢?我希望有一个真正懂的高手指点,谢谢!
金币:
奖励:
热心:
注册时间:
2010-11-12

回复 使用道具 举报

发表于 2010-11-13 07:03 | 显示全部楼层
原帖由 weiqiok 于 2010-11-13 05:36 发表
呵呵,我不是纠缠在指标是否精确,而是想了解我的指标思路(或者说算法)是否正确,如果算法没有问题,我就做接下来的工作。
其实你并不了解我要做什么,我当然知道指标是死的,人是活的,但指标既然大家 ...


验证算法是否正确,那就是说接下来你准备设计一个属于自己的指标系统哟。佩服,真的很佩服你,时间多得用不玩。很多年前,为了应先生那一百万的悬赏,我用 C 来开发 GO 程式,为了设计一套高效的算法就花了两个来月。问题是,就是现在的冠军程式朝鲜的银星,连我这个业余初段都下不过,更别说那一百万的悬赏了。说这么多,只想告诉你:人的一生时间短暂,要把有限的时间用在效率最高的事情上;大多数人都是平常人,要做自己能力范围内的事情;能把自己能力范围内的事情做好,人的一生就不会白活。
金币:
奖励:
热心:
注册时间:
2002-10-17

回复 使用道具 举报

 楼主| 发表于 2010-11-13 07:19 | 显示全部楼层
原帖由 奔腾 于 2010-11-13 07:03 发表:<br>
验证算法是否正确,那就是说接下来你准备设计一个属于自己的指标系统哟。佩服,真的很佩服你,时间多得用不玩。


晕哦,呵呵,你还是曲解了我的意思,我是想验证【我的MACD算法】是不是正确。
今天早上我就发现了问题,已经做了修改,但似乎跟股票分析软件还有一些差距,不过已经接近了。
其实,我就是想求证一下我得到的结果(我的算法)是不是正确,没别的意思。
如果【我的算法】(再强调一次)正确了,我就能够继续往下走。

说到围棋,你算是找对人了,我的围棋网站在国内(甚至世界)应该是很领先的了,呵呵。
围棋学研网:http://www.weiqiok.com
人机对弈,我也很有想法,如果我有时间和精力,打败【银星】应该是可以做到的,
此外,布局方面,我应该可以做得很强,有空可以看看我的【谱度系统】,哈哈,功能非常强的。

[ 本帖最后由 weiqiok 于 2010-11-13 07:29 编辑 ]
金币:
奖励:
热心:
注册时间:
2010-11-12

回复 使用道具 举报

签到天数: 2 天

发表于 2010-11-13 17:20 | 显示全部楼层
感谢 Weiqiok 的执着,但是我也认可 奔腾 的建议,没有一个万能的程序,如果有巴菲特会倾其所编写或购买,但是我会支持您Weiqiok,坚持您的想法继续做下去.虽然它不会是万能的,但也许它是最适合您自己的.
金币:
奖励:
热心:
注册时间:
2010-11-4

回复 使用道具 举报

 楼主| 发表于 2010-11-13 19:41 | 显示全部楼层
原帖由 ray_zhao 于 2010-11-13 17:20 发表
感谢 Weiqiok 的执着,但是我也认可 奔腾 的建议,没有一个万能的程序,如果有巴菲特会倾其所编写或购买,但是我会支持您Weiqiok,坚持您的想法继续做下去.虽然它不会是万能的,但也许它是最适合您自己的.


其实,说真的,我不是自己在做算法,股票,我是门外汉。
我仅仅是应用,我希望借助几个指标来帮我做选股的参考,所以请教大家,看看我做的【MACD】有没有问题,仅此而已。

不过,我有了自己的程序和指标的分析,我想,各种指标可以自由为我所用了,也是很好的一件事。

感谢【ray_zhao】的支持!
金币:
奖励:
热心:
注册时间:
2010-11-12

回复 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站声明:MACD仅提供交流平台,请交流人员遵守法律法规。
值班电话:18209240771   微信:35550268

举报|意见反馈|手机版|MACD俱乐部

GMT+8, 2025-5-20 04:22 , Processed in 0.035782 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表