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

是这样写吗?报错了

from vnpy_riskmanager import RiskManagerApp
engine = init_cli_trading([CtpGateway])
engine.main_engine.add_app(RiskManagerApp)
from vnpy_riskmanager.engine import RiskEngine
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
engine.update_setting(setting)

报错内容:
PS C:\Users\wp61413_114147317492> & D:/veighna_studio/python.exe c:/Users/wp61413_114147317492/期权交易/终稿/Boxarbitrage.py
找不到数据服务驱动vnpy
,使用默认的RQData数据服务
Traceback (most recent call last):
File "c:\Users\wp61413_114147317492\期权交易\终稿\Box_arbitrage.py", line 27, in <module>
engine.update_setting(setting)
AttributeError: 'ScriptEngine' object has no attribute 'update_setting'

谢谢,已运行上述代码,但是运行以后没有输出,请问在哪里可以设置风控的条件(如委托笔数,报单次数等)?

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

脚本模式下,用多进程跑策略报错:
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
Traceback (most recent call last):
File "c:\Users\wp61413_114147317492\期权交易\终稿\test2.py", line 22, in <module>
main()
File "c:\Users\wp61413_114147317492\期权交易\终稿\test2.py", line 18, in main
p1.start()
File "D:\veighna_studio\lib\multiprocessing\process.py", line 121, in start
self._popen = self._Popen(self)
File "D:\veighna_studio\lib\multiprocessing\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "D:\veighna_studio\lib\multiprocessing\context.py", line 327, in _Popen
return Popen(process_obj)
File "D:\veighna_studio\lib\multiprocessing\popen_spawn_win32.py", line 93, in init
reduction.dump(process_obj, to_child)
File "D:\veighna_studio\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: cannot pickle 'thread.lock' object
找不到数据服务驱动vnpy
,使用默认的RQData数据服务
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "D:\veighna_studio\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "D:\veighna_studio\lib\multiprocessing\spawn.py", line 126, in _main
self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

源代码如下:

import multiprocessing
from vnpy_scripttrader import init_cli_trading
from vnpy_ctp import CtpGateway

class Strategy:
    def __init__(self,engine = init_cli_trading([CtpGateway])) -> None:
        self.engine = engine

    def stratrgy(self):
        print('111')

def main():
    commodities = Strategy()

    p1 = multiprocessing.Process(target=commodities.stratrgy)
    p2 = multiprocessing.Process(target=commodities.stratrgy)
    p1.start()
    p2.start()

if __name__ == '__main__':
    main()

交易的是股票期权ETF

配置都是一模一样的,图形界面显示全部连接成功,但是脚本模式却报4097的错误:

description
源码如下:

description

请问有办法开启风控吗?

好的,谢谢,这个一般要等多久才会有成交回报信息?我sleep一下

谢谢,实盘交易中,也是这个函数吗?(感觉实盘跟米筐没关系)

这是我的代码和运行结果:
两行下单语句都都执行成功了,确实下了单(实盘),但为什么get_all_positions返回没有持仓、get_all_accounts返回的账户余额不正确(返回的余额是下单前的余额)?

description

description

非常感谢,请问哪里可以查到这些函数的介绍?

请问如果是纯自己写的脚本策略(不是no_ui启动),如何开启风控?

谢谢,请问是这样写吗?
engine.main_engine.get_gateway('CTP').td_api.connect_status

谢谢,使用engine.get_gateway('CTP').td_api.connect_status后,还是报错了:

from vnpy_scripttrader import init_cli_trading
from vnpy_ctp import CtpGateway
engine = init_cli_trading([CtpGateway])
Traceback (most recent call last):
File "c:\Users\wp61413_114147317492\期权交易\终稿\ScriptTrader_vnpy_impvplace_commodityDos.py", line 286, in <module>
run()
File "c:\Users\wp61413_114147317492\期权交易\终稿\ScriptTrader_vnpy_impvplace_commodityDos.py", line 42, in run
print(engine.get_gateway('CTP').td_api.connect_status)
AttributeError: 'ScriptEngine' object has no attribute 'get_gateway'

想在创建engine2对象后,通过engine2.connect_status来获取

我想获得CTP连接状态的返回值,CtpMdApi和CtpTdApi有login_status/connect_status变量,请问如何获取connect_status变量的值呢?
写了如下代码:
from vnpy_ctp.gateway.ctp_gateway import CtpMdApi,TdApi
engine2 = CtpMdApi(TdApi)
运行时报错:
Traceback (most recent call last):
File "C:\Users\wp61413_114147317492\期权交易\终稿\ScriptTrader_vnpy_impvplace_commodityDos.py", line 9, in <module>
engine2 = CtpMdApi(TdApi)
File "D:\veighna_studio\lib\site-packages\vnpy_ctp\gateway\ctp_gateway.py", line 250, in init
self.gateway_name: str = gateway.gateway_name
AttributeError: type object 'vnpy_ctp.api.vnctptd.TdApi' has no attribute 'gateway_name'
请问如何获取呢?谢谢!

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

沪公网安备 31011502017034号

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