以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  图表日内交易模板  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=3005)

--  作者:股疯
--  发布时间:2010/9/27 12:34:27
--  图表日内交易模板

识金字塔月余,模板只是雏形,望坛友指正!

 模板主要供新人图表交易上手用,简单设置参数和信号模块就可以开始您的程序化之旅!GOODLUCK!

 

 


////////////////////////////////////////////////////////////////////////
//参数设置:
INPUT:P(1,0,200,1){建仓量},P1(2,0,50,1){初始止损幅度},P2(5,2,100,1){止盈幅度},P3(30,5,60,5){回撤止盈};
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 090000;{用于隔夜高开或低开时间差}                
WIN1:=0;                                                           
WIN2:=0;//止盈、止损、回撤控制
 

////////////////////////////////////////////////////////////////////////
//账户信息:
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;

////////////////////////////////////////////////////////////////////////
//主程序

/////////////////

//信号模块:该模块主用于多空头及平仓信号的量化

{示例如下:开多:当MA10上穿MA20时,发出买入开仓交易指令; 平空:当MA10
上穿MA5时,发出卖出平仓交易指令;平多:当MA5上穿MA10时,发出买入平仓交
易指令;开空:当MA10下穿MA20时,发出开空交易指令;}

MA5: MA(CLOSE,5),PRECISION0,;                                                  
MA10:MA(CLOSE,10),PRECISION0,;                                                 
MA20:MA(CLOSE,20),PRECISION0,;                                                 
                                                                   
开多:=CROSS(MA10,MA20);                                            
平多:=CROSS(MA5,MA10);                                             
开空:=CROSS(MA20,MA10);                                            
平空:=CROSS(MA10,MA5);                                             
交易时间:=TIME>VMIN AND TIME<150000;
                             
                                                                   
////////////////
//图表日内交易模块:

 
  IF HOLDING=0 THEN BEGIN
     //多头开仓
     IF 交易时间 AND 开多 THEN BEGIN
         BUY(1,P,LIMITR,CLOSE);
         MAXPROFIT:=0;
     END
     
     //空头开仓
     IF 交易时间 AND 开空 THEN BEGIN
         BUYSHORT(1,P,LIMITR,CLOSE);
         MAXPROFIT:=0;
     END
 END
 
 IF HOLDING>0 THEN BEGIN
     //多头平仓
     IF 平多 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //多头收盘平仓

     IF NOT(交易时间) THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //盈亏计算
     IF ENTERBARS>0 THEN BEGIN
         WIN1:=(C-ENTERPRICE)/ENTERPRICE*100;
         IF WIN1>MAXPROFIT THEN
             MAXPROFIT:=WIN1;
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
     END
 
     //多头初始浮亏 P1% 止损
     IF WIN1<-P1 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //多头利润大于 P2% 止盈
     IF WIN1>P2 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
     
     //多头获利后回撤 P3%止盈
     IF WIN2>P3 AND OPENPROFIT>0 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 END
 
 IF HOLDING<0 THEN BEGIN
    
     //空头平仓
     IF 平空 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 
     //空头收盘平仓
     IF NOT(交易时间) THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     
     //盈亏计算
     IF ENTERBARS>0 THEN BEGIN
         WIN1:=(ENTERPRICE-C)/ENTERPRICE*100;
         IF WIN1>MAXPROFIT THEN
             MAXPROFIT:=WIN1;
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
     END
 
     //空头初始浮亏超过 P1% 止损
     IF WIN1<-P1 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 
     //空头利润大于 P2%止盈
     IF WIN1>P2 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     
     //空头回撤 P3% 止盈
     IF WIN2>P3 AND OPENPROFIT>0 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 END


--  作者:股疯
--  发布时间:2010/9/27 12:40:33
--  

模型中的信号模块只是示例,需要用你自己的东西替代哦

 


--  作者:WK668668
--  发布时间:2010/9/27 12:47:55
--  

这个好!!!  学习了! 谢谢!!


--  作者:股疯
--  发布时间:2010/9/27 15:21:18
--  

更正如下:


////////////////////////////////////////////////////////////////////////
//参数设置:
INPUT:P(1,0,200,1){建仓量},P1(2,0,50,1){初始止损幅度},P2(5,2,100,1){止盈幅度},P3(30,5,60,5){回撤止盈};
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 090000;{用于隔夜高开或低开时间差}                
WIN1:=0;                                                           
WIN2:=0;//止盈、止损、回撤控制
 

////////////////////////////////////////////////////////////////////////
//账户信息:
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;

////////////////////////////////////////////////////////////////////////
//主程序

/////////////////

//信号模块:该模块主用于多空头及平仓信号的量化

{示例如下:开多:当MA10上穿MA20时,发出买入开仓交易指令; 平空:当MA10
上穿MA5时,发出卖出平仓交易指令;平多:当MA5上穿MA10时,发出买入平仓交
易指令;开空:当MA10下穿MA20时,发出开空交易指令;}

MA5: MA(CLOSE,5),PRECISION0,;                                                  
MA10:MA(CLOSE,10),PRECISION0,;                                                 
MA20:MA(CLOSE,20),PRECISION0,;                                                 
                                                                   
开多:=CROSS(MA10,MA20);                                            
平多:=CROSS(MA5,MA10);                                             
开空:=CROSS(MA20,MA10);                                            
平空:=CROSS(MA10,MA5);                                             
交易时间:=TIME>VMIN AND TIME<151430;
                             
                                                                   
////////////////
//图表日内交易模块:

 
  IF HOLDING=0 THEN BEGIN
     //多头开仓
     IF 交易时间 AND 开多 THEN BEGIN
         BUY(1,P,LIMITR,CLOSE);
         MAXPROFIT:=0;
     END
     
     //空头开仓
     IF 交易时间 AND 开空 THEN BEGIN
         BUYSHORT(1,P,LIMITR,CLOSE);
         MAXPROFIT:=0;
     END
 END
 
 IF HOLDING>0 THEN BEGIN
     //多头平仓
     IF 平多 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //多头收盘平仓

     IF NOT(交易时间) THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //盈亏计算
     IF ENTERBARS>0 THEN BEGIN
         WIN1:=(C-ENTERPRICE)/ENTERPRICE*100;
         IF WIN1>MAXPROFIT THEN
             MAXPROFIT:=WIN1;
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
     END
 
     //多头初始浮亏 P1% 止损
     IF WIN1<-P1 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 
     //多头利润大于 P2% 止盈
     IF WIN1>P2 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
     
     //多头获利后回撤 P3%止盈
     IF WIN2>P3 AND OPENPROFIT>0 THEN
         SELL(1,HOLDING,LIMITR,CLOSE);
 END
 
 IF HOLDING<0 THEN BEGIN
    
     //空头平仓
     IF 平空 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 
     //空头收盘平仓
     IF NOT(交易时间) THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     
     //盈亏计算
     IF ENTERBARS>0 THEN BEGIN
         WIN1:=(ENTERPRICE-C)/ENTERPRICE*100;
         IF WIN1>MAXPROFIT THEN
             MAXPROFIT:=WIN1;
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
     END
 
     //空头初始浮亏超过 P1% 止损
     IF WIN1<-P1 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 
     //空头利润大于 P2%止盈
     IF WIN1>P2 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     
     //空头回撤 P3% 止盈
     IF WIN2>P3 AND OPENPROFIT>0 THEN
         SELLSHORT(1,HOLDING,LIMITR,CLOSE);
 END

 


--  作者:明心
--  发布时间:2010/9/27 16:17:34
--  

顶一下。呵呵


--  作者:newbasic
--  发布时间:2010/9/28 18:55:05
--  
谢谢股疯mm
--  作者:tjcker
--  发布时间:2010/9/29 12:04:47
--  

期盼高手再接再厉,搞个“后台程序化”的模块平台出来啊!要求可以多品种组合、可以多周期情况下读取是否持仓并可以减仓加仓、多空单量可使用以多少手、资金量%为单位。如果该平台完善后可以销售啊。


--  作者:D
--  发布时间:2010/9/29 18:53:51
--  
股疯,好像资金显示不对哦。有没有测试过?
--  作者:jinjianlin
--  发布时间:2010/10/10 15:31:38
--  

古风姐姐的帖子一定要顶下,,


--  作者:新大陆
--  发布时间:2010/10/12 22:07:43
--  
一个完整的好东西,多谢高手们奉献,认真学习中.........