VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 9
声望: 0

最近在simnow上测试买卖功能,从StrategyTemplate继承了一个类,在其中写了一个函数并设断点,当程序运行到断点时做了测试
In[2]: self.buy('zn2205.SHFE', 28480, 1)
Out[2]: ['CTP.3_1133302839_1']

In[5]: self.sell('zn2205.SHFE', 28480, 1)
Out[5]: []
其中buy是成功的,返回了订单号。在gui中看到委托和成交都有变化;但sell就不成功,只返回空的list,gui中也没有变化。
short/cover也做了实验,情况类似,short成功,cover失败。请教原因!

另外我buy成功之后,调用get_all_positions()没有看到刚才buy成功的信息。大概跟踪了一下源码,看到positions是在oms_engine里维护的本地变量,需要一些事件驱动的处理才会更新,我的代码停在断点里,所以看不到。不知道我的理解是否正确?BTW,如果想查询交易所真实的持仓数据要用哪个函数啊?

新手问题,多谢多谢!

Member
avatar
加入于:
帖子: 300
声望: 15

想用交互式模式去执行任务的话,推荐用ScriptTrader这个模块了

Member
avatar
加入于:
帖子: 9
声望: 0

我是想程序自动的。先测试一下好用不好用,结果发现了问题,估计是我哪弄错了。来论坛问问,看看又没人碰到类似的问题。

Super Moderator
avatar
加入于:
帖子: 529
声望: 43

可以先在gui上尝试一下同样测操作,感觉是你下单没有成交,导致你平仓操作被拒了

Member
avatar
加入于:
帖子: 9
声望: 0

后来跟踪程序,发现没有运行strategy_engine.init_engine(),处理下单的函数没有注册,相关的仓位信息没有计算。开仓的函数不需要持仓信息,运行没问题;但平仓的函数需要相关的仓位,所以平仓函数返回的都是空单。另外,convert_order_request_shfe是不是和实际情况有出入了?这个回头还得仔细看看。
多谢!

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】