设为首页收藏本站

 找回密码
 注册
楼主: 穿堂风
打印 上一主题 下一主题

国外成熟策略R-Breaker分享,提供翻译后的TB源码,日内系统 [复制链接]

Rank: 1

精华
0
UID
49394
积分
34
帖子
21
主题
0
阅读权限
10
注册时间
2011-6-24
最后登录
2021-3-8
1#
发表于 2011-7-8 14:53:31 |显示全部楼层
请问,V4中还有opend这个函数吗,没找到啊

使用道具 举报

Rank: 1

精华
0
UID
49394
积分
34
帖子
21
主题
0
阅读权限
10
注册时间
2011-6-24
最后登录
2021-3-8
2#
发表于 2011-7-8 15:58:38 |显示全部楼层
if(Date != Date[1])
{....
startnow=startnow+1;
.....}
.....
if(Time*100>=notbef and Time*100<notaft and  startnow>=2  and rfilter)
我的问题是,对于日内交易的话,满足Date != Date[1]条件的不就是当天开盘那根K线吗,那么startnow=startnow+1只能执行一次。后面startnow>=2的条件怎么能满足呢??求解答!!

使用道具 举报

Rank: 1

精华
0
UID
49394
积分
34
帖子
21
主题
0
阅读权限
10
注册时间
2011-6-24
最后登录
2021-3-8
3#
发表于 2011-7-10 22:02:28 |显示全部楼层
谢谢穿堂风大侠,后来我想了想是可以的。一个界面不一定就只显示一天的k线。

使用道具 举报

Rank: 1

精华
0
UID
49394
积分
34
帖子
21
主题
0
阅读权限
10
注册时间
2011-6-24
最后登录
2021-3-8
4#
发表于 2011-7-13 10:28:53 |显示全部楼层
问一个细节性的问题,我想该模型就是利用前天的最高、最低、和收盘来确定今天交易的两个上下限。为啥上下限要通过程序中的那种方式确定呢,有什么统计学优势没有。还有穿堂风大虾,这个程序的参数设定原来是用在哪个品种上的呀?用股指5分钟测了一下,效果不好

使用道具 举报

Rank: 1

精华
0
UID
49394
积分
34
帖子
21
主题
0
阅读权限
10
注册时间
2011-6-24
最后登录
2021-3-8
5#
发表于 2011-7-15 16:06:08 |显示全部楼层
根据R_breaker模型做了些修改,但运行时开仓与我的意思不同,比如很多时候都是在刚开盘就建仓,但我的意思是想当其价格突破前日波动幅度后建仓。不知道程序哪里出了错误。请各路大虾特别是穿堂风帮忙诊断一下。程序如下:
Params
        Numeric PercentOfRange1(0.5);
                Numeric PercentOfRange2(0.4);//突破参数N
        Numeric ExitOnCloseMins(14.45);//平仓时间
        Numeric MinRange(0.004);//最小Range - 0.2%
        Numeric LastTradeMins(14.00);//最后交易时间
        Numeric BeginTradeMins(9.00);
        Numeric Lots(1);
               Numeric reverse(0.01);
               
               
Vars
        NumericSeries DayOpen;
                NumericSeries hightoday;
                NumericSeries lowtoday;
        NumericSeries preDayRange;
                   Numeric MaxProfit;
                Numeric UpperBand1;
                Numeric UpperBand2;
        Numeric LowerBand1;
                Numeric LowerBand2;
        Numeric MyPrice;
             Numeric i_reverse;
               
               
Begin
        i_reverse=reverse*OpenD(0)/100;
                       
               
        If(Date != Date[1])      
                {
                        //startnow=startnow+1;
                                DayOpen = OpenD(0);
                preDayRange = HighD(1) - LowD(1);
                //如果昨日振幅过小,则取设置的最小振幅
                preDayRange = max(preDayRange, DayOpen* MinRange);
                                UpperBand1= DayOpen + preDayRange* PercentOfRange1;
                                UpperBand2= DayOpen + preDayRange* PercentOfRange2;
                            LowerBand1 = Dayopen - preDayRange * PercentOfRange1;
                                LowerBand2 = Dayopen - preDayRange * PercentOfRange2;
                                hightoday=High;
                                lowtoday=low;
        }
                Else
       
        {
        DayOpen=DayOpen[1];
        preDayRange=preDayRange[1];
        If(High>hightoday)
        {
        hightoday=High;
        }
        If(Low<lowtoday)
        {
        lowtoday=low;
        }
               
                        }      
      
        //未开仓时,判断是否需要开仓
        if(MarketPosition == 0){
                //多头开仓
                If(High >= UpperBand1 && Time < LastTradeMins / 100)
                                {
                                         MyPrice= max(UpperBand1 , open);
                        Buy(Lots,MyPrice);
                                       
                                                Return;
                                               
                    
                }
               
                //空头开仓
                If(Low <= LowerBand1 && Time < LastTradeMins/100)
                                {
                        MyPrice=min(LowerBand1,open);
                                                Sellshort(Lots, MyPrice);
                                       
                                                Return;
                     
                                       
                }
                If(hightoday>=UpperBand2 And hightoday<UpperBand1 )
                {
                if(low<=Dayopen+preDayRange* PercentOfRange2*0.618)
                {
                SellShort(1,Dayopen+(UpperBand2-Dayopen)*0.618);
                Return;
                }
                }
                If(lowtoday<=LowerBand2 And LowerBand1<lowtoday )
                {
                if(High>=Dayopen-(Dayopen-LowerBand2)*0.618)
                {
                Buy(1,Dayopen-(Dayopen-LowerBand2)*0.618);
                Return;
                }
                }
                                }
        

        //多头止损
        If(MarketPosition == 1){
              If(EntryPrice-low>=preDayRange*0.618)
                          {                                   
                        Sell(Lots,Min(EntryPrice-preDayRange,low));
                                                Return;
                }
        }

        //空头止损
        If(MarketPosition == -1){               
                If(High-EntryPrice>=preDayRange){
                     
                        BuyToCover(Lots, Max(EntryPrice+preDayRange,High));
                                                Return;
                }
        }
               
               
               
        //收盘平仓
        If(Time >= ExitOnCloseMins / 100){
                Sell(Lots, Close);
                BuyToCover(Lots,Close);
        }
               

     
End

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 14:49

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部