VeighNa量化社区
你的开源社区量化交易平台
wp61413's Avatar
Member
离线
91 帖子
声望: 0

我是3.5.0的vnpy, 这是sopt_gateway.py里面的源码:

description

没有turnover字段

PR是什么意思?是要把里面的代码拷贝到sopt_gateway.py文件中吗?

获取了一些平值期权的tick,都是流动性强的,为什么tick数据中的成交金额(turnover)一直都是0?截图如下“

description

description

description

一直都是0,但是这个合约是活跃的不停地在交易

感谢连龙八卦,我得到了这样的结果:

description
这个values似乎仍然是枚举对象组成的列表,我在运行下面这条语句时出现了错误:
series_symbol = contracts['symbol'] + ’.' + contracts['exchange'].values

description

我想得到‘DCE',这个字符串,这个字符串是枚举对象DCE的value,以便于和 contracts['symbol']、‘.'相加,请问该如何操作呢?

语句:
···
contracts = engine.get_all_contracts(use_df=True)
print (contracts['exchange'].value)
···
调用engine.get_all_contracts(use_df=True)后,返回的dataframe中,exchange列中的数据是枚举类型:Exchange.DCE,Exchange.CZCE,......, 我想获取枚举对象的值,也就是想获取DCE,CZCE...该怎么写呢?尝试print (contracts['exchange'].value)时,报错了。

同时加载了其他接口是啥意思?如何排查?我只加载了CTP

是实盘账号

最近几天,CTP总是自动断开,自动重联,前一阵子还正常,请问是什么原因?截图如下:

description

请问
问题一、用engine.subscribe订阅合约123,再用engine.subscribe订阅合约456,系统推送的tick是推456,还是123456都推?
问题二、我订阅了全市场的行情,但tick返回的都是None,订阅全市场行情后,再订阅部分合约,可以返回部分合约的tick,是怎么回事?

把value换成values后,输出也是空的

嗯,我知道是枚举类型,改为:contract_all_opts = contracts[contracts['product']=='期权']后还是空的,contracts[contracts['product'].value=='期权']也不行,提示:'Series' object has no attribute 'value'。正确的写法应该是什么?

遇到一个奇怪的情况,这两行语句:
contracts = engine.get_all_contracts(use_df=True)
contract_all_opts = contracts[contracts['product']=='Product.OPTION']
print(contract_all_opts)的结果居然是空
类似地,如果把第二行语句换成:
contract_all_opts = contracts[contracts['name']=='pg2403-C-5100']
就能输出1行正确的结果,请问是什么原因?

不是我的开仓均价,我的开仓均价是61

我买了3手v2309-C-6400,持仓均价61元,但是用engine.get_all_positions()却得到如下结果:
PositionData(gateway_name='CTP', extra=None, symbol='v2309-C-6400', exchange=<Exchange.DCE: 'DCE'>, direction=<Direction.LONG: '多'>, volume=3, frozen=0, price=21.0, pnl=0.0, yd_volume=3), PositionData(gatewa
=0, price=21.0, pnl=0.0, yd_volume=3),
显示持仓均价price = 21元,请问这是怎么回事?如何得到正确的持仓均价?

好的,谢谢!只有engine.get_tick()才需要订阅行情吧?

请问engine.get_contract前需要先订阅行情吗? 即engine.subscribe()

谢谢,请问是这样写吗?

'''
from vnpy_riskmanager import RiskManagerApp
from vnpy_ctp import CtpGateway
from vnpy_scripttrader import init_cli_trading
engine = init_cli_trading([CtpGateway])
engine.main_engine.add_app(RiskManagerApp)

a = engine.main_engine.get_engine('RiskManager')

setting = {}
setting["active"] = True
setting["order_flow_limit"] = 10
setting["order_flow_clear"] = 100
setting["order_size_limit"] = 10
setting["trade_limit"] = 100
setting["active_order_limit"] = 10
setting["order_cancel_limit"] = 10
a.update_setting(setting)
a.save_setting()
'''

您好,可以帮助回答吗?

需要自己创建RishEngine类的对象吗?然后用创建的对象调用update_setting方法?请教对象的参数怎么写?
risk = RiskEngine(main_engine=??, event_engine=??)

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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