1、按照github中环境准备要求,配置好环境要求。

https://github.com/vnpy/vnpy

mongdb安装在D:\Program Files\MongoDB\Server\3.4     将MongoDB配置为系统服务  http://blog.csdn.net/Tong_T/article/details/78698122

sc.exe create MongoDB binPath= "\"D:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"D:\Program Files\MongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"     电脑配置信息,注意:我电脑是3.6,别人是3.4版本,一点微小差别就导致不成功,一定要细心。

如果自己手动关掉了,可以win+r 运行中输入 services.msc  启动mongodb即可。关掉了MySQL57。可视化工具:robomongo

2、安装完成后将csv数据导入mongo数据库。

运行 E:\vnpy0413\examples\CtaBacktesting\loadCsv.py文件,python2版本注销掉__init__.py文件,ctaHistoryData.py采用绝对引用,修改file,python2和3不一样。

reader = csv.DictReader(open(fileName, 'r',encoding='utf8'))

3、debug runBacktesting.py文件,流程如下:

engine=BacktestingEngine()实例化回测引擎--->

engine.set()参数设置 --->

engine.initStrategy(AtrRsiStrategy,d)策略初始化 --->ctaBacktesting.py initStrategy(self,strategyClass,setting=None)--->strategyAtrRsi.py

self.strategy.onInit()--->self.putEvent() ---->ctaTemplate.py self.ctaEngine.putStrategyEvent(self.name)  pass--->  self.strategy.onstart() 策略初始化--->

self.putEvent()--->ctaTemplate.py self.ctaEngine.putstrategyEvent(self.name) pass --->

engine.runBacktesting()--->self.runHistoryDataFromMongo()--->host,port,log=loadMongoSetting() --->vtFunction.py 函数 loadMongoSetting()--->

疑问:

7、为什么会有限价字典?

ctaBacktesting.py
def SendOrder(*******):
****
self.workingLimitOrderDict[key]=order
self.limitOrderDict[key]=order

6、停止单是什么意思?为什么会出现?

5、self.symbol self.exchange self.vtSymbol均没有赋值,是故意的还是中间有问题?

4、ctaTemplate.py中buy方法,DIRECTION_LONG、OFFSET_OPEN,参数在哪里?

解答:在language文件下面constant.py文件中。

3、strategyAtrRsi.py中的onInit方法,有self.putEvent(),这个方法是在哪里写的?

解答:继承了父类的ctaTemplate,父类中有putEvent方法。写法分别如下

strategyAtrRsi.py
def onInit(self):
"""初始化策略(必须由用户继承实现)"""
self.writeCtaLog(u'%s策略初始化' %self.name) # 初始化RSI入场阈值
self.rsiBuy = 50 + self.rsiEntry
self.rsiSell = 50 - self.rsiEntry # 载入历史数据,并采用回放计算的方式初始化策略数值
initData = self.loadBar(self.initDays)
for bar in initData:
self.onBar(bar) self.putEvent()
ctaTemplate.py
def putEvent(self):
"""发出策略状态变化事件"""
self.ctaEngine.putStrategyEvent(self.name)

2、ctaEngine在哪里入的参数呢?为什么实例化的时候不需要入参?

ctaBacktesting.py
def initStrategy(self, strategyClass, setting=None):
"""
初始化策略
setting是策略的参数设置,如果使用类中写好的默认设置则可以不传该参数
"""
self.strategy = strategyClass(self, setting)
#为什么没有入ctaEngine的参数呢?

解答:有ctaEngine的参数,就是self,即在初始化策略的时候,把self作为ctaEngine参数传入策略类中,self.strategy作为策略类的实例化对象,也为回测引擎的属性。

每个策略类继承cta策略模板类:ctaTemplate,策略模板类初始化__init__方法的时候传入ctaEngine和setting,策略类初始化也有__init__方法,为了传入策略引擎,需要使用super方法初始化父类(策略模板类)的__init__方法。所有如下写法:

#strategyAtrRsi.py
def __init__(self, ctaEngine, setting):
"""Constructor"""
super().__init__(ctaEngine, setting) ctaTemplate.py
def __init__(self, ctaEngine, setting):
"""Constructor"""
self.ctaEngine = ctaEngine
self.entrust =
self.uncompletedOrders = {}
if setting:
self.writeCtaLog(u'基类设置参数')
d = self.__dict__
for key in self.paramList:
if key in setting:
d[key] = setting[key]

1、vtglobal.py中的 __file__   是在什么时候赋值的呢?还是说每个py脚本文件都可以这样写?

解答:每个脚本文件都可以这样写,是获得该文件所在位置

print(__file__)
E:/exercise/call.py

vnpy交易接口学习的更多相关文章

  1. C# 常用接口学习 ICollection<T>

    C# 常用接口学习 ICollection<T> 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 2015 参 ...

  2. C# 常用接口学习 IComparable 和 IComparer

    C# 常用接口学习 IComparable 和 IComparer 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 201 ...

  3. 工程化编程实战callback接口学习笔记

    一.编译并运行 help.version命令执行正常,但quit命令出错 二.Debug 从命令输入到执行过程: 源代码: 更改后: 运行结果:能正确运行quit命令 Callback接口学习成果: ...

  4. vnpy交易学习接口(2)

    #来源于github下载vnpy版本  20180413 11.多投资标的情况下,该如何修改? 10.stop和limit报单有什么区别呢? 在交易时用得最多的是二类定单,第一类是市价单(Market ...

  5. caffe的python接口学习(1):生成配置文件

    caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现.caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更 ...

  6. PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式

    以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTim ...

  7. OpenCV(C++接口)学习笔记1-图像读取、显示、保存

    OpenCV在2.0加入版本号之后C++接口函数,学习前C语言的接口功能.现在OpenCV它已被发展到2.4.9版本号,所以,我决定学习C++接口函数,与步伐. 1.创建图像 cv::Mat imag ...

  8. C# 常用接口学习 IEnumerable<T>

    作者:乌龙哈里 时间:2015-10-24 平台:Window7 64bit,Visual Studio Community 2015 本文参考: MSDN IEnumerable<T> ...

  9. java Thread 接口学习

    对于程序员来说 Thread应该都不会陌生,具体的接口调用不是本篇的重点.Thread的基本概念及接口的使用:java多线程 下面将更多的从底层实现角度讲一下Thread. Thread的声明如下: ...

随机推荐

  1. css 让多出的文字成省略号...

    一,单行 white-space:nowrap; overflow:hidden;text-overflow: ellipsis; 二,多行 display: -webkit-box; overflo ...

  2. eshop1-大型电商架构演进

    1. 项目初期 2. 服务器分离 以上的服务分离架构,即使文件服务crash 了,但是application server 和 Database Server 继续可以访问运行 3. 基于并发访问越来 ...

  3. ①spring简介以及环境搭建(一)

    注*(IOC:控制反转.AOP:面向切面编程) spring官网:http://spring.io/ spring简介: spring是一个开源框架 spring为简化企业级应用开发而生,使用Spri ...

  4. IDEA快速定位一个文件到项目目录

    第一步:快捷键搜索java文件关键字 快捷键Ctrl+N,如果设置为Eclipse版本快捷键为Ctrl+Shift+R 第二步:定位文件到项目目录中 1.在当前文件下 2.点击定位按钮 3.定位到项目 ...

  5. NAND厂商哭晕:减产也阻止不了跌价

    导读 NAND闪存价格已经连跌了6个季度,这让上游NAND厂商三星.东芝.美光等损失惨重,纷纷削减NAND产能.在群联台北电脑展上,群联公司董事长潘建成也预测NAND闪存价格已经跌破了成本,未来跌幅会 ...

  6. 七十二、SAP中内表的修改,添加条件语句,多条目修改

    一.代码如下 二.MODIFY执行前断点数据 三.查看到数据如下 四.往下单步走一步,发现有3条数据被修改 五.执行后修改如下

  7. GDI+应用2

    在上一篇里已经向大家介绍了如何使用GDI+绘制简单的图像,这一片继续向大家介绍其它一些绘图知识.1.首先我们来看下上一片中我们使用过的Pen.Pen的属性主要有: Color(颜色),DashCap( ...

  8. 实验吧-密码学-Decode、困在栅栏里的凯撒

    Decode 这是一个多重加密. 0x253464253534253435253335253433253661253435253737253464253531253666253738253464253 ...

  9. 通过request获得全路径

     <% String test = request.getScheme()+"://"+request.getServerName()+":"+reque ...

  10. Elasticsearch 搜索数据

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...