以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  [原创]求助EMA指标的交易策略  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=10527)

--  作者:zhuangjyuan
--  发布时间:2012/3/12 21:11:37
--  [原创]求助EMA指标的交易策略

您好,我想编一个交易策略,大概是这样的:

1小时EMA40>EMA60,按5分钟进行操作,当5分钟EMA40>EMA60时做多,反之平多,止损为开仓价减30个点;

1小时EMA40<EMA60,按5分钟进行操作,当5分钟EMA40<EMA60时做空,反之平空,止损为开仓价加30个点;

[此贴子已经被作者于2012-3-12 21:21:02编辑过]

--  作者:jinzhe
--  发布时间:2012/3/13 8:47:56
--  
在5分钟k上引用1h的ema值就行了
--  作者:jinzhe
--  发布时间:2012/3/13 8:59:08
--  

首先建立一个公式名为:ema

然后在公式里面写入一下内容:

e40:ema(c,40);
e60:ema(c,60);

 

最后再建立一个公式,公式名称按自己的需求来起,来调用数据以及执行下单止损等操作 

 

ema40:stkindi(stklabel,\'ema.e40\',0,5);

ema60:stkindi(stklabel,\'ema.e60\',0,5);//引用的1小时的ema值


em40:=ema(c,40);
em60:=ema(c,60);//5分钟的ema值

cond1:ema40>ema60 and em40>em60;
cond2:ema40<ema60 and em40<em60;

if cond1 then begin
 sellshort(holding<0,0,thisclose);
 buy(holding=0,1,thisclose);
end
//1小时EMA40>EMA60,按5分钟进行操作,当5分钟EMA40>EMA60时做多,反之平多

if cond2 then begin
 sell(holding>0,0,thisclose);
 buyshort(holding=0,1,thisclose);
end
//1小时EMA40<EMA60,按5分钟进行操作,当5分钟EMA40<EMA60时做空,反之平空

if c<enterprice-30*mindiff then sell(holding>0,0,thisclose);//止损为开仓价减30个点;

if c>enterprice+30*mindiff then sellshort(holding<0,0,thisclose);//止损为开仓价加30个点;