设为首页收藏本站

 找回密码
 注册
查看: 1767|回复: 3
打印 上一主题 下一主题

分享个关于股指成交量突破的策略 [复制链接]

Rank: 1

精华
0
UID
208306
积分
37
帖子
7
主题
5
阅读权限
10
注册时间
2015-5-4
最后登录
2018-8-21
跳转到指定楼层
1#
发表于 2015-8-10 13:53:37 |只看该作者 |倒序浏览
学习TB多月,真正意义上写出的第一个策略;跟大家分享下
Params
        numeric profit(30);
        numeric stop(15);
Vars
        NumericSeries BST;
        numericseries dayavg;
                NumericSeries SumV1;
                Numericseries SumV2;
                Numericseries SUM;
                NumericSeries Minus1;
                NumericSeries minus2;
                NumericSeries profitprice;
                NumericSeries stopprice;
                Numericseries myentryprice;
                NumericSeries HighestAfterEntry;
                NumericSeries LowestAfterEntry;
                NumericSeries myexitprice;
                numericseries minpoint;
                NumericSeries ll;
                NumericSeries hh;
                NumericSeries aa;
                //numeric qjbl(0);  
                Bool t1;
                bool t2;
Begin
//当日平均价格  
                minpoint=minmove*PriceScale;
                Commentary("minpoint="+Text(minpoint));
                BST=BarsSinceToday;
                if(BST==0)
                {       
                        sumv1=0;  
                        sumv2=0;
                        dayavg=close[1];
                        //mp=0;
                        SetGlobalVar(0,0);
                }
                else{
                        dayavg=(dayavg*BST+close[1])/(BST+1);
                        //mp=GetGlobalVar(0);
                        }
                Commentary("dayavg="+Text(dayavg));
                Commentary("BST="+Text(BST));
                //Commentary("close[1]="+Text(close[1]));
    Plotnumeric("dayavg",dayavg);
        //成交量计算
        t1=time>=0.091500 and time<=0.095900;
        t2=time>=0.130000 and time<=0.134400;
        if(t1)
        {
                if(close[1]>dayavg[1])
                        {
                                SumV1=SumV1+Vol[1];
                        }
                else  
                        {
                                SumV2=SumV2+Vol[1];
                        }
        }
        if(t2 and MarketPosition==0)
        {       
                if(time==0.130000)
                        {       
                                aa=BST;
                                sumv1=0;
                                sumv2=0;
                                dayavg=close[1];
                                //qjbl=0;
                                //SetGlobalVar(0,0);
                        }       
                else{
                                dayavg=(dayavg*(bst-aa)+close[1])/(bst-aa+1);
                        }
               
                /*bb=BST-aa+1;
                dayavg=Summation(close,bb)/bb;*/
                if(close[1]>dayavg[1])
                {
                        SumV1=SumV1+Vol[1];
                }
                else
                {
                        SumV2=SumV2+Vol[1];
                }
        }
               
        Commentary("sumv1="+Text(sumv1));
        Commentary("sumv2="+Text(sumv2));
        ////
        //入场
        Sum=SumV1+SumV2;
        Minus1=SumV1-SumV2;
        minus2=sumv2-sumv1;
        if(time==0.100000 or time==0.134500)
                {
                        if(Minus1>0.5*Sum and MarketPosition==0)   //入场(价格??????????)
                        {
                                myentryprice=open;
                                if(BarStatus==2) Buy(0,myentryprice+minpoint*20);
                                if(BarStatus!=2) Buy(0,myentryprice+minpoint*3);
                               
                        }
                        else if(Minus2>0.5*Sum and MarketPosition==0)
                        {       
                                myentryprice=open;
                                if(BarStatus==2) SellShort(0,myentryprice-minpoint*20);
                                if(BarStatus!=2) SellShort(0,myentryprice-minpoint*3);
                        }
                }
        //离场       
        if(BarsSinceEntry==0)
                {
                        HighestAfterEntry=High;
                        lowestafterentry=Low;
                        /*if(MarketPosition<>0)
                                {
                                        HighestAfterEntry=Max(HighestAfterEntry,AvgEntryPrice);
                                        LowestAfterEntry=Min(LowestAfterEntry,AvgEntryPrice);
                                }*/
                }
        else{
                        HighestAfterEntry=Max(HighestAfterEntry,HIGH);
                        LowestAfterEntry=Min(LowestAfterEntry,low);
                }
        Commentary("BarsSinceEntry="+Text(BarsSinceEntry));
        Commentary("myentryprice="+Text(myentryprice));
        Commentary("HighestAfterEntry="+Text(HighestAfterEntry));
        Commentary("LowestAfterEntry="+Text(LowestAfterEntry));
        if(marketposition==1/*and BarsSinceEntry>0*/)        //多单 && BarsSinceEntry>0   防止单根K线开平仓
               
                {
                profitprice=HighestAfterEntry-profit;
                stopprice=myentryprice-stop;
                ll=Max(profitprice,stopprice);
                        if(low<ll)
                                {
                                        myexitprice=Min(open,ll);
                                        if(BarStatus==2) Sell(0,myentryprice-minpoint*20);
                                        if(BarStatus!=2) Sell(0,myentryprice-minpoint*3);
                                }
                //qjbl=1;
                //SetGlobalVar(0,1);
                }
        if(MarketPosition==-1  /*And BarsSinceEntry>0*/)     //空单 && BarsSinceEntry>0   防止单根K线开平仓
               
                {
                profitprice=LowestAfterEntry+profit;
                stopprice=myentryprice+stop;
                hh=Min(profitprice,stopprice);
                        if(high>hh )
                                {
                                        myexitprice=Max(open,hh);
                                        if(BarStatus==2) BuyToCover(0,myentryprice+minpoint*20);
                                        if(BarStatus!=2) BuyToCover(0,myentryprice+minpoint*3);
                                }       
                //qjbl=1;                       
                //SetGlobalVar(0,qjbl);
                }  
                //当日平仓   
        if(MarketPosition!=0 and time>=0.1510)
                {
                        Sell(0,open);
                        BuyToCover(0,open);
                        //qjbl=1;
                        //SetGlobalVar(0,qjbl);
                }
                //PlotNumeric("profitprice",profitprice);  
                //PlotNumeric("stopprice",stopprice);
End

Rank: 1

精华
0
UID
199206
积分
16
帖子
12
主题
3
阅读权限
10
注册时间
2014-12-15
最后登录
2017-8-23
2#
发表于 2015-8-18 08:26:58 |只看该作者
回撤还不错,但是胜率实在是低,还得改进

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
208212
积分
2006
帖子
103
主题
24
阅读权限
70
注册时间
2015-5-2
最后登录
2019-6-18
3#
发表于 2015-8-18 09:21:03 |只看该作者
编译保存 显示 错误提示:参数声明的数据类型错误 错误号0108  NumericRef oParClose;

使用道具 举报

Rank: 1

精华
0
UID
164447
积分
13
帖子
9
主题
2
阅读权限
10
注册时间
2012-6-4
最后登录
2015-8-24
4#
发表于 2015-8-20 08:29:16 |只看该作者
谢谢分享啦,研究下看看~

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-19 01:52

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部