2017-06-02 13:44:28 +00:00
|
|
|
|
{
|
|
|
|
|
"cells": [
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 1,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"%matplotlib inline\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"from vnpy.trader.app.ctaStrategy.ctaBacktesting import BacktestingEngine, OptimizationSetting, MINUTE_DB_NAME\n",
|
|
|
|
|
"from vnpy.trader.app.ctaStrategy.strategy.strategyAtrRsi import AtrRsiStrategy"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 2,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": true
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 创建回测引擎对象\n",
|
|
|
|
|
"engine = BacktestingEngine()"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 3,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 设置回测使用的数据\n",
|
|
|
|
|
"engine.setBacktestingMode(engine.BAR_MODE) # 设置引擎的回测模式为K线\n",
|
|
|
|
|
"engine.setDatabase(MINUTE_DB_NAME, 'IF0000') # 设置使用的历史数据库\n",
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"engine.setStartDate('20160101') # 设置回测用的数据起始日期"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 4,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": true
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 配置回测引擎参数\n",
|
|
|
|
|
"engine.setSlippage(0.2) # 设置滑点为股指1跳\n",
|
|
|
|
|
"engine.setRate(0.3/10000) # 设置手续费万0.3\n",
|
|
|
|
|
"engine.setSize(300) # 设置股指合约大小 \n",
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"engine.setPriceTick(0.2) # 设置股指最小价格变动 \n",
|
|
|
|
|
"engine.setCapital(1000000) # 设置回测本金"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 5,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": true
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 在引擎中创建策略对象\n",
|
|
|
|
|
"d = {'atrLength': 11} # 策略参数配置\n",
|
|
|
|
|
"engine.initStrategy(AtrRsiStrategy, d) # 创建策略对象"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 6,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"2017-07-14 20:10:59.807000\t开始载入数据\n",
|
|
|
|
|
"2017-07-14 20:10:59.859000\t载入完成,数据量:69994\n",
|
|
|
|
|
"2017-07-14 20:10:59.859000\t开始回测\n",
|
|
|
|
|
"2017-07-14 20:10:59.872000\t策略初始化完成\n",
|
|
|
|
|
"2017-07-14 20:10:59.872000\t策略启动完成\n",
|
|
|
|
|
"2017-07-14 20:10:59.872000\t开始回放数据\n",
|
|
|
|
|
"2017-07-14 20:11:04.727000\t数据回放结束\n"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 运行回测\n",
|
|
|
|
|
"engine.runBacktesting() # 运行回测"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 7,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"2017-07-14 20:11:05.963000\t计算按日统计结果\n",
|
|
|
|
|
"2017-07-14 20:11:05.981000\t------------------------------\n",
|
|
|
|
|
"2017-07-14 20:11:05.981000\t首个交易日:\t2016-01-11\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t最后交易日:\t2017-03-20\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总交易日:\t289\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t盈利交易日\t146\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t亏损交易日:\t143\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t起始资金:\t1000000\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t结束资金:\t973,109.83\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总收益率:\t-2.69\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总盈亏:\t-26,890.17\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t最大回撤: \t-162,300.57\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总手续费:\t28,270.17\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总滑点:\t60,300.0\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总成交金额:\t942,339,000.0\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t总成交笔数:\t1,004.0\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均盈亏:\t-93.05\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均手续费:\t97.82\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均滑点:\t208.65\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均成交金额:\t3,260,688.58\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均成交笔数:\t3.47\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t日均收益率:\t-0.02%\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\t收益标准差:\t1.11%\n",
|
|
|
|
|
"2017-07-14 20:11:05.982000\tSharpe Ratio:\t-0.27\n"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"image/png": "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\nJ0yYwKxZs/jXv/6Fp6c
|
2017-06-02 13:44:28 +00:00
|
|
|
|
"text/plain": [
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"<matplotlib.figure.Figure at 0x119e6350>"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"# 显示逐日回测结果\n",
|
|
|
|
|
"df = engine.showDailyResult()"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 8,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"2017-07-14 20:11:13.701000\t计算回测结果\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t------------------------------\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t第一笔交易:\t2016-01-11 09:33:00\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t最后一笔交易:\t2017-03-20 15:00:00\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t总交易次数:\t503.0\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t总盈亏:\t-26,980.93\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t最大回撤: \t-160,499.28\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t平均每笔盈利:\t-53.64\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t平均每笔滑点:\t120.0\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t平均每笔佣金:\t56.26\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t胜率\t\t38.17%\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t盈利交易平均值\t7,882.85\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t亏损交易平均值\t-4,953.34\n",
|
|
|
|
|
"2017-07-14 20:11:13.722000\t盈亏比:\t1.59\n"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
]
|
2017-07-14 12:12:42 +00:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"image/png": "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\nD+gfPpVKaYRRcYuFVBc
|
|
|
|
|
"text/plain": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x123c1670>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data"
|
2017-06-02 13:44:28 +00:00
|
|
|
|
}
|
|
|
|
|
],
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"source": [
|
|
|
|
|
"# 显示逐笔回测结果\n",
|
|
|
|
|
"engine.showBacktestingResult()"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": false
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
2017-06-02 13:44:28 +00:00
|
|
|
|
"source": [
|
|
|
|
|
"# 显示前10条成交记录\n",
|
|
|
|
|
"for i in range(10):\n",
|
|
|
|
|
" print engine.tradeDict[str(i+1)].__dict__"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
"metadata": {
|
2017-07-14 12:12:42 +00:00
|
|
|
|
"collapsed": false
|
2017-06-02 13:44:28 +00:00
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"# 优化配置\n",
|
|
|
|
|
"setting = OptimizationSetting() # 新建一个优化任务设置对象\n",
|
|
|
|
|
"setting.setOptimizeTarget('capital') # 设置优化排序的目标是策略净盈利\n",
|
|
|
|
|
"setting.addParameter('atrLength', 12, 20, 2) # 增加第一个优化参数atrLength,起始12,结束20,步进2\n",
|
|
|
|
|
"setting.addParameter('atrMa', 20, 30, 5) # 增加第二个优化参数atrMa,起始20,结束30,步进5\n",
|
|
|
|
|
"setting.addParameter('rsiLength', 5) # 增加一个固定数值的参数\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"# 执行多进程优化\n",
|
|
|
|
|
"import time\n",
|
|
|
|
|
"engine.runParallelOptimization(AtrRsiStrategy, setting)\n",
|
|
|
|
|
"print u'耗时:%s' %(time.time()-start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
"metadata": {
|
|
|
|
|
"collapsed": true
|
|
|
|
|
},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": []
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"metadata": {
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
"display_name": "Python 2",
|
|
|
|
|
"language": "python",
|
|
|
|
|
"name": "python2"
|
|
|
|
|
},
|
|
|
|
|
"language_info": {
|
|
|
|
|
"codemirror_mode": {
|
|
|
|
|
"name": "ipython",
|
|
|
|
|
"version": 2
|
|
|
|
|
},
|
|
|
|
|
"file_extension": ".py",
|
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
|
"name": "python",
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
"pygments_lexer": "ipython2",
|
|
|
|
|
"version": "2.7.13"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
"nbformat_minor": 0
|
|
|
|
|
}
|