Delphi 计算MACD指标数值

原创 2016年08月28日 18:36:15

基于上一篇文章Delphi 计算火币网KDJ指标数值的基础。

{ MACD单个数据结构 }
Type
  TMACD = record
    DIF: Extended;
    DEA: Extended;
    BAR: Extended;
  end;

{ 获取MACD }
function GetMACD(KlineArr: TKlineArray):TMACD;
var
  EMA9,EMA12,EMA26,EMA9Ex,EMA12Ex,EMA26Ex: Extended;
  i: Integer;
  arrKline: TKlineArray;
begin
  FillChar(Result, SizeOf(TMACD), #0);
  arrKline := KlineArr;
  if High(arrKline) <> -1 then
  begin
    for i := Low(arrKline) to High(arrKline) do
    begin
      if i=0 then Continue;
      if i=1 then
      begin
        EMA12 := arrKline[i-1].Close+(arrKline[i].Close-arrKline[i-1].Close)*2/13;
        EMA26 := arrKline[i-1].Close+(arrKline[i].Close-arrKline[i-1].Close)*2/27;
        Result.DIF := EMA12-EMA26;
        Result.DEA := 0+(Result.DIF)*2/10;
        Result.BAR := 2*((Result.DIF)-(Result.DEA));
      end
      else if i>1 then
      begin
        EMA12 := EMA12Ex*11/13+arrKline[i].Close*2/13;
        EMA26 := EMA26Ex*25/27+arrKline[i].Close*2/27;
        Result.DIF := RoundTo(EMA12-EMA26,-4);
        Result.DEA := Result.DEA*8/10 +Result.DIF*2/10;
        Result.BAR := 2*(Result.DIF-Result.DEA);
      end;
      EMA12Ex := EMA12;
      EMA26Ex := EMA26;
    end;
    Result.DIF := RoundTo(Result.DIF,-2);
    Result.DEA := RoundTo(Result.DEA,-2);
    Result.BAR := RoundTo(Result.BAR,-2);
  end;
end;
版权声明:本文为博主原创文章,未经博主允许不得转载。

delphi function 与 procedure

Delphi把操作数据的方法分成了两种, 一种是function,另一种是procedure,分别称为“函数”和“过程”, 这二者最大的差别就是函数拥有返回值而过程没有,比如按钮的事件响应过程,这...

Sql2000中对标识列的操作方法

---Server修改标识列方法 ----允许对系统表进行更新exec sp_configure allow updates,1reconfigure with overrideGO----取消标识列...

五款ASP.NET图表控件优缺分析(上):Ms Chart和TeeChart

图表开发工具选择需要考虑的问题很多,如图表性能、开发难度、界面效果、编码量等等。 虽然盗版图表控件层出不穷,但开发商业软件还是需要慎重。用ASP.NET开发的图表控件有很多,既有免费的也有收费的,有...

Delphi 计算火币网KDJ指标数值

感谢七爷的无私帮助和纠正。 为了尽可能地提高数据复用,可能给多个指标运算。所以获取的周期K线数据保存到了一个数组。定义如下: //存储K线数据的结构 TKline=record Ope...

利用MACD指标进阶使用技巧计算交易信号

1.MACD策略简述与评价标准 a)        MACD原始策略解释与评价: 是指利用MACD指标的数值,主要是MACD值来决定股票的买入和卖出。                   ...
  • marshao
  • marshao
  • 2017年07月24日 15:30
  • 226

MACD指标使用的一些小技巧

MACD作为经典的趋势研判指标已经很多年了,均线和MACD被誉为两大趋势系统,既然这样,你用MACD能赚钱吗? 估计大多数人会说没有,说他是骗人的,明明看到趋势金叉了,买入后却下跌,而出现死叉了,卖出...
  • yslg520
  • yslg520
  • 2017年11月10日 08:40
  • 51

股票MACD指标算法公式

MACD指标是股票技术中最实用最重要的指标之一,其中涉及EMA、DIF、DEA、BAR几个指标。然而,对MACD指标的定义及分解算法,书上和网上的资料乱七八糟,有的说法互相矛盾,特别是对于指标的分解(...
  • clschen
  • clschen
  • 2016年04月22日 16:49
  • 2834

MACD指标及其应用

指数平滑异同移动平均线指标即MACD(Moving Average Convergence and Divergence)指标是根据均线 的构造原理,对股票价格的收盘价进行平滑处理,求出算术平均...

MQL指标:MACD

MACD 简介MACD,Moving Average Convergence / Divergence,中文译名“指数平滑异同平均线”。Moving Average 很好理解,一个区间内的价格平均数,...
  • zccz14
  • zccz14
  • 2016年04月03日 21:23
  • 836

使用MACD指标在上证指数000001.SH上开发单边多头策略

easylanguage编程
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi 计算MACD指标数值
举报原因:
原因补充:

(最多只允许输入30个字)