MACD背离指标通达信指标公式源码
自动画MACD背离线通达信指标公式源码

自动画MACD背离的指标:一共两个指标,一个是通达信用的,一个是大智慧用的{通达信自动划MACD指标背离线}DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);DEA:EMA(DIFF,9);MACD:2*(DIFF-DEA), COLORSTICK;A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));底背离:=REF(CLOSE,A1+1)>CLOSE AND DIFF>REF(DIFF,A1+1) AND CROSS(DIFF,DEA); STICKLINE(底背离,0,0.1,8,0),COLORRED;DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORRED,LINETHICK2;A2:=BARSLAST(REF(CROSS(DEA,DIFF),1));顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIFF,A2+1)>DIFF AND CROSS(DEA,DIFF); DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,LINETHICK2;{大智慧自动划MACD指标背离线(适用于大智慧新一代)}DIF:EMA(CLOSE,12)-EMA(CLOSE,26);DEA:EMA(DIF,9);MACD:(DIF-DEA)*2,COLORSTICK;A:=SUMBARS(CROSS(DEA,DIF),2);B:=SUMBARS(CROSS(DEA,DIF),1);E:=REF(DIF,LLVBARS(DIF,A))<REF(DIF,LLVBARS(DIF,B)) AND LLVBARS(DIF,B)<LLVBARS(DIF,A) ANDCROSS(DIF,DEA);F:=COUNT(BACKSET(E,LLVBARS(DIF,A)+1),LLVBARS(DIF,A)+1)=1; G:=COUNT(BACKSET(E,LLVBARS(DIF,B)+1),LLVBARS(DIF,B)+1)=1; DRAWLINE(F,DIF,G,DIF,0),COLOERED;。
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背离指标的源码:```/*功能:计算MACD背离线指标公式:当股价形成新高而MACD指标不形成新高时,出现向下背离当股价形成新低而MACD指标不形成新低时,出现向上背离参数:无返回值:无*/indicator fn_DEVIATION_MACDMA1:=EMA(CLOSE,12);MA2:=EMA(CLOSE,26);DIFF:=MA1-MA2;DEA:=EMA(DIFF,9);MACD:=2*(DIFF-DEA);PeakArr:=[];TroughArr:=[];PeakCount:=0;TroughCount:=0;//寻找股价的峰值和谷底Loop:=BARSSINCE(HIGHESTBARS(HIGH,9)) + 1;FOR i FROM Loop TO BARCOUNT-1BEGINIFHIGH[i]>REF(HIGH,1)[i]ANDHIGH[i]>HIGH[i+1]THENBEGINPeakCount := PeakCount + 1;PeakArr[PeakCount] := i;END;IFLOW[i]<REF(LOW,1)[i]ANDLOW[i]<LOW[i+1]THENBEGINTroughCount := TroughCount + 1;TroughArr[TroughCount] := i;END;END;//判断是否存在背离BEARTrend := IF(REF(MACD,1) > REF(MACD,2),1,-1); // 1表示下跌趋势,-1表示上涨趋势PeakPos := 0;TroughPos := 0;Signal := "";FOR i FROM 1 TO MIN(PeakCount, TroughCount) BEGINIF BEARTrend = 1 THENBEGINIF HIGH[PeakArr[i]] > HIGH[PeakArr[i-1]] THEN BEGINIF LOW[TroughArr[i]] > LOW[TroughArr[i-1]] THEN BEGINPeakPos := PeakArr[i];TroughPos := TroughArr[i];Signal := "向下背离";BREAK;END;END;END;ELSE IF BEARTrend = -1 THENBEGINIF HIGH[PeakArr[i]] < HIGH[PeakArr[i-1]] THENBEGINIF LOW[TroughArr[i]] < LOW[TroughArr[i-1]] THENBEGINPeakPos := PeakArr[i];TroughPos := TroughArr[i];Signal := "向上背离";BREAK;END;END;END;END;//输出背离信号IF PeakPos > 0 AND TroughPos > 0 THENBEGINDRAWICON(PeakPos, HIGH[PeakPos], CONCAT(Signal, "顶背离"),IC_TRIANGLE, 0, RED);DRAWICON(TroughPos, LOW[TroughPos], CONCAT(Signal, "底背离"), IC_TRIANGLE, 1, GREEN);END;//返回背离信号位置RETURN PeakPos, TroughPos;```以上代码使用通达信魔法公式语言编写,通过计算MACD指标的DIF、DEA、MACD三个值,并寻找股价的峰值和谷底来判断是否存在背离信号。
MACD顶底背离通达信指标公式源码

MACD顶底背离通达信指标公式源码```text/*MACD顶底背离指标*//*输入参数说明:bsPeriod: 顶底背离周期,默认为9macdFastPeriod: MACD快线周期,默认为12macdSlowPeriod: MACD慢线周期,默认为26macdSignalPeriod: MACD信号线周期,默认为9*/_VAR1:=BSPeriod;_VAR2:=MACDSPERIOD;_VAR3:=MACDPERIOD;_VAR4:=MACDFPARRAY[1];_VAR5:=CLOSE>REF(HHV(HIGH,_VAR2),1);_VAR6:=CLOSE<REF(LLV(LOW,_VAR2),1);_VAR7:=HHV(HIGH,_VAR3)<HHV(HIGH,_VAR3+1)&&REF(HHV(HIGH,_VAR3 +1),1)<REF(HHV(HIGH,HHV(_VAR3,_VAR3)),-1);_VAR8:=LLV(LOW,_VAR3)>LLV(LOW,_VAR3+1)&&REF(LLV(LOW,_VAR3+1) ,1)>REF(LLV(LOW,LLV(_VAR3,_VAR3)),-1);_VAR9:=IF(_VAR4<0,(_VAR4-CLOSE),IF(_VAR4>0,(_VAR4+CLOSE),CLOSE));_VAR10:=REF(_VAR9,1);_TR:=IF(_VAR5,_VAR1,IF(_VAR6,-_VAR1,0));_IF9:=IF(_VAR7,_VAR9,IF(_VAR8,-_VAR9,0));VAR11:=IF(_TR>BARSCOUNT,_TR,IF(_TR<BARSCOUNT,-_TR,0));_VAR12:=ABS(_IF9);_VAR13:=IF(_VAR12>BARSCOUNT,0,_VAR12);VAR14:EMA(IF(_TR>0,_TR,IF(_TR<0,ABS(_TR),0)),_VAR1*2-1);VAR15:EMA(_IF9,_VAR1*2-1);VAR16:EMA(VAR14,2);VAR17:EMA(VAR15,2);SWING:IF((_TR>VAR14&&VAR14>VAR16),(_TR<VAR14&&VAR14<VAR16),VAR14,IF((_TR<_IF9&&_IF9<VAR15),(_TR>_IF9&&_IF9>VAR15),_IF9,0));DVB:IF(VAR14<1,VAR15,0);DVS:IF(VAR14>1,VAR15,0);DVFH:IF(VAR15>VAR17&&VAR15!=MAX,VAR15,0);DVFL:IF(VAR15<VAR17&&VAR15!=MIN,VAR15,0);DVFHB:=IF(VAR15>VAR17&&VAR15>REF(VAR15,1),VAR15,0);DVFHS:=IF(VAR15>VAR17&&VAR15<REF(VAR15,1),VAR15,0);DVFLB:=IF(VAR15<VAR17&&VAR15<REF(VAR15,1),VAR15,0);DVFHS:CCOLOR==VOLUME?COLORBLUE:IF(CC:,COLORFF0000,0);DVFHB:DVFLB:CCOLOR==VOLUME?COLORBLUE:IF(CC:,COLOR00AAFF,0);FORMULA:=0;```以上是通达信公式语言的源码,用于计算MACD顶底背离指标。
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三次背离副图指标通达信源码.docx

常用的MACD三次背离副图指标通达信源码自己常用的MACD,严重底背离红柱子和底背离绿柱子,三次背离底部划线等, 主要看图比较清晰!DIFIF1:(EMA(CLOSE,12) - EMA(CLOSE,26))*100/EMA(CLOSE Z26); DEAEA1:EMA(DIFIF1,9);MACD1:=2*(DIFIF1-DEAEA1),STICK;MACD2:=EMA(MACD1,3);STICKLINE(MACD 1 >MACD2 AND MACD1>0,0,MACD1,3,0),COLORRED; STICKLINE(MACD 1 >MACD2 AND MACD1<O Z O,MACD1,3,0),COLORGREEN; STICKLINE(MACD1<MACD2,0,MACD1Z3,0),COLORCBCBCO;STICKLINE(MACDl>=0 OR MACDl<=O z O z O z50,l)z COLORWHITE;DIFIF1,COLOR33FF33,LINETHICK2;DEAEAl’COLORYELLOW 丄INETHICK2;MACD: MACD1,NODRAW,COLORMAGENTA;强:IF(DIFIF1>=DEAEA1,DIFIF1QRAWNULL),COLORRED 丄INETHICK2;弱:IF(DEAEA1>=DIFIF1Z DEAEA1,DRAWNULL)Z COLORFF9900,LINETHICK2; DRAWICON(CROSS(DIFIF1,DEAEA1),DIFIF1+O.l,l);DRAWICON(CROSS(DEAEA1,DIFIF1),0.4,2);Al:=BARSLAST(REF(CROSS(n MACD. DIF H z n MACD. DEA n)z 1));B1:=REF(C,A1+1)>C AND REF(H MACD.DIF,,,Al+l)<H MACD.DIF n AND CROSS(n MACD.DIF,,,n MACD.DEA n);DRAWTEXT(Bl>0z-0.8;MACD 底背'),COLORFFOOFF;A2:=BARSLAST(REF(CROSS(,,KDJ.K,,/,,KDJ.D,,)Z1));B2:=REF(C,A2+1)>C AND REF(^^KDJ.K^,,A24-1)<^^KDJ.K,, ANDCROSS(,,KDJ.K,,z,,KDJ.D n);DRAWTEXT(B2z-0.6;KDJ 底离'),COLORYELLOW;{KDJ 底背离};A3:=BARSLAST(REF(CROSS(,,RSLRSI1,,Z,,RSI.RSI2,,),1));B3:=REF(C,A3+1)>C AND REF(,,RSLRSIl,,z A3+l)<,,RSI.RSir,AND CROSS(”RSI・RSI1TRSI・RSI2J;DRAWTEXT(B3>0,-0.3z'RSI 底离'),COLORCYAN;{RSI 底背离};C1:=BARSLAST(REF(CROSS(,,MACD.DEA,,/,MACD.DIF,,),1));Dl:=REF(C,Cl+l)vC AND [^=(“1^。
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函数在图表上绘制背离信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{MACD背离指标}
DIFF: EMA(CLOSE,12) - EMA(CLOSE,26),COLORWHITE;
DEA: EMA(DIFF,9),COLORYELLOW;
MACD: 2*(DIFF-DEA), COLORSTICK;
STICKLINE(MACD<REF(MACD,1)AND MACD>0,0,MACD,0,0),COLORYELLOW; STICKLINE(MACD>REF(MACD,1)AND MACD<0,0,MACD,0,0),COLORGREEN;
低位金叉:=CROSS(DIFF,DEA) AND DIFF<-0.1;
STICKLINE(低位金叉,0,0.08,6,0),COLORYELLOW;
DRAWTEXT(低位金叉,0.16,' 低金叉'),COLORWHITE;
JCCOUNT:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIFF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,21)=1; STICKLINE(二次金叉,0,0.06,6,0),COLORFF00FF;
DRAWICON(二次金叉,DEA*0.9,1) ;
DRAWTEXT(二次金叉,0.2,' 二次金叉'),COLORYELLOW;
A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIFF>REF(DIFF,A1+1) AND CROSS(DIFF,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,DIFF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIFF,A2+1)>DIFF AND CROSS(DEA,DIFF); 顶背:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,LINETHICK4;
DRAWTEXT(低位金叉AND 二次金叉AND 底背离,0.25,'三全项'),COLOR0000FF,LINETHICK2;
IF(DIFF<0,DIFF,0),COLORRED,LINETHICK1;
IF(DIFF<0,0,DIFF),COLORRED,LINETHICK1;
IF(DIFF<DEA,DIFF,DEA),COLOR00FF00,LINETHICK1;
IF(DIFF>DEA,DEA,DEA),COLORWHITE,LINETHICK1;
金叉:CROSS(DIFF,DEA) AND DIFF<0.3;。