上一个篇文章已经安装好了,但是未配置账号.这篇继续
配置账号的参考这篇文章就行了
地址: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-8
import 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终端都没有修改的入口,网上查了查可以重置,那就重置下,重置后在登录就好了