实用 macd通达信指标公式源码
通达信指标公式源码超级无敌MACD

{MACD}DIF:EMA(CLOSE,6)-EMA(CLOSE,19),,NODRAW;DEA:EMA(DIF,9),NODRAW;MACD:2*(DIF-DEA),COLORSTICK;STICKLINE(MACD>0,MACD,0,0.5,0),COLORRED;STICKLINE(MACD<0,MACD,0,0.5,0),COLORGREEN;STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,0.5,0),COLORWHITE; STICKLINE(MACD<0 AND MACD>REF(MACD,1),MACD,0,0.5,0),COLORFF00FF; FH1:=REF(MACD,1)<REF(MACD,2) AND REF(MACD,2)<REF(MACD,3) AND REF(MACD,3)<REF(MACD,4);FH2:=MACD>=0 AND COUNT(MACD>REF(MACD,1),1)=1;FH3:=FH1 AND FH2 AND EMA(C,13)>REF(EMA(C,13),1);FH4:=FH1 AND FH2 AND ABS((DIF-DEA)/C)<0.018;FH5:=FH1 AND FH2 AND MACD<0.10;VV:=CLOSE>OPEN AND MA(CLOSE,5)>MA(CLOSE,10) ANDMA(CLOSE,10)>MA(CLOSE,30)AND DIF>DEA AND MACD>REF(MACD,1) AND DIF>0 AND DEA>0 ANDMA(VOL,5)>MA(VOL,34) AND MA(CLOSE,30)>=REF(MA(CLOSE,30),1);佛手:IF(VV,1,0),NODRAW;{二次起动}X0:=BARSLAST((CROSS(MACD,REF(MACD,1)) AND MACD>0) ORCROSS(MACD,0));X1:=BARSLAST(CROSS(0.5,COUNT(MACD>REF(MACD,1),X0+1)=X0+1));{回} X2:=COUNT(MACD<REF(MACD,1),X1+1)=X1+1 ANDCOUNT(MACD<0,X1+1)<=2;X3:=REF(X2,1) AND MACD>REF(MACD,1) AND C>O AND C>REF(C,1); STICKLINE(X1=0 AND MACD>0,MACD,0,2,0),COLORDCDC00;{MACD缩头} STICKLINE(X3,MACD,0,2,0),COLOR0854FF;{二次起动};DRAWICON(佛手,-0.15,11);二次翻红:(FH3 OR FH4 OR FH5),COLORRED,NODRAW;低买:CROSS(DIF,DEA) AND DIF<0,COLORFF00FF,NODRAW;加油:CROSS(DIF,DEA) AND DIF>0,COLORYELLOW,NODRAW; DRAWICON(二次翻红,-0.05,1);DRAWTEXT(二次翻红,-0.15,'↖翻红'),COLORRED;DRAWTEXT(CROSS(DIF,DEA) AND DIF<0,DEA-0.02,'↖低买'),COLORFF00FF; DRAWTEXT(CROSS(DIF,DEA) AND DIF>0,DEA-0.05,'↖加油'),COLORYELLOW; XG:二次翻红OR 低买OR 加油,NODRAW;YLZC:=IF(CLOSE=INDEXC,(INDEXC+INDEXH+INDEXL+INDEXO)/4,AMOUNT/ (VOL+0.01)/100);阻价:=IF(CLOSE=INDEXC,YLZC+INDEXC-INDEXL,YLZC+(CLOSE-LOW));支价:=IF(CLOSE=INDEXC,INDEXL+INDEXC-YLZC,LOW+(CLOSE-YLZC));今压:REF(阻价,1),LINETHICK0,COLORAA11BB,NODRAW;今撑:REF(支价,1),LINETHICK0,COLOR009900,NODRAW;明压:阻价,LINETHICK0,NODRAW;明撑:支价,LINETHICK0,NODRAW;DIFF:DIF,COLORRED,LINETHICK2;DDEA:DEA,COLORYELLOW,LINETHICK2;。
MACD通达信指标公式源码

MACD通达信指标公式源码
MACD指标是一种常用的技术指标,它可以帮助交易者判断股票价格的趋势。
MACD指标由两条线组成,一条是快速线(称为DIF线),另一条是慢速线(称为DEA线)。
MACD指标的计算方法是将两条线的数值相减得到MACD值,然后再计算MACD值的移动平均线得到信号线。
MACD指标的计算方法如下:
第一步:计算快速线DIF值
DIF = EMA(Close, Short) - EMA(Close, Long)
其中,Close为收盘价,Short为快速线的参数,Long为慢速线的参数,EMA为指数移动平均线。
在通达信软件中,Short通常为12,Long通常为26
第二步:计算慢速线DEA值
DEA = EMA(DIF, Mid)
其中,Mid为DEA线的参数,通常为9
第三步:计算MACD值
MACD=(DIF-DEA)*2
第四步:计算MACD移动平均线
MACD_SIGNAL=EMA(MACD,MACD_CYCLE)
其中,MACD_CYCLE为MACD移动平均线的参数,通常为6
以上是MACD指标在通达信软件中的计算方法,交易者可以根据自己的需求来调整MACD的参数,以适应不同的市场情况。
MACD指标主要用于判断股票价格的趋势,通常当MACD值上穿信号线时,表示股票价格可能会上涨;当MACD值下穿信号线时,表示股票价格可能会下跌。
交易者可以结合其他技术指标一起使用,以提高交易的准确率。
MACD指标是一种比较简单易懂的技术指标,适合新手交易者使用。
通达信指标公式源码 挺好用的MACD佛手

DIF:EMA(CLOSE,6)-EMA(CLOSE,19),,NODRAW;DEA:EMA(DIF,9),NODRAW;MACD:2*(DIF-DEA),COLORSTICK;STICKLINE(MACD>0,MACD,0,0.5,0),COLORRED;STICKLINE(MACD<0,MACD,0,0.5,0),COLORGREEN;STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,0.5,0),COLORWHITE; STICKLINE(MACD<0 AND MACD>REF(MACD,1),MACD,0,0.5,0),COLORFF00FF; FH1:=REF(MACD,1)<REF(MACD,2) AND REF(MACD,2)<REF(MACD,3) AND REF(MACD,3)<REF(MACD,4);FH2:=MACD>=0 AND COUNT(MACD>REF(MACD,1),1)=1;FH3:=FH1 AND FH2 AND EMA(C,13)>REF(EMA(C,13),1);FH4:=FH1 AND FH2 AND ABS((DIF-DEA)/C)<0.018;FH5:=FH1 AND FH2 AND MACD<0.10;VV:=CLOSE>OPEN AND MA(CLOSE,5)>MA(CLOSE,10) ANDMA(CLOSE,10)>MA(CLOSE,30)AND DIF>DEA AND MACD>REF(MACD,1) AND DIF>0 AND DEA>0 ANDMA(VOL,5)>MA(VOL,34) AND MA(CLOSE,30)>=REF(MA(CLOSE,30),1);佛手:IF(VV,1,0),NODRAW;{二次起动}X0:=BARSLAST((CROSS(MACD,REF(MACD,1)) AND MACD>0) ORCROSS(MACD,0));X1:=BARSLAST(CROSS(0.5,COUNT(MACD>REF(MACD,1),X0+1)=X0+1));{回} X2:=COUNT(MACD<REF(MACD,1),X1+1)=X1+1 ANDCOUNT(MACD<0,X1+1)<=2;X3:=REF(X2,1) AND MACD>REF(MACD,1) AND C>O AND C>REF(C,1); STICKLINE(X1=0 AND MACD>0,MACD,0,2,0),COLORDCDC00;{MACD缩头}STICKLINE(X3,MACD,0,2,0),COLOR0854FF;{二次起动};DRAWICON(佛手,-0.15,11);二次翻红:(FH3 OR FH4 OR FH5),COLORRED,NODRAW;低买:CROSS(DIF,DEA) AND DIF<0,COLORFF00FF,NODRAW;加油:CROSS(DIF,DEA) AND DIF>0,COLORYELLOW,NODRAW; DRAWICON(二次翻红,-0.05,1);DRAWTEXT(二次翻红,-0.15,'↖翻红'),COLORRED;DRAWTEXT(CROSS(DIF,DEA) AND DIF<0,DEA-0.02,'↖低买'),COLORFF00FF; DRAWTEXT(CROSS(DIF,DEA) AND DIF>0,DEA-0.05,'↖加油'),COLORYELLOW; XG:二次翻红OR 低买OR 加油,NODRAW;YLZC:=IF(CLOSE=INDEXC,(INDEXC+INDEXH+INDEXL+INDEXO)/4,AMOUNT/ (VOL+0.01)/100);阻价:=IF(CLOSE=INDEXC,YLZC+INDEXC-INDEXL,YLZC+(CLOSE-LOW));支价:=IF(CLOSE=INDEXC,INDEXL+INDEXC-YLZC,LOW+(CLOSE-YLZC));今压:REF(阻价,1),LINETHICK0,COLORAA11BB,NODRAW;今撑:REF(支价,1),LINETHICK0,COLOR009900,NODRAW;明压:阻价,LINETHICK0,NODRAW;明撑:支价,LINETHICK0,NODRAW;DIFF:DIF,COLORRED,LINETHICK2;DDEA:DEA,COLORYELLOW,LINETHICK2;。
MACD顶底背离通达信指标公式源码

MACD顶底背离通达信指标公式源码/*头文件引用*/#include "stdafx.h"#include "SetIndexData.h"/*背离判断函数*/BOOL BackwardJudge(int n, float *dd, float *top, float *bottom)int i, t_pos = 0;float maxval = 0, minval = 0;for(i=0;i<n;i++)if(maxval < dd[i])maxval = dd[i];t_pos = i;}}maxval = dd[t_pos];minval = dd[t_pos];for(i=t_pos;i>=0;i--)if(maxval < dd[i])maxval = dd[i];if(minval > dd[i])minval = dd[i];}*top = maxval;*bottom = minval;if(maxval == dd[0])return TRUE;else if(minval == dd[0])return FALSE;elsereturn FALSE;/*MACD顶底背离判断函数*/Export int MACDBackward(int n)int i;float *DIFF, *DEA, *MACD, *dd;float top = 0, bottom = 0;BOOL bType = FALSE;SetEmptyBarCount(FALSE); /*不跳过空记录*/DIFF = GetDiff(;DEA = GetDea(;MACD = GetMacd(;malloc(dd, sizeof(float)*n);bType = BackwardJudge(n, DEA, &top, &bottom);if(bType)for(i=0;i<n;i++)dd[i] = DIFF[i];bType = BackwardJudge(n, dd, &top, &bottom);if(bType)return 1; /*底背离*/elsereturn 2; /*顶背离*/}elsereturn 0; /*无背离*/上述代码是通达信公式语言的源码。
通达信指标公式源码好厉害的MACD背离(通达信副图指标)

好厉害的MACD背离(通达信副图指标)DIF:EMA(CLOSE,12)-EMA(CLOSE,26),COLORRED,LINETHICK2;DEA:EMA(DIF,9),COLORWHITE,LINETHICK2;持仓段:=0,COLOR00CFFF;空仓段:=0,COLORFFCCFF;STICKLINE(DIF>DEA,-0.5,-0.6,10,1),COLOR00CFFF;STICKLINE(DIF<DEA,-0.5,-0.6,10,1),COLORFFCCFF;MACD:(DIF-DEA)*2,COLORSTICK;STICKLINE(((MACD<REF(MACD,1)) AND(MACD>0)),0,MACD,1,0),COLORLIBLUE,LINETHICK2;STICKLINE(((MACD>REF(MACD,1)) AND(MACD<0)),0,MACD,1,0),COLORFF00FF,LINETHICK2;建仓:IF(DIF<0,DIF,0),COLORYELLOW,LINETHICK2;加仓:IF(DIF<0,0,DIF),COLORRED,LINETHICK2;白线破仓:IF(DIF<DEA,DIF,DEA),COLORWHITE,LINETHICK2;趋势强弱:IF(DIF>DEA,DEA,DEA),COLORFF937F,LINETHICK2;AA:=COUNT(CROSS(DIF,DEA),BARSLAST(DEA>=0));二次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(AA=2,21)=1; DRAWTEXT(二次金叉,0.2,' 二次金叉'),COLORYELLOW;A1:=BARSLAST(REF(CROSS(DIF,DEA),1));底背离:=REF(CLOSE,A1+1)>CLOSE AND DIF>REF(DIF,A1+1) AND CROSS(DIF,DEA); STICKLINE(底背离,0,0.03,6,0),COLOR00FF00;底背:DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORRED,LINETHICK4; DRAWTEXT(底背离,0.12,' 底背离'),COLORFF00FF;A2:=BARSLAST(REF(CROSS(DEA,DIF),1));顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIF,A2+1)>DIF AND CROSS(DEA,DIF); 顶背:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,LINETHICK4;。
MACD背离自动画线通达信指标公式源码

MACD背离自动画线通达信指标公式源码MACD(Moving Average Convergence Divergence)是一种常用的股票技术指标,用于分析股票的趋势和交易信号。
MACD背离是一种常见的技术分析方法,用于判断趋势的反转点,即价格走势与MACD指标走势不一致的情况。
下面是使用通达信编写MACD背离自动画线指标的源码。
```c/*MACD背离自动画线指标*功能:自动识别MACD背离点并在图表中标注出来*/#include "stdafx.h"#include "stdio.h"#include "string.h"#include "windows.h"//确定最低点、最高点时使用的价格周期数#define MIN_PRICE_DURATION 9#define MAX_PRICE_DURATION 10/**输入参数:*MACD:一个包含MACD数据的数组* price:一个包含价格数据的数组*返回值:*0:没有背离*1:向上背离*-1:向下背离*/int CheckDivergence(float *MACD, float *price) int i, j, k;int start, end;int low_index, high_index;float min_price, max_price;int MACD_bottom, MACD_top;int price_bottom, price_top;float MACD_bottom_value, MACD_top_value;float price_bottom_value, price_top_value;/**阶段1:寻找MACD底背离*/start = MAX_PRICE_DURATION + 1;end = start + MIN_PRICE_DURATION;low_index = -1;high_index = -1;min_price = price[start];max_price = price[start];for (i = start; i < end; i++)//查找最低点if (price[i] < min_price)low_index = i;min_price = price[i];}//查找最高点if (price[i] > max_price)high_index = i;max_price = price[i];}}//无法找到底背离点if (low_index == -1 , high_index == -1)}MACD_bottom = 0;price_bottom = 0;//寻找MACD底背离for (i = start; i < end; i++)if (i == low_index)//找到最低点对应的MACD数值MACD_bottom = i;MACD_bottom_value = MACD[i];}if (i == high_index)//找到最高点对应的MACD数值price_bottom = i;price_bottom_value = price[i];}}//如果最低点出现在最高点之后,则没有底背离if (MACD_bottom > price_bottom)}/**阶段2:寻找MACD顶背离*/start = MAX_PRICE_DURATION + 1; end = start + MIN_PRICE_DURATION; low_index = -1;high_index = -1;min_price = price[start];max_price = price[start];for (i = start; i < end; i++)//查找最低点if (price[i] < min_price)low_index = i;min_price = price[i];}//查找最高点if (price[i] > max_price)max_price = price[i];}}//无法找到顶背离点if (low_index == -1 , high_index == -1) return 0;}MACD_top = 0;price_top = 0;//寻找MACD顶背离for (i = start; i < end; i++)if (i == low_index)//找到最低点对应的MACD数值MACD_top = i;MACD_top_value = MACD[i];}if (i == high_index)//找到最高点对应的MACD数值price_top_value = price[i];}}//如果最高点出现在最低点之后,则没有顶背离if (MACD_top > price_top)return 0;}//判断背离类型if (price_bottom_value < price_top_value && MACD_bottom_value > MACD_top_value)return 1; // 向上背离}if (price_bottom_value > price_top_value && MACD_bottom_value < MACD_top_value)return -1; // 向下背离}return 0;int mainfloat MACD[100] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 4.0, 3.0, 2.0, 1.0};float price[100] = {1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 0.0, -1.0, -2.0};int result = CheckDivergence(MACD, price);printf("Result: %d\n", result);return 0;```该源码实现了一个简单的MACD背离自动画线指标。
MACD三背离通达信指标公式源码

MACD三背离通达信指标公式源码以下是通达信软件中MACD三背离指标的公式源码:```python#定义变量VAR1:=CLOSE-REF(CLOSE,1);VAR2:=EMA(VAR1,12);VAR3:=EMA(VAR1,26);VAR5:=(VAR2-VAR3)/VAR2*100;VAR6:=EMA(VAR5,9);VAR7:=IF(VAR5>0,VAR5,VAR6);VAR8:=EMA(VAR7,9);VAR4:=(VAR7-VAR8);#计算背离判断DIVERGENCE1:=IF(VAR5>0,IF(CROSS(VAR7,VAR8),1,-1),0);DIVERGENCE2:=IF(VAR5>0,IF(CROSS(VAR7,0),-1,IF(CROSS(VAR4,0),1,0)),0);DIVERGENCE:=IF(DIVERGENCE1==-1ORDIVERGENCE2==-1,-1,0);#输出背离信号DRAWTEXT(DIVERGENCE,'背离',60,DIVERGENCE);```该源码主要是计算MACD三背离的指标,其中包括了MACD线和信号线的计算,以及背离的判断和输出。
首先,VAR1是计算当日收盘价与前一日收盘价的差值。
VAR2和VAR3分别是VAR1的12日指数移动平均值和26日指数移动平均值。
然后,VAR5是MACD线的计算,即VAR2和VAR3的差值除以VAR2后乘以100。
接下来,VAR6是VAR5的9日指数移动平均值,并通过IF语句将VAR5和VAR6的较大值赋给VAR7,以确保VAR7始终大于零。
VAR8是VAR7的9日指数移动平均值。
最后,VAR4是VAR7和VAR8的差值,即MACD柱。
DIVERGENCE1和DIVERGENCE2分别计算第一类背离和第二类背离。
第一类背离是根据MACD线和信号线的交叉情况判断,如果MACD线由上方向下穿信号线,则为1,反之为-1、第二类背离是根据MACD柱的变化情况判断,如果MACD柱由正值变为负值,则为-1,反之如果MACD柱由负值变为正值,则为1最后,根据背离的判断结果,使用DRAWTEXT函数在图表上绘制背离信号。
MACD看透主力通达信指标公式源码

MACD看透主力通达信指标公式源码该算法主要通过计算不同时间段的移动平均线之间的差异来判断主力资金的买入和卖出行为。
MACD公式包括两个指标:DIF(差离值)和DEA (差离平均值)。
DIF的计算公式为:DIF = EMA(close, short) - EMA(close, long)其中,EMA代表指数移动平均线,short代表短期时间段,long代表长期时间段。
(1)计算短期移动平均线EMA(close, short):EMA(close, short) = (2 * close + (short - 1) * EMA(close, short)) / (short + 1)(2)计算长期移动平均线EMA(close, long):EMA(close, long) = (2 * close + (long - 1) * EMA(close, long)) / (long + 1)DEA的计算公式为:DEA = EMA(DIF, mid)其中,mid代表DEA的时间周期。
(3)计算差离平均值DEA:EMA(DIF, mid) = (2 * DIF + (mid - 1) * EMA(DIF, mid)) / (mid + 1)最后,通过计算DIF和DEA的差异,可以得到MACD的值:MACD=(DIF-DEA)*2这是一个基本的MACD指标计算公式,可以用于分析主力资金的买入和卖出信号。
通达信指标公式源码实现如下:```pythondef calculate_macd(close, short, long, mid):#计算DIFema_short = calculate_ema(close, short)ema_long = calculate_ema(close, long)dif = ema_short - ema_long#计算DEAdea = calculate_ema(dif, mid)#计算MACDmacd = (dif - dea) * 2return dif, dea, macddef calculate_ema(values, period):ema = []for i in range(len(values)):if i == 0:ema.append(values[i])else:ema.append((2 * values[i] + (period - 1) * ema[i - 1]) / (period + 1))return ema```上述代码中,`calculate_macd`函数计算DIF、DEA和MACD值,`calculate_ema`函数用于计算指数移动平均线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简洁大方实用macd 方便自己diy!!拒绝花哨给喜欢macd的坛友添加一点色彩里边信号精准方便参考!
DIF:EMA(CLOSE,D1)-EMA(CLOSE,D2);
DEA:EMA(DIF,D3);
MACD:2*(DIF-DEA), COLORSTICK,LINETHICK2;
低位金叉:=CROSS(DIF,DEA) AND DIF<-0.1;
STICKLINE(低位金叉,0,0.12,4,0),COLORYELLOW;
DRAWTEXT(低位金叉,0.1,' 低位金叉'),COLORWHITE;
JCCOUNT:=COUNT(CROSS(DIF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,30)=1; STICKLINE(二次金叉,0,0.06,4,0),COLORFF00FF;
DRAWICON(二次金叉,DEA*0.9,1) ;
DRAWTEXT(二次金叉,0.3,' 二次金叉'),COLORYELLOW;
A1:=BARSLAST(REF(CROSS(DIF,DEA),1));
{上一次昨日MACD金叉到当日周期数。
}
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIF>REF(DIF,A1+1) AND CROSS(DIF,DEA) AND
DEA<0;
{上次金叉时的收盘价>当日收盘价,股价创新低,当日MACD金叉点却未创新低,形成底背离,并且在0轴之下。
}
STICKLINE(底背离,0,0.03,6,0),COLOR00FF00;
底背:DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORRED,LINETHICK4;
{第一次金叉为起点,出现底背离的第二次金叉为终点,画线段。
}
DRAWTEXT(底背离,-0.15,' 底背离'),COLORFF00FF;
A2:=BARSLAST(REF(CROSS(DEA,DIF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIF,A2+1)>DIF AND CROSS(DEA,DIF); DRAWTEXT(顶背离,0.3,' 顶背离'),COLORGREEN;
顶背:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,LINETHICK4;。