以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 交易策略发布专区 (http://weistock.com/bbs/list.asp?boardid=10)
---- 一个简单的MACD日内系统 (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=29797)
|
-- 作者:aback
-- 发布时间:2012/10/13 16:25:47
-- 一个简单的MACD日内系统
input:mm1(4,4,5,1); input:mm2(4,2,5,1); input:mm3(5,4,6,1); input:mm5(200,170,260,10); input:mm6(7,6,10,1);
runmode:0; variable:ema12=c,ema26=c,dea=0; if day<>ref(day,1) then begin ema12:=c; ema26:=c; dea:=0; end ema12:=ema12*11/13+c*2/13; ema26:=ema26*25/27+c*2/27; diff:ema12-ema26; dea:=dea*4/5+diff/5; dea1:dea; macd:2*(diff-dea),colorstick; input:shou(2,1,5,1);
TYP:= (HIGH + LOW + CLOSE)/3; cci:=(TYP-MA(TYP,6))/(0.015*AVEDEV(TYP,6));
开多1:count(diff>ref(diff,1),mm1)=mm1; 开多2:count(macd>ref(macd,1),mm2)=mm2; 开多3:count(diff>dea1,mm3)=mm3; 开多:开多1 AND 开多2 AND 开多3;
开空1:count(diff<ref(diff,1),mm1)=mm1; 开空2:count(macd<ref(macd,1),mm2)=mm2; 开空3:count(diff<dea1,mm3)=mm3; 开空:开空1 AND 开空2 AND 开空3;
平多1:=count(macd<ref(macd,1),mm4)=mm4; 平多2:=cci>mm5; 平空1:=count(macd>ref(macd,1),mm4)=mm4; 平空2:=cci<-mm5;
平多:平多1 or 平多2 or CLOSE<=(ENTERPRICE-mm6); 平空:平空1 or 平空2 or CLOSE>=(ENTERPRICE+mm6);
IF HOLDING>0 AND 平多 THEN SELL(1,0,MARKET); IF HOLDING>0 AND TIME=151200 THEN SELL(1,0,MARKET); IF HOLDING<0 AND 平空 THEN SELLSHORT(1,0,MARKET); IF HOLDING<0 AND TIME=151200 THEN SELLSHORT(1,0,MARKET); IF HOLDING=0 AND 开多 AND TIME<150900 THEN BUY(1,1,MARKET); IF HOLDING=0 AND 开空 AND TIME<150900 THEN BUYSHORT(1,1,MARKET);
此主题相关图片如下:555.jpg

|
-- 作者:Change_1206_
-- 发布时间:2012/10/13 20:14:57
--
你难道没有发现少了定义变量mm4吗?
|
-- 作者:jzt3321
-- 发布时间:2012/10/13 20:51:19
--
这种没有回撤的图线 不可靠吧
|
-- 作者:aback
-- 发布时间:2012/10/13 21:18:25
-- 请问为何公式设了导出需要密,实际却不需要密也能导出,
以下是引用Change_1206_在2012-10-13 20:14:57的发言: 你难道没有发现少了定义变量mm4吗?
input:mm4(10,8,10,1);
不好意思,漏了 !
|
-- 作者:aback
-- 发布时间:2012/10/13 21:24:18
--
重发 :
input:mm1(4,4,5,1); input:mm2(4,2,5,1); input:mm3(5,4,6,1); input:mm4(10,8,10,1); input:mm5(200,170,260,10); input:mm6(7,6,10,1);
runmode:0; variable:ema12=c,ema26=c,dea=0; if day<>ref(day,1) then begin ema12:=c; ema26:=c; dea:=0; end ema12:=ema12*11/13+c*2/13; ema26:=ema26*25/27+c*2/27; diff:ema12-ema26; dea:=dea*4/5+diff/5; dea1:dea; macd:2*(diff-dea),colorstick;
TYP:= (HIGH + LOW + CLOSE)/3; cci:=(TYP-MA(TYP,6))/(0.015*AVEDEV(TYP,6));
开多1:count(diff>ref(diff,1),mm1)=mm1; 开多2:count(macd>ref(macd,1),mm2)=mm2; 开多3:count(diff>dea1,mm3)=mm3; 开多:开多1 AND 开多2 AND 开多3;
开空1:count(diff<ref(diff,1),mm1)=mm1; 开空2:count(macd<ref(macd,1),mm2)=mm2; 开空3:count(diff<dea1,mm3)=mm3; 开空:开空1 AND 开空2 AND 开空3;
平多1:=count(macd<ref(macd,1),mm4)=mm4; 平多2:=cci>mm5; 平空1:=count(macd>ref(macd,1),mm4)=mm4; 平空2:=cci<-mm5;
平多:平多1 or 平多2 or CLOSE<=(ENTERPRICE-mm6); 平空:平空1 or 平空2 or CLOSE>=(ENTERPRICE+mm6);
IF HOLDING>0 AND 平多 THEN SELL(1,0,MARKET); IF HOLDING>0 AND TIME=151200 THEN SELL(1,0,MARKET); IF HOLDING<0 AND 平空 THEN SELLSHORT(1,0,MARKET); IF HOLDING<0 AND TIME=151200 THEN SELLSHORT(1,0,MARKET); IF HOLDING=0 AND 开多 AND TIME<150900 THEN BUY(1,1,MARKET); IF HOLDING=0 AND 开空 AND TIME<150900 THEN BUYSHORT(1,1,MARKET);
|
-- 作者:aback
-- 发布时间:2012/10/13 21:29:10
--
重发:注是3分钟周期。
input:mm1(4,4,5,1); input:mm2(4,2,5,1); input:mm3(5,4,6,1); input:mm4(10,8,10,1); input:mm5(200,170,260,10); input:mm6(7,6,10,1);
runmode:0; variable:ema12=c,ema26=c,dea=0; if day<>ref(day,1) then begin ema12:=c; ema26:=c; dea:=0; end ema12:=ema12*11/13+c*2/13; ema26:=ema26*25/27+c*2/27; diff:ema12-ema26; dea:=dea*4/5+diff/5; dea1:dea; macd:2*(diff-dea),colorstick;
TYP:= (HIGH + LOW + CLOSE)/3; cci:=(TYP-MA(TYP,6))/(0.015*AVEDEV(TYP,6));
开多1:count(diff>ref(diff,1),mm1)=mm1; 开多2:count(macd>ref(macd,1),mm2)=mm2; 开多3:count(diff>dea1,mm3)=mm3; 开多:开多1 AND 开多2 AND 开多3;
开空1:count(diff<ref(diff,1),mm1)=mm1; 开空2:count(macd<ref(macd,1),mm2)=mm2; 开空3:count(diff<dea1,mm3)=mm3; 开空:开空1 AND 开空2 AND 开空3;
平多1:=count(macd<ref(macd,1),mm4)=mm4; 平多2:=cci>mm5; 平空1:=count(macd>ref(macd,1),mm4)=mm4; 平空2:=cci<-mm5;
平多:平多1 or 平多2 or CLOSE<=(ENTERPRICE-mm6); 平空:平空1 or 平空2 or CLOSE>=(ENTERPRICE+mm6);
IF HOLDING>0 AND 平多 THEN SELL(1,0,MARKET); IF HOLDING>0 AND TIME=151200 THEN SELL(1,0,MARKET); IF HOLDING<0 AND 平空 THEN SELLSHORT(1,0,MARKET); IF HOLDING<0 AND TIME=151200 THEN SELLSHORT(1,0,MARKET); IF HOLDING=0 AND 开多 AND TIME<150900 THEN BUY(1,1,MARKET); IF HOLDING=0 AND 开空 AND TIME<150900 THEN BUYSHORT(1,1,MARKET);
此主题相关图片如下:666.jpg

|
-- 作者:aback
-- 发布时间:2012/10/13 21:32:36
--
以下是引用jzt3321在2012-10-13 20:51:19的发言: 这种没有回撤的图线 不可靠吧
20% ,6.8万的回撤还不高?呵呵!
这个模型其实几个月前就弄好了,现在看看虽然回撤大点,但资金线还是能往上的,关键是程序简单,提供一个思路,说不定那位修修补补,还能弄得更好也说不准!
|
-- 作者:aback
-- 发布时间:2012/10/14 7:52:01
--
声明一下,前半部分是"阿火"的专利,感谢一下!
阿火源码:
十一、日内重新计算指标(macd)的方法,以避免跳空对指标造成的影响。
这里顺带介绍一下日内重新计算指标的方法,这样可以避免跳空对指标造成的影响。
比较难的是macd,kdj之类的,均线之类的简单
这里依然以macd为例
runmode:0;
variable:ema12=c,ema26=c,dea=0;
if day<>ref(day,1) then begin
ema12:=c;
ema26:=c;
dea:=0;
end
ema12:=ema12*11/13+c*2/13;
ema26:=ema26*25/27+c*2/27;
diff:ema12-ema26;
dea:=dea*4/5+diff/5; dea1:dea;
macd:2*(diff-dea),colorstick;
|
-- 作者:xxb398
-- 发布时间:2012/10/14 10:37:05
--
谢谢LZ分享,测试正常,但图表交易信号出不来呢?
|
-- 作者:jzt3321
-- 发布时间:2012/10/14 13:20:03
--
不是说不高,是这种没有回撤的指标 你实盘敢用吗?
|