设为首页收藏本站

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

关于连续建仓问题 [复制链接]

Rank: 2

精华
0
UID
5045
积分
67
帖子
13
主题
3
阅读权限
30
注册时间
2009-8-6
最后登录
2019-3-22
跳转到指定楼层
1#
发表于 2010-9-6 10:19:14 |只看该作者 |倒序浏览
在自动交易程序中我是这样写的:
    //多头建仓
    if(Close > upBand)  
    {
       If(CrossOver(high,buyPoint))   
      {
         Buy(Lots,max( buyPoint, Low ));
      }
    }


在交易设置中设置为:
   允许连续建仓,最大连续建仓系数为1次
   同一交易指令不能连续建仓
   最大持续限制:1合约

但是为什么我的交易中同一品种在同一bar上建仓了13次呢?

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2010-9-6 10:39:44 |只看该作者
为了不连续建仓,请在开仓中添加持仓判断
if(marketposition == 0 && 开仓条件)

使用道具 举报

Rank: 2

精华
0
UID
5045
积分
67
帖子
13
主题
3
阅读权限
30
注册时间
2009-8-6
最后登录
2019-3-22
3#
发表于 2010-9-6 11:22:48 |只看该作者
MarketPosition为获得当前持仓状态。
请问管理员有没有获得当前商品的持仓状态函数?
我如果用了if(marketposition == 0 && 开仓条件) ,那别的商品也不能开仓了。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
4#
发表于 2010-9-6 11:30:21 |只看该作者
MarketPosition就是当前商品的持仓状态函数

使用道具 举报

Rank: 2

精华
0
UID
5045
积分
67
帖子
13
主题
3
阅读权限
30
注册时间
2009-8-6
最后登录
2019-3-22
5#
发表于 2010-9-6 11:35:06 |只看该作者
好的,我试试,多谢了。

使用道具 举报

Rank: 2

精华
0
UID
5045
积分
67
帖子
13
主题
3
阅读权限
30
注册时间
2009-8-6
最后登录
2019-3-22
6#
发表于 2010-9-10 09:04:40 |只看该作者
管理员:if(marketposition == 0 && 开仓条件) 似乎不起作用啊,我用了可还是在连续建仓。

使用道具 举报

Rank: 2

精华
0
UID
5045
积分
67
帖子
13
主题
3
阅读权限
30
注册时间
2009-8-6
最后登录
2019-3-22
7#
发表于 2010-9-10 10:09:54 |只看该作者
管理员:我这有一个系统,但是老是出现连续建仓和建仓后信号消失的情况,能帮我修改一下么?
//------------------------------------------------------------------------
// 简称: DB
// 名称: Dynamic Break
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
    Numeric ceilingAmt(60);
    Numeric floorAmt(20);
    Numeric bolBandTrig(2.00);
    Numeric Lots(1);
       
Vars
    Numeric lookBackDays(20);         
    Numeric todayVolatility(0);
    Numeric yesterDayVolatility(0);
    Numeric deltaVolatility(0);
    NumericSeries buyPoint(0);
    NumericSeries sellPoint(0);
    NumericSeries longLiqPoint(0);
    NumericSeries shortLiqPoint(0);
    Numeric upBand(0);
    Numeric dnBand(0);
    Numeric MidLine(0);
    Numeric Band(0);
       
Begin
    todayVolatility = StandardDev(Close,30,1);
    yesterDayVolatility = StandardDev(Close[1],30,1);
    deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;
       
    lookBackDays = lookBackDays * (1 + deltaVolatility);
    lookBackDays = Round(lookBackDays,0);
    lookBackDays = Min(lookBackDays,ceilingAmt);
    lookBackDays = Max(lookBackDays,floorAmt);
       
    MidLine = AverageFC(Close,lookBackDays);
       
    Band = StandardDev(Close,lookBackDays,bolBandTrig);
    upBand = MidLine + bolBandTrig * Band;
    dnBand = MidLine - bolBandTrig * Band;
       
    buyPoint = Highest(High[1],lookBackDays);
    sellPoint = Lowest(Low[1],lookBackDays);
    longLiqPoint = Average(Close[1],lookBackDays);
    shortLiqPoint = Average(Close[1],lookBackDays);

    //多头建仓
    if(Close > upBand && MarketPosition==0)  
    {
       If(CrossOver(high,buyPoint))   
      {
         Buy(Lots,max( buyPoint, Low ));
      }
    }

    //空头建仓
    if(Close < dnBand && MarketPosition==0)
    {
       If(CrossUnder(Low,sellPoint ))
       {
          SellShort(Lots,min( sellPoint , High ));
       }
    }

    //多头平仓
    if(MarketPosition == 1)
    {  
       If(CrossUnder(Low,longLiqPoint ))
       {
          Sell(Lots,min( longLiqPoint , High ));
       }
    }

    //空头平仓
    if(MarketPosition == -1)
    {
       If(CrossOver(high,shortLiqPoint))   
      {
         BuyToCover(Lots,max( shortLiqPoint, Low ));
      }
    }
End

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2010/08/27 22:41
// 版权所有        hhcym
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
8#
发表于 2010-9-10 10:35:24 |只看该作者
  1. Params
  2.     Numeric ceilingAmt(60);
  3.     Numeric floorAmt(20);
  4.     Numeric bolBandTrig(2.00);
  5.     Numeric Lots(1);
  6.       
  7. Vars
  8.     Numeric lookBackDays(20);         
  9.     Numeric todayVolatility(0);
  10.     Numeric yesterDayVolatility(0);
  11.     Numeric deltaVolatility(0);
  12.     NumericSeries buyPoint(0);
  13.     NumericSeries sellPoint(0);
  14.     NumericSeries longLiqPoint(0);
  15.     NumericSeries shortLiqPoint(0);
  16.     Numeric upBand(0);
  17.     Numeric dnBand(0);
  18.     Numeric MidLine(0);
  19.     Numeric Band(0);
  20.       
  21. Begin
  22.     todayVolatility = StandardDev(Close,30,1);
  23.     yesterDayVolatility = StandardDev(Close[1],30,1);
  24.     deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;
  25.       
  26.     lookBackDays = lookBackDays * (1 + deltaVolatility);
  27.     lookBackDays = Round(lookBackDays,0);
  28.     lookBackDays = Min(lookBackDays,ceilingAmt);
  29.     lookBackDays = Max(lookBackDays,floorAmt);
  30.       
  31.     MidLine = AverageFC(Close,lookBackDays);
  32.       
  33.     Band = StandardDev(Close,lookBackDays,bolBandTrig);
  34.     upBand = MidLine + bolBandTrig * Band;
  35.     dnBand = MidLine - bolBandTrig * Band;
  36.       
  37.     buyPoint = Highest(High[1],lookBackDays);
  38.     sellPoint = Lowest(Low[1],lookBackDays);
  39.     longLiqPoint = Average(Close[1],lookBackDays);
  40.     shortLiqPoint = Average(Close[1],lookBackDays);

  41.     //多头建仓
  42.     if(Close[1] > upBand[1] && MarketPosition==0 && CrossOver(high,buyPoint))  
  43.     {
  44.          Buy(Lots,max( buyPoint, Low ));
  45.     }

  46.     //空头建仓
  47.     if(Close[1] < dnBand[1] && MarketPosition==0 && CrossUnder(Low,sellPoint ))
  48.     {
  49.           SellShort(Lots,min( sellPoint , High ));
  50.     }

  51.     //多头平仓
  52.     if(MarketPosition == 1 && CrossUnder(Low,longLiqPoint ))
  53.     {  
  54.           Sell(Lots,min( longLiqPoint , High ));
  55.     }

  56.     //空头平仓
  57.     if(MarketPosition == -1 && CrossOver(high,shortLiqPoint))
  58.     {
  59.          BuyToCover(Lots,max( shortLiqPoint, Low ));
  60.     }
  61. End
复制代码

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
8209
积分
3268
帖子
413
主题
78
阅读权限
80
注册时间
2010-4-6
最后登录
2013-3-18
9#
发表于 2010-9-10 11:14:19 |只看该作者
在自动交易程序中我是这样写的:
    //多头建仓
    if(Close > upBand)  
    {
       If(CrossOver(high,buyPoint))   
      {
         Buy(Lots,max( buyPoint, Low ));
      }
    }


在交易设置中设置 ...
hhcym 发表于 2010-9-6 10:19


版主请注意:这是我有关交易设置和交易指令之间好像混乱干扰的又一例证。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
10#
发表于 2010-9-10 14:01:06 |只看该作者
信号之所以会改变是因为Close和upBand都不是固定条件,所以导致信号消失等问题

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 18:13

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部