设为首页收藏本站

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

1 bar多信号大bug!!! [复制链接]

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
跳转到指定楼层
1#
发表于 2013-3-11 13:16:41 |只看该作者 |倒序浏览


Params

        Numeric bpoint(2590);
        Numeric spoint(2590);
        Numeric mytime(13.07);
       
Vars

        Numeric minpoint;

Begin

        minpoint = MinMove*PriceScale;
       
        If(MarketPosition==-1 && time==mytime/100 && high>=bpoint && date==CurrentDate)
        {
                BuyToCover(4,close+10*minpoint);
        }

        If(time==0.0950 && low<=spoint && date==CurrentDate)
        {
                SellShort(2,spoint-10*minpoint);
        }
       
        If(time==0.0955 && low<=spoint && date==CurrentDate)
        {
                SellShort(3,spoint-10*minpoint);
        }
       
        If(time==mytime/100 && low<=spoint && date==CurrentDate)
        {
                SellShort(5,close-10*minpoint);
        }
       
End
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
for dream,for freedom.

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
2#
发表于 2013-3-11 13:17:50 |只看该作者
按照程序high>2590时,应该平5手,结果重复了开仓4手的信号!!

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
3#
发表于 2013-3-11 13:20:47 |只看该作者
我估计和TB避免1根bar信号闪烁的机制有关。
这根bar正常的信号应该是,先空4手,再平5手。
但是目前的情况是,空4手,再空4手。

我猜想是因为,当平仓信号出现的时候,TB误认为这根bar的第一次发单是平5手,所以导致了错误。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
4#
发表于 2013-3-11 13:21:37 |只看该作者
所以虽然图表标识的信号是正确的,但是实际发单却错了!!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
5#
发表于 2013-3-11 13:28:36 |只看该作者
sensegray 发表于 2013-3-11 13:20
我估计和TB避免1根bar信号闪烁的机制有关。
这根bar正常的信号应该是,先空4手,再平5手。
但是目前的情况 ...

按公式条件所示的应该,历史信号里出现平4手,开5手,这些条件都是满足的,自然有这两个信号的标识也是合理的。
也许你只是为了测试而写的这样的代码。但是,这样的写法,这样的条件,本身就是矛盾冲突的。而这种矛盾是程序化交易里本就应该避免的。。。在实时bar中,没法知道是先符合了开还是先符合了平的条件 ?实时行情如何走,指令怎么发的,跟过后看历史K线是不一定相符合的。也没法判断的。
所以,建议修改你的公式条件。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
6#
发表于 2013-3-11 13:34:17 |只看该作者
小米 发表于 2013-3-11 13:28
按公式条件所示的应该,历史信号里出现平4手,开5手,这些条件都是满足的,自然有这两个信号的标识也是合 ...

我今天就是一个实盘的程序应该平空的,结果开空了,导致亏了很多。。。
这个代码是为了测试才这么写的。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
7#
发表于 2013-3-11 13:35:13 |只看该作者
小米 发表于 2013-3-11 13:28
按公式条件所示的应该,历史信号里出现平4手,开5手,这些条件都是满足的,自然有这两个信号的标识也是合 ...

信号标识是没有错的,但是实际发单不对,请看以下我的回复。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2013-3-11 13:58:29 |只看该作者
sensegray 发表于 2013-3-11 13:34
我今天就是一个实盘的程序应该平空的,结果开空了,导致亏了很多。。。
这个代码是为了测试才这么写的。 ...

前面有提到,你这样的代码,本有就是有问题隐患的。根本 不建议这样使用。
以这样的矛盾条件中,历史没法知道实时行情是先向上还是先向下波的,没法知道是先满足平还是先满足再开的条件的。
另外,也不清楚你的操作过程。在这一分钟,中间应该是对图表做过某些操作从而导致同一信号发了两次单 吧?
因为TB是有限制同一bar上的同一个信号只发一次单 的。这里5手开仓发了两次,要考虑中间是否有做过什么动作。比如修改参数,比如刷新数据,然后再重启自动交易等 。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
9#
发表于 2013-3-11 14:07:24 |只看该作者
小米 发表于 2013-3-11 13:58
前面有提到,你这样的代码,本有就是有问题隐患的。根本 不建议这样使用。
以这样的矛盾条件中,历史没法 ...

这里开仓两次,就是bug啊。。。
这个代码这样写就是为了测试这个bug。
你不相信可以测一下。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5696
积分
1213
帖子
256
主题
111
阅读权限
60
注册时间
2009-10-18
最后登录
2023-6-10
10#
发表于 2013-3-11 14:08:13 |只看该作者
小米 发表于 2013-3-11 13:58
前面有提到,你这样的代码,本有就是有问题隐患的。根本 不建议这样使用。
以这样的矛盾条件中,历史没法 ...

应该是一开一平,结果变成了一开再开。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-24 06:45

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部