Merge pull request #744 from vnpy/dev

v1.8.0最终更新
This commit is contained in:
vn.py 2018-02-22 13:05:41 +08:00 committed by GitHub
commit 284ce49846
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 114 additions and 156 deletions

View File

@ -1,6 +1,8 @@
# vn.py - By Traders, For Traders.
# By Traders, For Traders.
![vn.py-logo](http://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy-logo.png)
---
### 简介
@ -37,6 +39,8 @@ vn.py是基于Python的开源量化交易程序开发框架起源于国内私
- OANDAoanda
- 福汇fxcm
- OKCOINokcoin
- 火币huobi

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,7 @@
# WebTrader使用说明
**开发作者cccbbbaaab**
## 使用步骤
1. 修改CTP_connect.json中的账号和服务器地址

View File

@ -872,7 +872,8 @@ class BacktestingEngine(object):
self.output('setting: %s' %str(setting))
self.initStrategy(strategyClass, setting)
self.runBacktesting()
d = self.calculateBacktestingResult()
df = self.calculateDailyResult()
df, d = self.calculateDailyStatistics(df)
try:
targetValue = d[targetName]
except KeyError:

View File

@ -2,18 +2,6 @@
'''
本文件中实现了CTA策略引擎针对CTA类型的策略抽象简化了部分底层接口的功能
关于平今和平昨规则
1. 普通的平仓OFFSET_CLOSET等于平昨OFFSET_CLOSEYESTERDAY
2. 只有上期所的品种需要考虑平今和平昨的区别
3. 当上期所的期货有今仓时调用Sell和Cover会使用OFFSET_CLOSETODAY否则
会使用OFFSET_CLOSE
4. 以上设计意味着如果Sell和Cover的数量超过今日持仓量时会导致出错即用户
希望通过一个指令同时平今和平昨
5. 采用以上设计的原因是考虑到vn.trader的用户主要是对TBMC和金字塔类的平台
感到功能不足的用户即希望更高频的交易交易策略不应该出现4中所述的情况
6. 对于想要实现4中所述情况的用户需要实现一个策略信号引擎和交易委托引擎分开
的定制化统结构没错得自己写
'''
from __future__ import division
@ -36,8 +24,6 @@ from .ctaBase import *
from .strategy import STRATEGY_CLASS
########################################################################
class CtaEngine(object):
"""CTA策略引擎"""

View File

@ -2,9 +2,10 @@
"""
本模块中主要包含
1. 从通联数据下载历史行情的引擎
2. 用来把MultiCharts导出的历史数据载入到MongoDB中用的函数
3. 增加从通达信导出的历史数据载入到MongoDB中的函数
1. 将MultiCharts导出的历史数据载入到MongoDB中用的函数
2. 将通达信导出的历史数据载入到MongoDB中的函数
3. 将交易开拓者导出的历史数据载入到MongoDB中的函数
4. 将OKEX下载的历史数据载入到MongoDB中的函数
"""
import csv

View File

@ -5,8 +5,7 @@
注意事项
1. 作者不对交易盈利做任何保证策略代码仅供参考
2. 本策略需要用到talib没有安装的用户请先参考www.vnpy.org上的教程安装
3. 将IF0000_1min.csv用ctaHistoryData.py导入MongoDB后直接运行本文件即可回测策略
2. 将IF0000_1min.csv用ctaHistoryData.py导入MongoDB后直接运行本文件即可回测策略
"""

View File

@ -1,14 +1,7 @@
# encoding: UTF-8
"""
这里的Demo是一个最简单的双均线策略实现并未考虑太多实盘中的交易细节
1. 委托价格超出涨跌停价导致的委托失败
2. 委托未成交需要撤单后重新委托
3. 断网后恢复交易状态
4. 等等
这些点是作者选择特意忽略不去实现因此想实盘的朋友请自己多多研究CTA交易的一些细节
做到了然于胸后再去交易对自己的money和时间负责
也希望社区能做出一个解决了以上潜在风险的Demo出来
这里的Demo是一个最简单的双均线策略实现
"""
from __future__ import division

View File

@ -4,10 +4,7 @@
基于King Keltner通道的交易策略适合用在股指上
展示了OCO委托和5分钟K线聚合的方法
注意事项
1. 作者不对交易盈利做任何保证策略代码仅供参考
2. 本策略需要用到talib没有安装的用户请先参考www.vnpy.org上的教程安装
3. 将IF0000_1min.csv用ctaHistoryData.py导入MongoDB后直接运行本文件即可回测策略
注意事项作者不对交易盈利做任何保证策略代码仅供参考
"""
from __future__ import division

View File

@ -1053,9 +1053,9 @@ class PositionDetail(object):
if ydAvailable > 0:
reqClose = copy(req)
if self.exchange is EXCHANGE_SHFE:
req.offset = OFFSET_CLOSEYESTERDAY
reqClose.offset = OFFSET_CLOSEYESTERDAY
else:
req.offset = OFFSET_CLOSE
reqClose.offset = OFFSET_CLOSE
reqClose.volume = ydAvailable
l.append(reqClose)