wayking wrote:
可以录制,但是会报个错误,这个要怎么去掉?
已经解决.找到database_mongo.py
修改
connect(
db=database,
host=host,
port=port,
username=username,
password=password,
authentication_source=authentication_source,
)
为
connect(
db=database,
host=host,
port=port,
username=username,
password=password,
authentication_source=authentication_source,
connect=False
)
mengrong wrote:
请问如果想启动bar 与tick数据同时录制,这个方法下可以如何实现呢,sqlite 只能单进程,那么切换recordmode同时录制不行。
请问如何不默认存储到 默认用户文件夹的.db,而可以存储到自定义的文件夹,如何在脚本部分更改呢?
我用的是mongodb,可以同时录制bar和tick
修改def init(self, main_engine, event_engine, record_modes=[RecordMode.BAR]):
为def init(self, main_engine, event_engine, record_modes=[RecordMode.BAR,RecordMode.TICK]):
可以录制,但是会报个错误,这个要怎么去掉?
修正一下楼主的数据:
symbols={
"SHFE": ["AG","AL","AU","BU","CU","FU","HC","LU","NI","NR","PB","RB","RU","SC","SN","SP","SS","WR","ZN"],
"DCE": ["A","B","BB","C","CS","EG","EB","FB","I","J","JD","JM","L","LH","M","P","PG","PP","RR","V","Y"],
"CZCE": ["AP","CF","CJ","CY","FG","JR","LR","MA","OI","PF","PM","RI","RM","RS","SA","SF","SM","SR","TA","UR","WH","ZC"],
"CFFEX": ["IC","IF","IH","T","TF","TS"]
}
增加了生猪-LH,短纤-PF
czce的CL应为为CJ红枣
同时按字母顺序排列了下,方便以后增删查找
https://github.com/ruihuowayking/vnpy/blob/master/quickfix-1.15.1-cp37-cp37m-linux_x86_64.whl
Centos8 python3.7.6,编译好的quickfix whl,大家下载直接安装就行
安装完后
去掉requirements.txt 里的quickfix
mengrong wrote:
请问如果想启动bar 与tick数据同时录制,这个方法下可以如何实现呢,sqlite 只能单进程,那么切换recordmode同时录制不行。
请问如何不默认存储到 默认用户文件夹的.db,而可以存储到自定义的文件夹,如何在脚本部分更改呢?
我也正在找这个办法,你解决了吗?
谢谢楼主分享
vn2.5.4已经可以用了,分钟,小时.日线都可用了,我看实现里面没有tick级数据,如何实现?
我仿照rqdata里的query_tuck_history,写了好像获取数据为0,有成功的吗?
雲信哥哥 wrote:
好的,主要就是要在 futu_gaateway.py 文件裏實現一個 query_history 方法,原理我就不多說啦,自己看下應該也很好理解的,具體代碼如下:
def exchange_bond(self, exchange: Exchange): if exchange.value == "SEHK": return "HK" elif exchange.value == "SMART": return "US" else: return exchange.value def query_history(self, req: HistoryRequest): """""" symbol = req.symbol exchange = req.exchange interval = req.interval start = req.start.strftime('%Y-%m-%d') end = req.end.strftime('%Y-%m-%d') tcode = self.exchange_bond(exchange) + '.' + f'{symbol}' #tcode = 'HK.09988' ret, quotedata, page_req_key = self.quote_ctx.request_history_kline( tcode, start=start, end=end) data: List[BarData] = [] if quotedata is not None: for ix, row in quotedata.iterrows(): #date = datetime.strptime(row.time_key, '%Y-%m-%d %H:%M:%S') bar = BarData( symbol=symbol, exchange=exchange, interval=interval, datetime=row.time_key, open_price=row.open, high_price=row.high, low_price=row.low, close_price=row.close, volume=row.volume, gateway_name="FUTU" ) print(bar) data.append(bar) return data return data
谢谢,按照方法去做,还是无法下载行情,这里还是使用的RQ的接口去下的,并没有使用gateway里的query_history.
希望能获得帮助.
xiaohe wrote:
记录行情就只有datarecorder模块的,别的数据要导入那就将数据根据数据库要求处理过后再用data_manager导入了
https://www.vnpy.com/forum/topic/1979-vn-pyshe-qu-jing-xuan-6-zuo-jiao-yi-ni-xu-yao-xuan-hao-shu-ju-ku
https://www.vnpy.com/forum/topic/3110-vn-pyfa-bu-v2-1-1-quan-gong-neng-shu-ju-guan-li
谢谢,我在vnpy上下了一个单独的行情记录软件,这个软件的数据怎么导入,因为我从mdshare上下的历史数据也是跟这个软件收集的是一样的.
xiaohe wrote:
vnpy的datarecorder模块直接就载入到数据库中了https://www.vnpy.com/docs/cn/data_recoder.html
我下载的collectctp的历史数据怎么导入呢?按照之前论坛里的方法,这些数据都是没有表头的,无法导入.
我使用vnpy的collectctp记录每日行情数据的,vnpy现在使用的是mongodb数据库,在数据管理里选择导入数据出错,应该是记录的数据没有表头,这个有没办法批量处理?
刚接触PYTHON,经过测试可用,如有不妥欢迎指正。
新增加了刷新策略按钮,按下后刷新策略文件并重新加载。
修改以下文件:
1:添加按钮和方法
vnpy\app\cta_strategy\ui\widget.py
在add_button.clicked.connect(self.add_strategy) 下方添加以下两行
reload_button = QtWidgets.QPushButton("刷新策略")
reload_button.clicked.connect(self.reload_class)
在hbox1.addWidget(add_button)下方添加以下一行
hbox1.addWidget(reload_button)
在 def update_class_combo(self): 上方添加
def reload_class(self):
self.cta_engine.load_strategy_class()
self.class_combo.clear()
self.update_class_combo()
2:修改加载逻辑
vnpy\app\cta_strategy\engine.py
修改load_strategy_class方法
在path1 = Path(file).parent.joinpath("strategies")上方添加
for loadClass in self.classes:
del loadClass
self.classes.clear()
修改load_strategy_class_from_module方法
在module = importlib.import_module(module_name)的下方添加
module = importlib.reload(module)
这样可以在不重启vntrader的情况下,修改策略文件,并重新加载,方便调试。
同求,加了个按钮,逻辑代码也写了,点击init_engine(), 不知道啥原因,就是没有刷新策略列表里的数据.
xiaohe wrote:
template里buy函数默认是offset为None,自己在算法里写offset方向就行了吧
谢谢指点,刚接触vnpy,已经处理好了.
请问下是改哪里?
打开软件连接ctp后,行情里会显示一些合约,哪些合约会显示,保存在哪里?能否配置?
还有,加载的合约里价格有些显示有问题,在哪里修改?
在~/.vntrader目录下也只有这几个文件
怎么获取配置文件的JSON文件?
另外QQ群已经连申请入群不了,拒绝申请入群,怎么加群?