系统交易论坛 - 开拓者期货自动交易平台's Archiver

玩转21点 发表于 2010-3-26 13:00

版主好 能帮我修改吗、

Params
        Numeric emalength(20);     //EMA的20周期
        Numeric FastLength(12);    //MACD快线周期
        Numeric SlowLength(26);    //MACD慢线周期
        Numeric MACDLength(9);     //MACD计算周期
        Numeric mylots(2);         //下单手数
        Numeric nnpoints(40);      //ema上开仓点
        Numeric stpoints(40);      //EMA下止损点
        Numeric prpoints(150);      //EMA上盈点减仓点
        Numeric Kepoints(0);      //减仓后止盈点
        Numeric cupoints(120);      //开仓价60点止损
Vars
        NumericSeries myema;
        NumericSeries MACDValue;
        NumericSeries AvgMACD;
        NumericSeries MACDDiff;
        Numeric myprlots;
        NumericSeries myflag;
        NumericSeries aa;
        NumericSeries az;
        NumericSeries bb;
        NumericSeries bz;
        Numeric cc;
        Numeric cz;
        NumericSeries en;
        NumericSeries ez;
        NumericSeries mycross;
        Numeric i;
        Bool enl;
        Bool ens;
Begin
        if(BarStatus==0)
        {
                myflag=0;
        }Else
        {
                myflag = myflag[1];
        }
        if(time>0.1450 && MarketPosition!=0)    //14:50 平仓
        {
                BuyToCover;
                sell;
                Commentary("收盘平仓");
                myflag =0;
        }
       
        myema = XAverage(close[1],emalength);     //EMA值
        MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
        AvgMACD = XAverage(MACDValue,MACDLength);
        MACDDiff = MACDValue[1] - AvgMACD[1];          //MACD值
        en = myema[1] + 20;
        ez = myema[1] - 20;
        aa = myema[1] + stpoints;          //空头止损价位
        az = myema[1] - stpoints;          //多头止损价位
        bb = EntryPrice + Kepoints;    //多头盈利回落价位
        bz = entryprice - Kepoints;    //空头盈利回落价位
        cc = entryprice + prpoints;    //多头盈利减仓价位
        cz = EntryPrice - prpoints;    //空头盈利减仓价位
       
        enl = CrossOver(high,en);
        ens = CrossUnder(low,ez);
        if( CrossOver(high,en))
        {
                mycross = 1;
        }Else if(CrossUnder(low,ez))
        {       
                mycross = -1;
        }Else
        {
                mycross =mycross[1];
        }
        if(MarketPosition==0 && time > 0.0910 && time<0.1450)     //开仓时间以及仓位条件限制
        {
                for i = 1 to 5;
                {
                        if(enl && MACDDiff>0 && MACDDiff[i]<=0 && high>close[1])  //开多条件
                        {
                                buy(mylots,en+MinMove*PriceScale);                                 //开多
                                Commentary("条件1开多");
                        }else
                        if(ens && MACDDiff<0 && MACDDiff[i]>=0 && low<close[1])   //开空条件
                        {
                                SellShort(mylots,ez-MinMove*PriceScale);              //开空
                                Commentary("条件1开空");
                        }Else
                        if(mycross==1 && CrossOverHor(MACDDiff,0)) //开多条件
                        {
                                buy(mylots,en+MinMove*PriceScale);                                 //开多
                                Commentary("条件2开多");
                        }else
                        if(mycross ==-1 && CrossUnderHor(MACDDiff,0))   //开空条件
                        {
                                SellShort(mylots,ez-MinMove*PriceScale);              //开空
                                Commentary("条件2开空");
                        }
                }
        }
        if(MarketPosition==1 && BarsSinceEntry>=1)     //平多条件下班
        {
                if(CrossUnder(low,az))           //EMA下止损
                {
                        sell(0,az+MinMove*PriceScale);
                        myflag=0;
                        Commentary("止损");
                }Else
                if(high>=cc && myflag==0)          //盈利后减仓
                {
                        myprlots = IntPart(mylots/2);
                        sell(myprlots,cc+MinMove*PriceScale);
                        Commentary("止盈");
                        myflag =1;
                }Else
                if(myflag ==1 && crossunder(low,bb))    //减仓保本平
                {
                        sell(0,bb+MinMove*PriceScale);
                        Commentary("保利");
                        myflag=0;
                }else
                if(CrossUnder(low,EntryPrice-120))      //开仓60个点止损
                {
                        sell(0,EntryPrice-120);
                        Commentary("60点止损");
                        myflag = 0;
                }
        }Else
        if(MarketPosition==-1 && BarsSinceEntry>=1)    //平多条件
        {
               
                if(CrossOver(high,aa) )              //EMA上止损
                {
                        BuyToCover(0,aa-MinMove*PriceScale);
                        myflag =0;
                        Commentary("止损");
                }else
                if(low<cz && myflag ==0)               //盈利后减仓
                {
                        myprlots = intpart(mylots/2);
                        BuyToCover(myprlots,cz-MinMove*PriceScale);
                        Commentary("止盈");
                        myflag =1;
                }Else
                if(myflag == 1 && CrossOver(high,bz))       //减仓保本平
                {
                        BuyToCover(0,bz-MinMove*PriceScale);
                        Commentary("保利");
                        myflag =0;
                }Else
                if(CrossOver(high,entryprice+120))     //开仓60个点止损
                {
                        BuyToCover(0,EntryPrice+120);
                        Commentary("60点止损");
                        myflag = 0;
                }               
        }
        Commentary("myflag="+text(myflag));
End
此公式在3分钟使用  能帮我加入开仓时调用30分钟周期上的8ma,价格在8ma之上只开多,价格在8ma之下开空

玩转21点 发表于 2010-3-26 13:11

此公式在3分钟使用  能帮我加入开仓时调用30分钟周期上的8ma,价格在8ma之上只开多,价格在8ma之下开空

lh948 发表于 2010-3-26 14:04

[url=http://www.tradeblazer.net/forum/thread-2785-1-1.html]http://www.tradeblazer.net/forum/thread-2785-1-1.html[/url]
参照最后一种方法比较容易。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.