如上图是tick级数据的时间戳, 每秒是两条的数据,时间戳上是一样的
1.上传数据时会有数据的覆盖吗?
2.tick级回测时 是怎么看时间的?
股指期货平今的手续费很高,为了锁定收益,进行锁仓,vnpy代码中怎么实现锁仓的操作呢?
持多仓时,直接语句self.short来锁仓吗? 反之,self.buy?
vnpy可以在锁仓后的第二个交易日实现自动平仓操作吗?
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Anaconda3\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Anaconda3\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\Anaconda3\lib\site-packages\vnpy\event\engine.py", line 60, in _run
self._process(event)
File "C:\Anaconda3\lib\site-packages\vnpy\event\engine.py", line 73, in _process
[handler(event) for handler in self._handlers[event.type]]
File "C:\Anaconda3\lib\site-packages\vnpy\event\engine.py", line 73, in <listcomp>
[handler(event) for handler in self._handlers[event.type]]
File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 157, in process_tick_event
self.check_stop_order(tick)
File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 270, in check_stop_order
stop_order.lock
File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 366, in send_limit_order
lock
File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 318, in send_server_order
reference=f"{APPNAME}{strategy.strategy_name}"
TypeError: init() missing 1 required positional argument: 'volume'
这样也省去了初始化数据 开启策略的工作
一周或者几天打开关闭就行?
问题请见标题
期货和现货价格交割前会逐渐趋于一致, 只看到期货价格,不知道哪里可以看现货价格
找了下原因
分别打印出 每个周期的一些变量值, am的size都是给的500,为何策略初始化后的am.count值还是从1开始计算的???
导致am.inited一直是False,没有初始化成功,难怪一直没交易委托产生
Traceback (most recent call last):
File "C:\vnstudio\Lib\site-packages\vnpy\trader\ui\mainwindow.py", line 278, in open_widget
widget = widget_class(self.main_engine, self.event_engine)
File "C:\vnstudio\Lib\site-packages\vnpy\app\cta_strategy\ui\widget.py", line 37, in init
self.cta_engine.init_engine()
File "C:\vnstudio\Lib\site-packages\vnpy\app\cta_strategy\engine.py", line 109, in init_engine
self.load_strategy_data()
File "C:\vnstudio\Lib\site-packages\vnpy\app\cta_strategy\engine.py", line 794, in load_strategy_data
self.strategy_data = load_json(self.data_filename)
File "C:\vnstudio\Lib\site-packages\vnpy\trader\utility.py", line 99, in load_json
data = json.load(f)
File "c:\vnstudio\lib\json__init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "c:\vnstudio\lib\json\init__.py", line 348, in loads
return _default_decoder.decode(s)
File "c:\vnstudio\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\vnstudio\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 31 column 17 (char 714)
这是什么问题??
这是什么错误??
Traceback (most recent call last):
File "C:\vnstudio\Lib\site-packages\vnpy\app\data_manager\ui\widget.py", line 109, in refresh_tree
data = self.engine.get_bar_data_available()
File "C:\vnstudio\Lib\site-packages\vnpy\app\data_manager\engine.py", line 138, in get_bar_data_available
d["symbol"], Exchange(d["exchange"]), Interval(d["interval"])
File "C:\vnstudio\Lib\site-packages\vnpy\trader\database\database_mongo.py", line 347, in get_oldest_bar_data
interval=Interval.Value
File "c:\vnstudio\lib\enum.py", line 348, in getattr
raise AttributeError(name) from None
AttributeError: Value
点击刷新出现上述错误
准备更新的包:
vnpy : 2.0.8 -> 2.1.1
点击下方按钮开始更新
开始更新:vnpy
更新失败:vnpy
b"ERROR: tensorflow 2.1.0 has requirement protobuf>=3.8.0, but you'll have protobuf 3.5.1 which is incompatible.\r\nERROR: tensorboard 2.1.0 has requirement protobuf>=3.6.0, but you'll have protobuf 3.5.1 which is incompatible.\r\nERROR: Could not install packages due to an EnvironmentError: [WinError 5] \xbe\xdc\xbe\xf8\xb7\xc3\xce\xca\xa1\xa3: 'c:\\vnstudio\\lib\\site-packages\\vnpy\\~pi\\ctp\\thostmduserapi_se.dll'\r\nConsider using the --user
option or check the permissions.\r\n\r\n"
部分包更新失败!
策略中print的东西也没打印,策略一直就没执行
回测时一直有print信息在cmd窗口打印出来的
为何?
点击策略重载没用,回测结果跟修改前结果一样(应该是回测的还是原来的策略)
如下图所示:
vnpy2回测结果没了vnpy1中的成功率等指标 这个指标很重要 跟盈亏比结合对改进策略很有意义
这个指标怎么添加?
cmd中跑no_ui中的run.py
有成交时没任何提示,vnpy1中会提示策略委托方向数量,和成交
vnpy2中的就没了,怎么修改可以和vnpy1中的一样?
如:两种资产标的做个组合,根据策略会有轮动,
这种情况怎么在vnpy上进行策略的回测?
2.从vnpy客户端中CTA策略->添加策略,用no_ui跑,出现订阅行情失败,查找不到此合约的问题,但是在CTA策略->添加策略中初始化启动是没这个问题的
这是为何?
10:10:08 rb2001.SHFE-1m开始下载历史数据
10:10:08 数据下载失败,无法获取rb2001.SHFE的历史数据
mongodb数据库中是有rb2001表
e:\EMQuantAPI_Python\python3\EmQuantAPI.py in Init(cls)
496 cls.InitSucceed = True
497 cls.apiDllPath = UtilAccess.GetLibraryPath()
--> 498 cls.quantLib = CDLL(cls.apiDllPath)
499 cls.AsynDataFunc = cls.Type_AsynDataFunc(cls.__HandleAsynData)
500
d:\Anaconda3\lib\ctypes__init.py in init__(self, name, mode, handle, use_errno, use_last_error)
354
355 if handle is None:
--> 356 self._handle = _dlopen(self._name, mode)
357 else:
358 self._handle = handle
OSError: [WinError 126] 找不到指定的模块。