设为首页收藏本站

 找回密码
 注册
楼主: oliverzrl

一个稳定盈利的日内交易系统代码.大家一起来完善. [复制链接]

Rank: 5Rank: 5

精华
0
UID
7099
积分
614
帖子
120
主题
22
阅读权限
60
注册时间
2010-3-3
最后登录
2019-3-24
发表于 2010-7-27 15:53:45 |显示全部楼层
1# oliverzrl
我学习tb时间不长,不知道下面的代码是否与楼主的观点吻合。经测试确实可以实现盈利,楼主的思路不错。



//------------------------------------------------------------------------
// 简称: TEST023
// 名称: 突破前日震荡系统
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params

Numeric Kc(0.8);
Numeric MinM(3);
Numeric BuyLots(1);
Numeric SellLots(1);
/* Numeric M(65); */

Vars
NumericSeries ATRK;
NumericSeries B1;
NumericSeries S1;
Bool Condition1;
Bool Condition2;
Numeric MinPoint;
NumericSeries PriceD;
NumericSeries PriceK;
Begin
//----------------------------------------------------------------------------------------------------------------
If ( Q_Last == 0 Or ( Date != Date[1] And High == Low )) Return;        //如果未开盘,则直接返回
MinPoint = MinMove*PriceScale*MinM;  //设置最小变动单位,尽可能确保第一时间成交。
If ((Time>=0.1459000 And Time<=0.150000) Or (High == Q_UpperLimit Or Low==Q_LowerLimit)) //遇涨跌停平仓离场。目前未考虑反复封涨停情况。
{
  If(MarketPosition==1)
  {
   Sell(BuyLots,Open-MinPoint);
  }Else If(MarketPosition==-1)
  {
   BuyToCover(SellLots,Open+MinPoint);
  }
  Return;
}   
//----------------------------------------------------------------------------------------------------------------
ATRK=Abs(HighD(1)-LowD(1))*Kc;
B1=OpenD(0)+ATRK;
S1=OpenD(0)-ATRK;   
Condition1=CrossOverHor(High,B1)   /* And CloseD(1)>XAverage(CloseD(1),M) */  ;
Condition2=CrossUnderHor(Low,S1)   /* And CloseD(1)<XAverage(CloseD(1),M) */  ;
//---------------------------------------------------------------------------------------------------------------

If(MarketPosition==0)
{
  If (Condition1)
  {
   PriceD=B1+MinPoint;  
   Buy(BuyLots,PriceD);
   Return;
  }
  If(Condition2)
  {
   PriceK=S1-MinPoint;   
   SellShort(SellLots,PriceK);
   Return;   
  }
}

//-------------------------------------------------------------------------------------------------------
If(MarketPosition==1)
{
  If(Condition2)
  {
   PriceK=S1-MinPoint;
   Sell(BuyLots,PriceK);
   Return;
  }
}
//------------------------------------------------------------------------------------------------------------
If(MarketPosition==-1)
{
  If(Condition1)
  {
   PriceD=B1+MinPoint;
   BuyToCover(SellLots,PriceD);
   Return;
  }
}
//------------------------------------------------------------------------------------------------------------


End

//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2010/07/26 10:14
// 版权所有 moneymaker
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
//   每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 1

精华
0
UID
14959
积分
11
帖子
1
主题
0
阅读权限
10
注册时间
2010-7-28
最后登录
2019-3-30
发表于 2010-7-28 16:03:32 |显示全部楼层
看看是啥报告

使用道具 举报

Rank: 4

精华
0
UID
11941
积分
388
帖子
98
主题
16
阅读权限
50
注册时间
2010-6-10
最后登录
2016-6-12
发表于 2010-7-28 17:04:51 |显示全部楼层
大周期趋势的判断标准是什么?准确率有多少?

如果能准确预测大周期趋势,长线重仓是最赚钱的。可是谁敢?

这不是优化,而是带入了一个新的问题。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1041
积分
1642
帖子
448
主题
133
阅读权限
70
注册时间
2008-1-9
最后登录
2016-12-26
发表于 2010-7-28 19:17:07 |显示全部楼层
经过我测试 过多条件 就不符合KISS原则 绩效会处于一个边际状态

使用道具 举报

Rank: 4

精华
0
UID
11216
积分
254
帖子
35
主题
6
阅读权限
50
注册时间
2010-5-30
最后登录
2010-11-18
发表于 2010-7-28 22:18:12 |显示全部楼层
支持楼主的无私分享精神。等我有了 我也拿来分享。

使用道具 举报

Rank: 4

精华
0
UID
11941
积分
388
帖子
98
主题
16
阅读权限
50
注册时间
2010-6-10
最后登录
2016-6-12
发表于 2010-7-29 11:29:32 |显示全部楼层
我做了一个清爽版,测试结果和原版完全相同。
谢谢LZ无私的奉献。
//------------------------------------------------------------------------
// 简称: RB
// 名称: RangeBreak
// 类别: 交易指令
// 类型: 其他
// 输出:
// 交易思路: 以昨日震幅为基础,今日开盘价+N*昨日震幅等于上轨 今日开盘价-昨日震幅*N等于下轨,突破上轨做多突破下轨做空。反之平仓,14点55分平掉所有仓位。N=0.8
// 已完成优化:
// 1。限制交易时间,最后开仓时间在下午两点以前(根据观察接近收盘的突破一般是无效的)
// 2。限制前一日的最小震幅(根据观察昨日震幅太小的话会出现很多无效信号)
//------------------------------------------------------------------------
Params
        Numeric PercentOfRange(0.8);//突破参数N
        Numeric ExitOnCloseMins(14.55);//平仓时间
        Numeric MinRange(0.002);//最小Range - 0.2%
        Numeric LastTradeMins(14.00);//最后交易时间
        Numeric BeginTradeMins(9.00);
        Numeric Lots(1);
        Numeric Stoplossset(0.01);//止损-1%
Vars
        NumericSeries DayOpen;
        NumericSeries preDayRange;
        Numeric UpperBand;
        Numeric LowerBand;
        Numeric MyPrice;
        Numeric StopLine;
Begin
        DayOpen = OpenD(0);
        preDayRange = HighD(1) - LowD(1);
        UpperBand = DayOpen + preDayRange * PercentOfRange;
        LowerBand = Dayopen - preDayRange * PercentOfRange;          

        If(Date != Date[1])        {
                DayOpen = Open;
                preDayRange = HighD(1) - LowD(1);
                //如果昨日振幅过小,则取设置的最小振幅
                preDayRange = max(preDayRange, Open * MinRange);
        }Else{
                DayOpen = DayOpen[1];
                preDayRange = preDayRange[1];
        }       
       
        //未开仓时,判断是否需要开仓
        if(MarketPosition == 0){
                //多头开仓
                If(High >= UpperBand && Time < LastTradeMins / 100){
                        Buy(Lots, max(upperband, open));
                        Return;
                }
               
                //空头开仓
                If(Low <= LowerBand && Time < LastTradeMins/100){
                        Sellshort(Lots, min(lowerBand,open));
                        Return;
                }
        }

        //多头止损
        If(MarketPosition == 1){
                StopLine = UpperBand - DayOpen * StopLossSet;
                If(Low <= StopLine){
                        //对吗???
                        BuyToCover(Lots, Min(StopLine, Open));
                }
        }

        /*//空头止损
        If(MarketPosition == -1){
                StopLine = LowerBand + DayOpen * StopLossSet;
                If(High >= StopLine){
                        //对吗???
                        Sell(Lots, Max(StopLine, Open));
                }
        }*/
       
        //收盘平仓
        If(Time >= ExitOnCloseMins / 100){
                Sell(Lots, Open);
                BuyToCover(Lots, Open);
        }

        SetExitOncLOSE;
End

   


//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2010/07/11 16:44
// 版权所有        oliverzrl 赵闰龙 qq771841107
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 4

精华
0
UID
11941
积分
388
帖子
98
主题
16
阅读权限
50
注册时间
2010-6-10
最后登录
2016-6-12
发表于 2010-7-29 11:56:59 |显示全部楼层
我觉得用Open做入市价格判断,不太合理,很可能在实盘中无法成交。

如果用Close会合理一些。

但根据我的测试,如果直接在上下轨挂单,会比用Close的效果更好。

使用道具 举报

Rank: 4

精华
0
UID
11941
积分
388
帖子
98
主题
16
阅读权限
50
注册时间
2010-6-10
最后登录
2016-6-12
发表于 2010-7-29 15:02:39 |显示全部楼层
我觉得用Open做入市价格判断,不太合理,很可能在实盘中无法成交。

如果用Close会合理一些。

但根据我的测试,如果直接在上下轨挂单,会比用Close的效果更好。 ...
rypan 发表于 2010-7-29 11:56


我错了

在上下轨挂单是无法实现的。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
4749
积分
234
帖子
26
主题
2
阅读权限
40
注册时间
2009-6-30
最后登录
2019-3-24
发表于 2010-7-30 12:02:58 |显示全部楼层
谢谢诶试试看

使用道具 举报

Rank: 4

精华
0
UID
11941
积分
388
帖子
98
主题
16
阅读权限
50
注册时间
2010-6-10
最后登录
2016-6-12
发表于 2010-7-30 16:19:53 |显示全部楼层
这个模型对ETF的测试同样有效,不过年化收益率低很多。

说明这个模型的确是对付中国股票猴市的好工具。

使用道具 举报

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

bottom

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

GMT+8, 2024-3-29 18:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部