以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11648)

--  作者:XO仔
--  发布时间:2012/5/12 15:03:33
--  [求助]

我想借用 股疯 的日内模型平仓条件 搭建我自己的模型 只是自己添加上开仓指令,但我发现 开仓指令 跟 平仓指令一样的话 模型不会反手,假如我想做一个平仓并反手的,该怎么改, 有没有大哥帮忙改一下完善一下我的模型,万分感谢!!!

给出股疯 日内模型如下:

//参数设置:

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

 


--  作者:董小球
--  发布时间:2012/5/14 10:33:36
--  
楼主 你这个代码这么长,让工作人员好好看看再答复你吧!