作者:好白菜1 | 来源:互联网 | 2023-08-13 15:20
上一个篇文章已经安装好了,但是未配置账号.这篇继续
配置账号的参考这篇文章就行了
地址:https://github.com/vnpy/vnpy/tree/v1.9.2-LTS
quick start部分。
-
在SimNow注册CTP仿真账号,记下你的账号、密码、经纪商编号,然后下载快期查询你的交易和行情服务器地址BrokerID统一为:9999
标准CTP:
第一组:Trade Front:180.168.146.187:10000,Market Front:180.168.146.187:10010;【电信】
第二组:Trade Front:180.168.146.187:10001,Market Front:180.168.146.187:10011;【电信】
第三组:Trade Front:218.202.237.33 :10002,Market Front:218.202.237.33 :10012;【移动】
-
找到vn.py应用示例目录examples,打开examples\VN Trader\CTP_connect.json,修改账号、密码、服务器等为上一步注册完成后你的信息(注意使用专门的编程编辑器,如Sublime Text等,防止json编码出错)
-
找到VN Trader的启动入口run.py,并双击运行(若无法双击,则在当前目录按住Shift点鼠标右键,打开cmd输入python run.py运行),run.py内容如下:
# encoding: UTF-8import sys
reload(sys)# vn.trader模块
from vnpy.event import EventEngine
from vnpy.trader.vtEngine import MainEngine
from vnpy.trader.uiQt import createQApp
from vnpy.trader.uiMainWindow import MainWindow# 加载底层接口
from vnpy.trader.gateway import ctpGateway, ibGateway# 加载上层应用
from vnpy.trader.app import (riskManager, ctaStrategy, spreadTrading, algoTrading)#----------------------------------------------------------------------
def main():"""主程序入口"""# 创建Qt应用对象qApp = createQApp()# 创建事件引擎ee = EventEngine()# 创建主引擎me = MainEngine(ee)# 添加交易接口me.addGateway(ctpGateway)me.addGateway(ibGateway)# 添加上层应用me.addApp(riskManager)me.addApp(ctaStrategy)me.addApp(spreadTrading)me.addApp(algoTrading)# 创建主窗口mw = MainWindow(me, ee)mw.showMaximized()# 在主线程中启动Qt事件循环sys.exit(qApp.exec_())if __name__ == '__main__':main()
如果出现错误:
2019-03-23 19:16:56,273 INFO: MAIN_ENGINE MongoDB连接成功
Traceback (most recent call last):
File "/home/john/anaconda3/envs/vnpy27/lib/python2.7/site-packages/vnpy-1.9.2-py2.7.egg/vnpy/trader/uiBasicWidget.py", line 298, in updateEvent
self.updateData(data)
File "/home/john/anaconda3/envs/vnpy27/lib/python2.7/site-packages/vnpy-1.9.2-py2.7.egg/vnpy/trader/uiBasicWidget.py", line 496, in updateData
super(LogMonitor, self).updateData(data)
File "/home/john/anaconda3/envs/vnpy27/lib/python2.7/site-packages/vnpy-1.9.2-py2.7.egg/vnpy/trader/uiBasicWidget.py", line 342, in updateData
content = safeUnicode(data.__getattribute__(header))
File "/home/john/anaconda3/envs/vnpy27/lib/python2.7/site-packages/vnpy-1.9.2-py2.7.egg/vnpy/trader/vtFunction.py", line 31, in safeUnicode
return text_type(value)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 2: ordinal not in range(128)
就说明文件编码可能有问题,在代码的
reload(sys)下一行加上sys.setdefaultencoding('utf8'),再保存就行了
做完这些之后发现,登录后还是没有行情,在vntrade的日志部分,可以看到提示“首次CTP登录需要修改密码”
那就去修改呗。
但simnow和vntrade终端都没有修改的入口,网上查了查可以重置,那就重置下,重置后在登录就好了