c# MACD 算法实现

此算法在自己WP7应用中 用到  
同花顺 算法
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA  : EMA(DIFF,M);
MACD : 2*(DIFF-DEA);
Zero : 0;
关键点是第一天的数据
如果是区间的数据,区间第一天的DIF DEA MACD 都是0
 
View Code
复制代码
 1    ///   <summary>
 2           ///  MACD算法
 3           ///   </summary>
 4           ///   <param name="n1"> 12 </param>
 5           ///   <param name="n2"> 26 </param>
 6           ///   <param name="n3"> 9 </param>
 7           ///   <param name="day"> K线数据 </param>
 8           ///   <returns></returns>
 9           public  static List<KLinfo> ComputationMACD2( int SHORT,  int LONG,  int M, List<KLinfo> KLStocklist)
10         {
11              for ( int i =  0; i < KLStocklist.Count;i++ )
12             {
13 
14                  if (KLStocklist[i].KID ==  1)
15                 {
16                     KLStocklist[i].Ema12Value = KLStocklist[i].ClosePrice;
17                     KLStocklist[i].Ema26Value = KLStocklist[i].ClosePrice;
18                     KLStocklist[i].DifValue = KLStocklist[i].Ema12Value - KLStocklist[i].Ema26Value;
19                     KLStocklist[i].DeaValue = KLStocklist[i].DifValue;
20                     KLStocklist[i].MacdValue =  2.0 * (KLStocklist[i].DifValue - KLStocklist[i].DeaValue);
21                 }
22                  else
23                 {
24                     KLStocklist[i].Ema12Value = ( 2 * KLStocklist[i].ClosePrice + (SHORT -  1) * KLStocklist[KLStocklist[i].KID -  2].Ema12Value) / (SHORT +  1);
25                     KLStocklist[i].Ema26Value = ( 2 * KLStocklist[i].ClosePrice + (LONG -  1) * KLStocklist[KLStocklist[i].KID -  2].Ema26Value) / (LONG +  1);
26                     KLStocklist[i].DifValue = KLStocklist[i].Ema12Value - KLStocklist[i].Ema26Value;
27                     KLStocklist[i].DeaValue = ( 2 * KLStocklist[i].DifValue + (M -  1) * KLStocklist[KLStocklist[i].KID -  2].DeaValue) / (M +  1);
28                     KLStocklist[i].MacdValue =  2.0 * (KLStocklist[i].DifValue - KLStocklist[i].DeaValue);
29 
30                 }
31             }
32 
33               return KLStocklist;
34         }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值