王冠杰 2006-2-14 12:34
谢谢YNGS 兄,因为使用传统MACD指标,朋友们总是上当,使用分析家的朋友也用不上飞狐的MACD实战源码,因此做了分析家《实战MACD》源码,飞狐的在MACD实战源码上加以改编就成,朋友们自己搞吧。
YNGS 兄已看帖了,那我就帖公式了:
[size=5][color=Red]分析家《实战MACD》源码[/color][/size]
input:LONG(26,20,100),SHORT(12,5,40),M(9,2,60);{实战MACD};
MK:="MACD.DIFF#week";
MD:="MACD.DEA#week";
FILLRGN(MK,MD, MK > MD,RGB(230,90,50));
FILLRGN(MD,MK, MK< MD,RGB(50,90,250));
ZDIF:MK;
ZDEA:MD;
DIFF:=(EMA(CLOSE,SHORT) - EMA(CLOSE,LONG));
DEA:=EMA(DIFF,M);
MACD2:=(2 * (DIFF - DEA));
VERTLINE(((CLOSE < 0) AND CROSS(DIFF,0)),0),color808080;
VERTLINE(((CLOSE < 0) AND CROSS(MACD2,0)),0),color808080;
VERTLINE(((CLOSE < 0) AND CROSS(0,DIFF)),0),color808080;
VERTLINE(((CLOSE < 0) AND CROSS(0,MACD2)),0),color808080;
DU0:=CROSS(DIFF,0);
UD0:=CROSS(0,DIFF);
TDU0:=BARSLAST(DU0);
TUD0:=BARSLAST(UD0);
DU3:=REF(DU0,1);
UD3:=REF(UD0,1);
TDU3:=BARSLAST(DU3);
TUD3:=BARSLAST(UD3);
UDGLINE:=IF((TDU3 < TUD3),REF(HHV(HIGH,2),TDU3),REF(LLV(LOW,2),TUD3));
JDU0:=(((REF(CLOSE,1) <= REF(UDGLINE,1)) AND (CLOSE > UDGLINE)) AND (TDU0 < TUD0));
JUD0:=(((REF(CLOSE,1) >= REF(UDGLINE,1)) AND (CLOSE < UDGLINE)) AND (TUD0 < TDU0));
JDU1:=(JDU0 AND (COUNT(JDU0,TDU0) = 1));
JUD1:=(JUD0 AND (COUNT(JUD0,TUD0) = 1));
JDU2:=(JDU1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));
JUD2:=(JUD1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));
JDU3:=(JDU1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));
JUD3:=(JUD1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));
BSLINE:=IF((BARSLAST(JDU2) < BARSLAST(JUD2)),IF(REF(CROSS(0,MACD2),1),LLV(LOW,2),REF(LLV(LOW,2),BARSLAST(REF(CROSS(0,MACD2),1)))),IF(REF(CROSS(MACD2,0),1),HHV(HIGH,2),REF(HHV(HIGH,2),BARSLAST(REF(CROSS(MACD2,0),1)))));
DRAWICON((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))),0,9),VALIGN1,LAYER0;
DRAWICON((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))),0,10),VALIGN1,LAYER0;
STICKLINE((MACD2 >= 0),0,MACD2,6,1),colorRED;
STICKLINE(((MACD2 >= 0) AND (MACD2 < REF(MACD2,1))),0,MACD2,6,0),colorRED;
STICKLINE((MACD2 < 0),0,MACD2,6,0),colorFFFF00;
STICKLINE(((MACD2 < 0) AND (MACD2 > REF(MACD2,1))),0,MACD2,6,1),colorFFFF00;
DIF:DIFF,LINETHICK2,color00FFFF;
MACD:DEA,color00FF00;
DEF:MACD2,LINETHICK0,colorFFFF00;
STICKLINE((CLOSE > 0),0,0,10,0),color808080;
DEFUT:=BARSLAST(CROSS(MACD2,0));
DEFDT:=BARSLAST(CROSS(0,MACD2));
DEFUL:=IF((MACD2 >= 0),HHV(MACD2,(DEFUT + 1)),REF(HHV(MACD2,(DEFUT + 1)),(DEFDT + 1)));
DEFDL:=IF((MACD2 < 0),LLV(MACD2,(DEFDT + 1)),REF(LLV(MACD2,(DEFDT + 1)),(DEFUT + 1)));
DEFU2L:=REF(DEFUL,(DEFUT + 1));
DEFD2L:=REF(DEFDL,(DEFDT + 1));
DRAWICON(((((LLV(MACD2,4) > 0) AND (MACD2 < REF(MACD2,1))) AND (REF(MACD2,1) > REF(MACD2,2))) AND (REF(MACD2,2) > REF(MACD2,3))),MACD2,5),VALIGN1,ALIGN1;
DRAWICON(((((HHV(MACD2,4) < 0) AND (MACD2 > REF(MACD2,1))) AND (REF(MACD2,1) < REF(MACD2,2))) AND (REF(MACD2,2) < REF(MACD2,3))),MACD2,4);
DRAWICON(((((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND (MACD2 >= 0)) AND (REF(MACD2,1) < REF(DEFU2L,1))) AND (MACD2 > DEFU2L)),MACD2,8),VALIGN0,ALIGN1;
DRAWICON(((((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND (MACD2 < 0)) AND (REF(MACD2,1) > REF(DEFD2L,1))) AND (MACD2 < DEFD2L)),MACD2,8),VALIGN2,ALIGN1;
{TIPTEXT};
TIPTEXT(((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND (CLOSE < BSLINE)),10,'防守价跌破:多头小心');
TIPTEXT(((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND (CLOSE > BSLINE)),-10,'防守价突破:空头小心');
TIPTEXT(((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND CROSS(MACD2,0)),-10,'空头注意今明两日高点压力,找日落K线放空,用线控盘');
TIPTEXT(((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND CROSS(0,MACD2)),10,'多头注意今明两日低点支撑,找日出K线做多,用线控盘');
TIPTEXT(((((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND (MACD2 >= 0)) AND (REF(MACD2,1) < REF(DEFU2L,1))) AND (MACD2 > DEFU2L)),-10,'DEF柱状特殊研判:空头注意今明两日高点压力');
TIPTEXT(((((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND (MACD2 < 0)) AND (REF(MACD2,1) > REF(DEFD2L,1))) AND (MACD2 < DEFD2L)),10,'DEF柱状特殊研判:多头注意今明两日低点支撑');
{TIPTEXT((REF((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))),1) AND CROSS(REF(MACD2,1),0)),-10,'空头注意压力:,HHV(HIGH,2),2,1).')};
TIPTEXT((REF((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))),1) AND CROSS(REF(MACD2,1),0)),-10,'找日落K线放空,用线控盘');
{EXPLAINEX((REF((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))),1) AND CROSS(0,REF(MACD2,1))),'多头注意支撑',LLV(LOW,2),2,1)};
TIPTEXT((REF((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))),1) AND CROSS(0,REF(MACD2,1))),10,'找日出K线进场,用线控盘');
TIPTEXT(((((LLV(MACD2,4) > 0) AND (MACD2 < REF(MACD2,1))) AND (REF(MACD2,1) > REF(MACD2,2))) AND (REF(MACD2,2) > REF(MACD2,3))),10,'请注意DEF柱状缩头');
TIPTEXT(((((HHV(MACD2,4) < 0) AND (MACD2 > REF(MACD2,1))) AND (REF(MACD2,1) < REF(MACD2,2))) AND (REF(MACD2,2) < REF(MACD2,3))),-10,'请注意DEF柱状缩脚');
[size=4]再转帖其他朋友一篇文章[/size]
{MACD捕捉主升浪起涨点 (核心内参,免费查看)
在多年的投资实践和技术研究中发现,在选股尤其是选强势股方面,MACD有着非常重要的作用, 如果运用得好,可以成功地捕捉到行情主升浪的起涨点,其方法如下:
首先是调整所用分析软件中有关指标的参数,即移动平均线时间参数设定为5、10、30,它们分别代 表短期、中期、长期移动平均线;成交量平均线参数设定为5、10;MACD中的快速E-MA参数设定 为8,慢速EMA参数设定为13,DIF参数设定为9。
调整好指标参数之后,便是根据合理、科学的指标组合来设定选股条件。实践证明,满足“MACD连续 二次翻红”的股票往往会有非常好的上涨行情。所谓“MACD连续二次翻红”,是指MACD第一次出现 红柱后,还没等红柱缩没变绿便又再次放大其红柱。这是利用MACD选股的关键。如果一只股票的走势符 合这一总则,同时又符合以下四个条件,那就意味着该股票出现大幅上涨行情的可能性非常大:
一、30日移动平均线由下跌变为走平或翘头向上,5日、10日、30日移动平均线刚刚形成多头排列;
二、股票的日K线刚刚上穿30日移动平均线或在30日移动平均线上方运行;
三、MACD第一次翻红的红柱越短越好,一般不过多超过0轴上方的第一横线;
四、成交量由萎缩逐渐放大,当日成交量大于5日平均量。
特别需要说明的是,买入后成交量必须连续放大;买入后MACD的DIF值必须连续递增, 如果不符合这两个条件,就要及时出场。
[[i] 本帖最后由 欣儿 于 2006-2-14 13:30 编辑 [/i]]
shujenwen 2006-4-15 13:13
3Q!謝謝原提供者
3Q3Q3Q! 精簡雙周期MACD回饋
//{實戰MACD}雙周期MACD;
input:LONG(20,10,50),SHORT(10,5,30),M(9,2,30);
M2:=IF( DATATYPE=0,12,IF( DATATYPE=12,1,IF( DATATYPE=1,11,IF( DATATYPE=2,3,IF( DATATYPE=11,2,IF( DATATYPE=3,4,IF( DATATYPE=4,5,IF( DATATYPE=5,6,IF( DATATYPE=6,7,IF( DATATYPE=7,8,0))))))))));
MK:=STKINDI('','MACD20.DIFF',0,M2);//MACD參數,20,10,9 ;
MD:=STKINDI('','MACD20.DEA',0,M2);
e2:Sma(MK,3,1),colorff99ff,LINETHICK2;
f2:Sma(MD,3,1),colorFF9900,LINETHICK2;
fillrgn(e2>f2,e2,f2),colorff99ff;
fillrgn(f2>e2,e2,f2),colorFF9900;
DIFF:(EMA(CLOSE,SHORT) - EMA(CLOSE,LONG)),LINETHICK2;
DEA:EMA(DIFF,M),LINETHICK2;
MACD2:(2 * (DIFF - DEA)),COLORSTICK;
0;
王冠杰 2006-4-16 00:03
非常感谢shujenwen 朋友,对《实战MACD》指标修改得十分好,YNGS兄的愿望实现了,周线很
平滑,图形漂亮!!!!!!!!
允许我代表狐友们向你致敬,非常感谢你付出的辛勤创作!!!
祝shujenwen 朋友万事如意,常有极品指标能让朋友们分享!!!!!!
对shujenwen 朋友的 [//{實戰MACD}雙周期MACD]稍做改动,以方便朋友们直接使用。
请狐友们感谢shujenwen朋友
雙周期MACD---shujenwen创作
input:LONG(20,10,50),SHORT(10,5,30),M(9,2,30);
M2:=IF( DATATYPE=0,12,IF( DATATYPE=12,1,IF( DATATYPE=1,11,IF( DATATYPE=2,3,IF( DATATYPE=11,2,IF( DATATYPE=3,4,IF( DATATYPE=4,5,IF( DATATYPE=5,6,IF( DATATYPE=6,7,IF( DATATYPE=7,8,0))))))))));
MK:=STKINDI('','MACD.DIFF',0,M2);//MACD參數,20,10,9 ;
MD:=STKINDI('','MACD.DEA',0,M2);
e2:Sma(MK,3,1),colorff99ff,LINETHICK2;
f2:Sma(MD,3,1),colorFF9900,LINETHICK2;
fillrgn(e2>f2,e2,f2),colorff99ff;
fillrgn(f2>e2,e2,f2),colorFF9900;
DIFF:(EMA(CLOSE,SHORT) - EMA(CLOSE,LONG)),LINETHICK2;
DEA:EMA(DIFF,M),LINETHICK2;
MACD2:(2 * (DIFF - DEA)),COLORSTICK;
0;