设为首页收藏本站

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

使用TB旗舰版,Sell和BuyToCover无法平仓? [复制链接]

Rank: 1

精华
0
UID
248337
积分
3
帖子
2
主题
1
阅读权限
10
注册时间
2017-3-8
最后登录
2017-3-17
跳转到指定楼层
1#
发表于 2017-3-16 17:47:50 |只看该作者 |倒序浏览
本帖最后由 hsworkshop 于 2017-3-16 17:55 编辑

刚刚接触TB,从API里面看只有4个交易函数,Buy和SellShort没有问题,Sell和BuyToCover确始终没有办法执行。
环境说明:
系统:windows 10 旗舰版。
软件:交易开拓者旗舰版5.3.3.2
账户类型:模拟账号
测试过程:
If(Close >= 17650){
        Buy(1,Q_BidPrice());
}
If(Close <= 17630){
        SellShort(1,Q_AskPrice());
}
If(A_BuyPosition() > 0 &&      Close>= 17680 ){
       Sell(0,0);
       //Sell(A_BuyPosition(),0);
       //Sell(A_BuyPosition(),Q_AskPrice());
}
If(A_SellPosition() > 0 &&      Close<= 17610 ){
       BuyToCover(0,0);
       //BuyToCover(A_SellPosition(),0);
       //BuyToCover(A_SellPosition(),Q_BidPrice());
}

无论是否加入IF条件,都没有办法去完成平仓操作,是模拟账户本身的限制,还是其他什么原因?

其他说明:
交易助手中未忽略

Rank: 4

精华
0
UID
236810
积分
396
帖子
338
主题
1
阅读权限
50
注册时间
2016-6-20
最后登录
2020-3-13
2#
发表于 2017-3-17 10:25:48 |只看该作者
Buy,Sell和A函数不能混用!

使用道具 举报

Rank: 1

精华
0
UID
248337
积分
3
帖子
2
主题
1
阅读权限
10
注册时间
2017-3-8
最后登录
2017-3-17
3#
发表于 2017-3-17 10:29:35 |只看该作者
gczh112358 发表于 2017-3-17 10:25
Buy,Sell和A函数不能混用!

不太明白你们指的混用是什么概念。
    If(BarStatus == 2)  
    {
                If(Close <= MyBuyPriceMax && Close >= MyBuyPriceMin && A_BuyPosition() == 0)
                {
                        Buy(MyBuyLots,Q_BidPrice());
                }
                If(Close <= MySellPriceMax && Close >= MySellPriceMin && A_SellPosition() == 0)
                {
                        SellShort(MySellLots,Q_AskPrice());
                }
        }       
这样写也是可以执行的

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2017-3-17 10:44:59 |只看该作者
hsworkshop 发表于 2017-3-17 10:29
不太明白你们指的混用是什么概念。
    If(BarStatus == 2)  
    {

q_xxx,a_xxx类的函数都是只在最后K线有效。。在历史K线中是列无效值 。。
你的原代码中,开仓条件使用了A函数,且指令参数使用了Q函数。。这样的写法,在出信号这个K线走完后,信号就消失了。
图表中没有开仓信号,是不会执行到sell,buytocover语句的,自然就没法平仓。
buy,sell指令不要与A_xxx,Q_xxx类的函数混用,否则信号是可能变化、消失的。

使用道具 举报

Rank: 1

精华
0
UID
263424
积分
3
帖子
2
主题
1
阅读权限
10
注册时间
2018-3-15
最后登录
2018-3-23
5#
发表于 2018-3-23 23:24:23 |只看该作者
我也遇到了这个问题,题主说了,无论是否加入IF条件,都无法平仓,所以这个和A函数Q函数貌似没有关系。就是只要是平仓就无法成功,条用sell返回值为false,模拟账户。这是什么原因啊?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2018-3-30 08:37:31 |只看该作者
dongvy2003 发表于 2018-3-23 23:24
我也遇到了这个问题,题主说了,无论是否加入IF条件,都无法平仓,所以这个和A函数Q函数貌似没有关系。就是 ...


为什么会觉得与A,Q函数无关呢?
前面有提到,开仓指令里使用了A函数导致了开仓信号的消失。
没有开仓信号,是不可能执行buytocover,sell这样的平仓语句的。哪怕行情条件已经满足,就持仓条件这一条的不满足就不可能有平仓的执行。。
在楼主的代码里,这个问题就是与A,Q函数的使用不当有关。

使用道具 举报

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

bottom

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

GMT+8, 2024-4-26 22:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部