设为首页收藏本站

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

这段程序今天让我买入1手变成了5手,问题何在? [复制链接]

Rank: 4

精华
0
UID
3776
积分
442
帖子
51
主题
5
阅读权限
50
注册时间
2009-3-10
最后登录
2014-8-13
跳转到指定楼层
1#
发表于 2009-3-11 21:07:19 |只看该作者 |倒序浏览
avgline=XAverage(Close,20);

    if(MarketPosition==0  && Time>0.0912 && Time <0.1435)
    {
            if(CrossOver(High,avgline[1]))
            {                        
                   Buy(1,avgline[1]);    // 多头建仓
             }

            if(CrossUnder(Low,avgline[1]))
            {                        
                  SellShort(1,avgline[1]);  // 空头建仓
            }
    }

今天5分钟线上操作,接连委托了5次,但只有一个信号,自然成交了5手,真是要疯了

[ 本帖最后由 滴水成川 于 2009-3-11 21:12 编辑 ]

Rank: 5Rank: 5

精华
0
UID
1384
积分
1102
帖子
212
主题
40
阅读权限
60
注册时间
2008-3-28
最后登录
2019-4-26
2#
发表于 2009-3-12 06:24:51 |只看该作者
同一个bar开仓就会遇到这个问题,每个tick运算一次,这个bar还没走完就运行了N次了
延迟一个bar即可
Buy(1,avgline[1],true);

使用道具 举报

Rank: 2

精华
0
UID
2259
积分
91
帖子
9
主题
1
阅读权限
30
注册时间
2008-9-2
最后登录
2009-7-31
3#
发表于 2009-3-12 08:55:29 |只看该作者
等这个bar走完,价格突破XAverage(Close,20)的压制后,会有不小的涨幅,买进后常常有回调的痛苦。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2445
积分
224
帖子
10
主题
0
阅读权限
40
注册时间
2008-9-24
最后登录
2010-11-24
4#
发表于 2009-3-12 10:51:05 |只看该作者
1。做一个变量。。。。。控制开仓总数吧!

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
2914
积分
949
帖子
259
主题
84
阅读权限
60
注册时间
2008-11-30
最后登录
2010-8-6
5#
发表于 2009-3-12 19:19:04 |只看该作者
原帖由 bigbear2046 于 2009-3-12 06:24 发表
同一个bar开仓就会遇到这个问题,每个tick运算一次,这个bar还没走完就运行了N次了
延迟一个bar即可
Buy(1,avgline[1],true);

延迟一个BAR?你太害人了,超低级!

楼主造成开5次仓的原因应该是这样:当一个TICK来了触发程序发出委托,但是并未马上成交,因此条件继续满足,第二个TICK,第三个TICK接踵而来,均再次发委托,所以出现建了多个仓的情况。

解决办法,用全局变量控制只发一次。

AA=GetGlobalVar(40);
if ( AA==0 && 其他条件 )
{
   你的程序段;
   AA=1;
   SetGlobalVar(40,AA);
}

[ 本帖最后由 天行健 于 2009-3-12 19:21 编辑 ]

使用道具 举报

Rank: 4

精华
0
UID
3776
积分
442
帖子
51
主题
5
阅读权限
50
注册时间
2009-3-10
最后登录
2014-8-13
6#
发表于 2009-3-12 19:42:53 |只看该作者
我有些怀疑MarketPosition,我觉得MarketPosition与是否成交没关系,但发生委托应该记住,为什么会忘了?

使用道具 举报

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
7#
发表于 2009-3-12 19:55:42 |只看该作者
实在不行用全局变量解决吧。。。
SetGlobalVar();
GetGlobalVar();
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

使用道具 举报

Rank: 4

精华
0
UID
3776
积分
442
帖子
51
主题
5
阅读权限
50
注册时间
2009-3-10
最后登录
2014-8-13
8#
发表于 2009-3-13 09:31:35 |只看该作者
今天再次出现一手变9手。
经过观察,我发现了问题:当High或Low达到开仓条件时,当前Bar的High(或Low)会退回去,从而导致信号消失,然后又出来,又退回去,如此,反复开仓。

这可是TB重大的Bug!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2009-3-13 09:40:17 |只看该作者
您用的是N分钟的补丁?

使用道具 举报

Rank: 4

精华
0
UID
3776
积分
442
帖子
51
主题
5
阅读权限
50
注册时间
2009-3-10
最后登录
2014-8-13
10#
发表于 2009-3-13 09:43:47 |只看该作者
补丁删掉了,然后修复安装了

使用道具 举报

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

bottom

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

GMT+8, 2024-5-5 16:36

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部