设为首页收藏本站

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

模拟程序化交易中的问题:buy函数无法自动下单 [复制链接]

Rank: 2

精华
0
UID
214328
积分
80
帖子
14
主题
7
阅读权限
30
注册时间
2015-7-20
最后登录
2018-5-14
跳转到指定楼层
1#
发表于 2015-7-30 13:57:06 |只看该作者 |倒序浏览
本人刚开始学习TB程序化交易,最近遇到一个小问题,还请各位高手解释一下:



经过实际测试,个人认为buy函数只能用于测试,如果满足买入条件,会在bar上做出标记,但不能应用于模拟交易(模拟账户没有任何变化);

如果要应用于模拟交易,必须用A_SendOrder()函数

以下是测试代码:

Begin
        If(close[1]<open[1])
        {
                FileAppend("d:\\marketpostest.txt"," currentbar: "+text(currentbar)+ "||  执行buy命令前的marketposition值: " +Text(marketposition)+"\t 当前持仓量为:"+Text(CurrentContracts()));
               
                            buy(1,Q_AskPrice);
                          
                           // A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
                          
                FileAppend("d:\\marketpostest.txt"," currentbar: "+text(currentbar)+ "||  执行buy命令后的marketposition值: " +Text(marketposition)+"\t 当前持仓量为:"+Text(CurrentContracts()));
        }
end
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2015-7-30 14:02:28 |只看该作者
buy指令是可以对帐户进行下单交易的。。
无论是buy指令,还是a_sendorder,都必须在启动自动交易后,才会对帐号进行发单交易。。
buy里不建议使用q_xxx或是a_xxx做为参数。这样会导致信号消失的,只显示最后K线上的信号

使用道具 举报

Rank: 2

精华
0
UID
214328
积分
80
帖子
14
主题
7
阅读权限
30
注册时间
2015-7-20
最后登录
2018-5-14
3#
发表于 2015-7-30 14:33:56 |只看该作者
确定已经连上了模拟交易账户,测试图表为IF1508,TB交易软件右上方显示了绿色笑脸,A_SendOrder()可以自动下单,以上代码显然存在重复发单问题;

刚才用buy(1,3000)重新测试了一次(IF1508最新价格为3690左右), 账户还是没有任何反应

使用道具 举报

Rank: 2

精华
0
UID
214328
积分
80
帖子
14
主题
7
阅读权限
30
注册时间
2015-7-20
最后登录
2018-5-14
4#
发表于 2015-7-30 14:40:03 |只看该作者
还有个问题,用以上代码测试(buy(1,Q_AskPrice)改为buy(1,open)),按理说存在大量的重复下单,实际情况为在满足下单条件的第一个bar做出了黄色标记,其他满足close[1]<open[1]的bar上没有任何标记,不知到怎么理解该现象

使用道具 举报

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

bottom

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

GMT+8, 2024-5-23 17:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部