老师好:
我目前开仓的订单已经隔天了,在OmsEngine的相关函数中:
1、get_all_positions 查到了仓位信息,但这里只是总仓位;
2、get_all_orders 空数据;
3、get_all_trades 空数据。
请问:
由于我的仓位是分次开仓的,现在只能根据 get_all_positions 查到总仓位,有办法查出每次开仓的开仓量、开仓价位、当前的赢利情况吗?
或者说:这些数据,只能自己管理吗? veighNa 本身有相关的函数可以提供吗?
老师好!
我现在是可以访问到: CtpTdApi 中自建的属性,但仍然无法读取合约的保证金数据:
1、我可以访问CtpTdApi中的:reqQryInstrumentMarginRate, reqQryInstrument;
def query_margin_ratio(self):
"""查询保证金数据"""
print(f"打印合约数据aaaabbbb")
margin_ratio_req = {}
margin_ratio_req['BrokerID'] = self.brokerid
margin_ratio_req['InvestorID'] = self.userid
margin_ratio_req['InstrumentID'] = "rb2210.SHFE"
margin_ratio_req['HedgeFlag'] = THOST_FTDC_HF_Speculation
self.reqid += 1
# 请求查询保证金率
self.reqQryInstrumentMarginRate(margin_ratio_req, self.reqid)
self.reqQryInstrument(margin_ratio_req, self.reqid)
2、但CtpTdApi 中,并没有相应的接受函数,甚至然错误处理也没有,这是要我们自己手动添加吗?添加后需要重新编译吗?
3、我自己手动添加以后,并不能接受到相应的应答消息:
def onRspError(self, error: dict, reqid: int, last: bool) -> None:
"""请求报错回报"""
self.gateway.write_error("行情接口报错", error)
print("行情接口报错", error)
def onReqError(self, error: dict, reqid: int, last: bool) -> None:
"""请求报错回报"""
self.gateway.write_error("行情接口报错", error)
print("行情接口报错", error)
def OnRspQryInstrumentMarginRate(self, data: dict, error: dict, reqid: int, last: bool) -> None:
"""合约查询回报"""
print("aaaaa")
这里的: onRspError, onReqError, OnRspQryInstrumentMarginRate 都没有响应。
请问:
1、CtpTdApi 为什么没有相关的错误提示函数?
2、或者:我如何知道访问 reqQryInstrumentMarginRate 到底是参数问题,还是语法问题?目前可以访问,但不报错,也没有任何消息提示;
3、我该如何读取到合约的保证金率数据?
老师好!
请教一个问题,如题:
假设有10万本金,如何能自动计算出这些本金能开某合约(如螺纹主力合约)几手?
我按论坛中的方法来访写,但 CtpTdApi 中系统原有的方法都能访问,但自己写的方法无法访问,下面的寻址方法不对吗?正确的方法是什么?
self.cta_engine.main_engine.gateways['CTP'].td_api.query_margin_ratio()
老师好!
我按照您帖子上的提示,想查出帐户信息,但返回是空值:
我错在哪里?还请指导!
老师好!
ctp 接口,有办法自动查询帐户当前的资金情况、开仓情况、合约的保证金率吗?
可以提供相关文档的链接吗?
老师好!
期货考虑换约问题,我想定时把策略自动重启一下,重启的方法是把原有的策略移除,根据新的主力合约重新加载一次。
具体代码,是根据上次老师指导的示例,代码如下:
但实际使用过程中,未报错,但策略也未能移除!
是不是方法用错了?还请老师指导能一下!非常感谢!
老师好:
我想测试一套程序带多个 ctp 帐户,现在在一台电脑上,开多个程序,一个程序对应一个 ctp 帐户,测试是通过的。
我想通过子进程来开启多个 ctp 帐户,ctp 主要逻辑如下:
请问:
1、如果想启动多个进程,带进行多帐户交易,那么:这个图例中的:主引擎、cta引擎、帐户绑定及初始化,哪些要放在主进程中、哪些要放在子进程中?还是所有的都要放在子进程中?
2、每个帐户都想交易多个产品,所以程序中每个产品都启动一个策略。我想让这个 ctp 的程序不间断地自动运行下去,当出现主力合约换约时,我如何把原来的策略关掉,重新按新的合约来启动?
3、或者:想每天固定时间,如:晚上20:30,此时主力合约的换约数据已经采集好,让这个多帐户系统重启一遍,应该如何操作?
老师好!
1、由于我当前的策略逻辑,都安装在 centos 上,显示UI在 windows,也就是说形成 vnpy逻辑与界面的分离。
2、我也想在一台 centos 上,能同时运行多个 ctp 的帐户;
上面的工作,以前在 windows 是可以执行的,但知其然不知其所以然。
今天想手工单项安装 vnpy_ctp ,但一直未能成功,还请想请教指导一下,如何在 centos 环境上单独安装 vnpy_ctp,(并不想完全地安装 vnpy)
管理员好:
我想用vnpy+ctp接口,实现像海龟那样的仓位管理。
假设第一次开仓后,orderid = 111;第二次开仓后,orderid = 222
请问:我可以通过程序化,针对 orderid = 222进行单独的平仓动作吗?
老师好:
我用 ChartWidget 画图后,为了分析方便,可能会放大、缩小图形。但一旦有新数据 onbar 后,图形比例就自动复原到默认比例上了,还要重新去修正比例。
请问:有办法把自己临时查看图形的缩放比例固定住吗?
如题!请老师指导!非常感谢!
vnpy 造好了许多轮子,给研发工作带来了极大的方便,感谢 vnpy 和各位群友的分享和智慧!
我想利用 vnpy 做一个多周期联立的分析功能,现在有一个知识点,还请各位老师指导!
在 ChartWidget 给出的 K 线图上,我想在趋势线的顶、底分别显示上 high , low 值,像文华财经那样,这个功能如何实现?还请指导!
通过 vnTrader 连接 ctp 成功,如图:
检查配置文件的位置,发现:位于: c:\user\administrator.vntrader 中:
然而打开配置文件,发现文件跟 vntrader 中实际配置的并不一致:
请问:最新的 ctp 的配置文件存哪里了?
作为初学者,面对 vnpy 无所不包、博大精深的丰富内容,试图用图形对 vnpy 的运行流程做一个归纳。
不到之处,还请各位多多指正