开拓者期货期权程序化系统交易论坛

标题: nopain管理员 [打印本页]

作者: zyxsir    时间: 2012-5-2 08:37:52     标题: nopain管理员

能否请nopain管理员帮助编一个if主力合约的日线程序,最好换合约的跳空能消除,如果不能除权,能否标示?自己编了很久,还是不能解决。谢谢!
请参见http://bbs.tradeblazer.net/thread-4274-1-1.html
作者: zyxsir    时间: 2012-5-2 11:01:16

我以前做日内,只需在主力连续合约测试就可以了。如果要做长线,888或000都不能接近实盘,需要做主力连续合约,并消除跳空才能准确测试,为何不能完善888合约?
作者: zyxsir    时间: 2012-5-3 07:11:01

//------------------------------------------------------------------------
// 简称: 1zlhy
// 名称: 主力合约
// 类别: 公式应用
// 类型: 用户应用
//------------------------------------------------------------------------

Vars

    Numeric Major(0);

    NumericSeries Con0;

    NumericSeries Con1;

    NumericSeries Con2;

    NumericSeries Con3;

    NumericSeries Con4;

    NumericSeries Con5;

    NumericSeries Con6;

    NumericSeries Con7;

    NumericSeries Con8;

    NumericSeries Con9;

    NumericSeries Con10;

    NumericSeries Con11;

    Numeric MyOpen;

    Numeric MyHigh;

    Numeric MyLow;

    Numeric MyClose;
       
        Numeric myvol;
       
        Numeric myopenint;
       
Begin

    CON0=DATA0.OPENINT;

    CON1=DATA1.OPENINT;

    CON2=DATA2.OPENINT;

    CON3=DATA3.OPENINT;

    CON4=DATA4.OPENINT;

    CON5=DATA5.OPENINT;

    CON6=DATA6.OPENINT;

    CON7=DATA7.OPENINT;

    CON8=DATA8.OPENINT;

    CON9=DATA9.OPENINT;

    CON10=DATA10.OPENINT;

    CON11=DATA11.OPENINT;


    If(Con0[1] > Major*1.1)

    {

        Major = Con0[1];

        MyOpen = Data0.Open;

        MyHigh = Data0.High;

        MyLow = Data0.Low;

        MyClose = Data0.Close;
               
                myvol = Data0.Vol;
               
                myopenint = Data0.OpenInt;
                 
    }


    If(Con1[1] > Major*1.1)

    {

        Major = Con1[1];

        MyOpen = Data1.Open;

        MyHigh = Data1.High;

        MyLow = Data1.Low;

        MyClose = Data1.Close;
               
                myvol = Data1.Vol;
               
                myopenint = Data1.OpenInt;
               
    }


    If(Con2[1] > Major*1.1)

    {

        Major = Con2[1];

        MyOpen = Data2.Open;

        MyHigh = Data2.High;

        MyLow = Data2.Low;

        MyClose = Data2.Close;
               
                myvol = Data2.Vol;
               
                myopenint = Data2.OpenInt;
               
    }


    If(Con3 [1]> Major*1.1)

    {

        Major = Con3[1];

        MyOpen = Data3.Open;

        MyHigh = Data3.High;

        MyLow = Data3.Low;

        MyClose = Data3.Close;
               
                myvol = Data3.Vol;
               
                myopenint = Data3.OpenInt;
               
    }


    If(Con4[1] > Major*1.1)

    {

        Major = Con4[1];

        MyOpen = Data4.Open;

        MyHigh = Data4.High;

        MyLow = Data4.Low;

        MyClose = Data4.Close;
               
                myvol = Data4.Vol;
               
                myopenint = Data4.OpenInt;
               
    }


    If(Con5[1] > Major*1.1)

    {

        Major = Con5[1];

        MyOpen = Data5.Open;

        MyHigh = Data5.High;

        MyLow = Data5.Low;

        MyClose = Data5.Close;
               
                myvol = Data5.Vol;
               
                myopenint = Data5.OpenInt;
               
    }


    If(Con6[1] > Major*1.1)

    {

        Major = Con6[1];

        MyOpen = Data6.Open;

        MyHigh = Data6.High;

        MyLow = Data6.Low;

        MyClose = Data6.Close;
               
                myvol = Data6.Vol;
               
                myopenint = Data6.OpenInt;
               
    }


    If(Con7[1] > Major*1.1)

    {

        Major = Con7[1];

        MyOpen = Data7.Open;

        MyHigh = Data7.High;

        MyLow = Data7.Low;

        MyClose = Data7.Close;
               
                myvol = Data7.Vol;
               
                myopenint = Data7.OpenInt;
               
    }


    If(Con8[1] > Major*1.1)

    {

        Major = Con8[1];

        MyOpen = Data8.Open;

        MyHigh = Data8.High;

        MyLow = Data8.Low;

        MyClose = Data8.Close;
               
                myvol = Data8.Vol;
               
                myopenint = Data8.OpenInt;
               
    }


    If(Con9[1] > Major*1.1)

    {

        Major = Con9[1];

        MyOpen = Data9.Open;

        MyHigh = Data9.High;

        MyLow = Data9.Low;

        MyClose = Data9.Close;
               
                myvol = Data9.Vol;
               
                myopenint = Data9.OpenInt;
               
    }


    If(Con10 [1]> Major*1.1)

    {

        Major = Con10[1];

        MyOpen = Data10.Open;

        MyHigh = Data10.High;

        MyLow = Data10.Low;

        MyClose = Data10.Close;
               
                myvol = Data10.Vol;
               
                myopenint = Data10.OpenInt;
               
    }


    If(Con11[1] > Major*1.1)

    {

        Major = Con11[1];

        MyOpen = Data11.Open;

        MyHigh = Data11.High;

        MyLow = Data11.Low;

        MyClose = Data11.Close;
               
                myvol = Data11.Vol;
               
                myopenint = Data11.OpenInt;
               
    }
       
    PlotNumeric("Open",MyOpen);

    PlotNumeric("High",MyHigh);

    PlotNumeric("Low",MyLow);

    PlotNumeric("Close",MyClose);
       
        Commentary("myvol"+Text(myvol));

    Commentary("myopenint"+Text(myopenint));
       

End
//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 用户版本        2012/04/30 07:20
// 版权所有        zyxsir
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
作者: zyxsir    时间: 2012-5-3 07:14:53

我希望能在换合约的时候计算出跳空,并消除跳空。如果不好编译,能否在换合约时在图上作出标记,能知道是在哪一根K线换的合约,请帮助将上面的代码做修改!谢谢!
作者: zyxsir    时间: 2012-5-3 12:12:16

请问管理员在吗?能帮我解决吗?盼望回复!谢谢!
作者: zyxsir    时间: 2012-5-4 05:55:34

怎么没人理,还在休假吗?
作者: jixieshi    时间: 2013-8-30 09:32:42

很有意思,支持




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2