以文本方式查看主题

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

--  作者:闲人
--  发布时间:2011/4/12 23:51:52
--  求助

有个思路,请哪位老师帮忙编写

 

日线趋势判断:

日线多头趋势:均线>5日内的低点,多头

日线空头趋势:均线<5日内的高点,空头

 

在30分钟周期上引用日线趋势

 

均线>5日内的低点 并且 (日线多头趋势:均线>5日内的低点),开多

均线<5日内的高点                                                         , 空平

 

均线<5日内的高点 并且 (日线空头趋势:均线<5日内的高点) ,开空

均线>5日内的低点                                                           ,多平   

 

还有这个买卖函数如开多有BK、ENTERLONG、BUY、TBUY,这几个都是开多,有什么区别?怎样区别应用?请老师指点

[此贴子已经被作者于2011-4-13 0:03:13编辑过]

--  作者:guotx2010
--  发布时间:2011/4/13 9:06:40
--  

首先回答BK、ENTERLONG、BUY、TBUY的区别:

BK,EnterLong是在系列模式下用的开多指令,不能用在逐K线模式下,

Buy用在逐K线模式下的图表交易,

TBuy用在逐K线模式下的后台交易。

 


--  作者:guotx2010
--  发布时间:2011/4/13 9:44:45
--  

首先在公式系统建立一个多空趋势的公式:

 

J:MA(C,5)>LLV(L,5),linethick0;     //J>0为多头
D:MA(C,5)<HHV(H,5),linethick0;   //D>0为空头

 

然后建立策略:

DuoTou:=Stkindi(stklabel(),\'MA5DuoKong.J\',0,6,0);    //日线多头趋势
KongTou:=Stkindi(stklabel(),\'MA5DuoKong.D\',0,6,0);   //日线空头趋势
Buy1:=MA(C,5)>LLV(L,5) And DuoTou>0;
BuyP:=MA(C,5)<HHV(H,5);
Sell1:=MA(C,5)<HHV(H,5) And KongTou>0;
SellP:=MA(C,5)>LLV(L,5);

//使用系列模式时
//{平多}EXITLONG:BuyP,TFILTER;
//{开空}ENTERSHORT:Sell1,TFILTER;
//
//{平空}EXITSHORT:SellP ,TFILTER;
//{开多} ENTERLONG:Buy1,TFILTER;

//使用逐K线模式时
variable:DuoKong=1;
OrdVol:=1;     {开仓手数}
ZsDs:=10;     {止损点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
YdZy:=0,linethick0;   {移动止盈总开关,1为开,0为关}
variable:HighPrice=0,LowPrice=0; {保存开仓后的最高价、最低价}
variable:DHcDs=3,KHcDs=3;   {多、空单回撤点数}
variable:DYlDs=7,KYlDs=7;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
variable:Z3B1=0;     {赚3保1开关}
variable:MaxProfit=0,CurrentProfit=0; {最大盈利、当前盈利}


//持有空单
If Holding<0 then Begin
 If SellP And Enterbars>=2 then begin   //平空单
  空平:SellShort(1,0,mkt),orderqueue;
 End
 
 //止损
 If C-Enterprice>=ZsDs then begin
  空损:SellShort(1,0,mkt),orderqueue;
 End
 
 //移动止盈
 If YdZy=1 then begin
  //每周期判断是否创新低
  If L<LowPrice then begin
   LowPrice:=L;
  End
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  If Enterprice-LowPrice>=KYlDs then begin
   If L-LowPrice>=KHcDs Then Begin  //回撤超过3点
    空赢:SellShort(1,0,market);
   End
  End
 End
 
 //赚3保1
 If Z3B1=1 then begin
  If Enterprice-LowPrice>=3 then begin
   If Enterprice-L<=1.2 then begin
    空保:SellShort(1,0,market);
   End
  End
 End
End

//开多单
If holding=0 then begin
 If DuoKong=1 Or DuoKong=2 then begin
  If Buy1 then begin
   多开:Buy(1,ordVol,mkt);
   HighPrice:=Enterprice;  //将开仓价保存到最高价
  End
 End
end

//持有多单
If Holding>0 then Begin
 If BuyP And Enterbars>=2 then begin  {平多单}
  多平:Sell(1,0,mkt),orderqueue;
 End
 
 //多单管理
 //止损
 If Enterprice-C>=ZsDs then begin
  多损:Sell(1,0,mkt),orderqueue;
 End

 //移动止盈
 If YdZy=1 then begin
  //每周期判断是否创新高
  If H>HighPrice then begin
   HighPrice:=H;
  End
 
//如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  If HighPrice-Enterprice>=DYlDs then begin
   If HighPrice-H>=DHcDs Then Begin  //回撤超过3点
    多赢:Sell(1,0,market);
   End
  End
 End

 //赚3保1
 If Z3B1=1 then begin
  If HighPrice-Enterprice>=3 then begin
   If H-Enterprice<=1.2 then begin
    多保:Sell(1,0,market);
   End
  End
 End
End

//开空单
If holding=0 then begin
 If DuoKong=1 Or DuoKong=3 then begin
  If Sell1 then begin
   空开:BuyShort(1,ordVol,mkt);
   LowPrice:=enterprice;
  End
 End
end

最低价:LowPrice,linethick0;
最高价:HighPrice,linethick0;
开仓价:Enterprice,noaxis,linethick0;
持仓:Holding,linethick0;

//收益:asset,noaxis,colorred;
//次数:totaltrade,linethick0;
//胜率:percentwin,linethick0;
//连亏:maxseqloss,linethick0;
//连赢:maxseqwin,linethick0;

 

 

 

 


--  作者:guotx2010
--  发布时间:2011/4/13 9:45:58
--  

东西是做出来了,可是你的日线多头空头的条件不充分,导致信号不准确,有待你自己去优化条件。

 


--  作者:闲人
--  发布时间:2011/4/13 14:16:15
--  

哇,这吗长,非常感谢!我要好好学习。

我现在对这个策略非常有信心,但是我现在的期货公司(良茂期货)没有金字塔,用的是免费版,我应该怎么处理。如果买个软件可以交易吗?

[此贴子已经被作者于2011-4-13 14:34:15编辑过]

--  作者:董小球
--  发布时间:2011/4/13 14:50:42
--  

金字塔暂时没有良茂期货的交易站点,如果他们是支持CTP的,可以让期货公司的技术人员联系我们,我们添加后就可以交易了!


--  作者:闲人
--  发布时间:2011/4/16 11:47:00
--  

老师,不好意思,我没把思路写清楚,现在从新调整一下,麻烦您再帮我写写策略

 

日线趋势判断:

日线多头趋势:均线>5日内的均线低点,多头

日线空头趋势:均线<5日内的均线高点,空头

 

在30分钟周期上引用日线趋势

 

均线>5日内的均线低点 并且 (日线多头趋势:均线>5日内的均线低点),开多

均线<5日内的均线高点                                                         , 空平

 

均线<5日内的均线高点 并且 (日线空头趋势:均线<5日内的均线高点) ,开空

均线>5日内的均线低点                                                           ,多平

 

另外,在30分钟的周期上引用了日线5个周期的高点或低点,这个引用过来的是日线的5个周期数据,还是就30分钟5根k线时间范围的日线数据?


--  作者:董小球
--  发布时间:2011/4/18 9:23:46
--  

30分钟周期上引用日线

你这句话的意思明显是 现在你在看30分钟线的K线

然后你要调用日线上的某种数据

 

感觉改动不大,建议楼主学学基础的指标编写,这样才方便日后做程序化的交易!


--  作者:闲人
--  发布时间:2011/4/18 10:37:35
--  

我现在就是在学习使用金字塔的编写,原来接触过文华的,后来发现文华的无法把我的思路实现就放弃了。现在我是能用金字塔编写比较简单的指标。

上面的这个思路我也编写好了指标,用的是“日线趋势:指标名称#DAY”,(我怎么把图片贴上去?),

现在就是想把这个做成程序化,但是做出来后好像和想象的不一样,不知道问题出在哪?

还有,我在国贸期货有个帐户,麻烦您给个建议,要怎样购买软件,然后用于交易

 


--  作者:董小球
--  发布时间:2011/4/18 10:56:48
--  

国贸期货是支持的,我觉得如果楼上给的代码跟你的想法不完全相同,这个可能是你想的并非你在帖子里所写的缘故。

你可以先申请一个标准版试用帐号,在模拟交易上多测测,然后修改,再进行实盘交易!