行业分析¶
要在持仓分析表中生成行业配置图以及在交易回合分析表中按行业显示盈亏情况,您需要向pyfolio传递一个符号-行业映射的字典(或类似字典的数据结构),其中符号作为键,行业作为值。create_full_tearsheet函数也会接受符号-行业映射作为关键字参数sector_mappings。
在本笔记本中,我们将生成包含行业映射的头寸分析表和往返交易分析表。
导入与设置¶
[1]:
# silence warnings
import warnings
warnings.filterwarnings('ignore')
[2]:
import pyfolio as pf
import pandas as pd
%matplotlib inline
import gzip
import os
加载数据¶
我们使用一些测试数据进行演示:
[3]:
returns = pd.read_csv(gzip.open('../tests/test_data/test_returns.csv.gz'),
index_col=0, parse_dates=True, header=None)[1]
positions = pd.read_csv(gzip.open('../tests/test_data/test_pos.csv.gz'),
index_col=0, parse_dates=True)
transactions = pd.read_csv(gzip.open('../tests/test_data/test_txn.csv.gz'),
index_col=0, parse_dates=True)
[4]:
positions.head()
[4]:
| AMD | CERN | COST | DELL | GPS | INTC | MMM | 现金 | |
|---|---|---|---|---|---|---|---|---|
| 索引 | ||||||||
| 2004-01-09 00:00:00+00:00 | 6961.92 | 21017.07875 | 7282.266152 | 21264.55188 | 7091.080020 | 21259.333890 | 21316.129606 | -6192.360298 |
| 2004-01-12 00:00:00+00:00 | 18198.58 | 18071.25000 | 17675.836401 | 10804.31924 | 10685.411865 | 17872.477480 | 10882.026400 | -3329.289887 |
| 2004-01-13 00:00:00+00:00 | 12060.86 | 11942.24625 | 12838.477446 | 16078.90380 | 16272.139000 | 12465.392511 | 12579.135758 | 4708.039735 |
| 2004-01-14 00:00:00+00:00 | 13102.40 | 15534.28125 | 14447.422640 | 15414.45080 | 15666.440185 | 14884.069620 | 13454.542620 | -2749.470030 |
| 2004-01-15 00:00:00+00:00 | 15518.40 | 14547.05000 | 14164.039680 | 14407.48813 | 14926.122619 | 14422.385864 | 13929.159049 | -2462.919316 |
添加行业映射¶
[5]:
# define our sector mappings
sect_map = {'COST': 'Consumer Goods',
'INTC': 'Technology',
'CERN': 'Healthcare',
'GPS': 'Technology',
'MMM': 'Construction',
'DELL': 'Technology',
'AMD': 'Technology'}
运行持仓分析报告¶
[6]:
pf.create_position_tear_sheet(returns, positions, sector_mappings=sect_map)
| 历史持仓前十的多头头寸 | 最大值 |
|---|---|
| 成本 | 90.01% |
| DELL | 85.73% |
| CERN | 83.53% |
| MMM | 82.09% |
| INTC | 78.59% |
| AMD | 75.76% |
| GPS | 62.24% |
| 历史上前十大空头持仓 | 最大值 |
|---|---|
| AMD | -30.12% |
| 戴尔 | -26.58% |
| CERN | -25.51% |
| MMM | -22.62% |
| GPS | -20.09% |
| INTC | -18.47% |
| 成本 | -16.44% |
| 历史持仓前十名 | 最大值 |
|---|---|
| 成本 | 90.01% |
| DELL | 85.73% |
| CERN | 83.53% |
| MMM | 82.09% |
| INTC | 78.59% |
| AMD | 75.76% |
| GPS | 62.24% |
[7]:
pf.create_round_trip_tear_sheet(returns, positions, transactions, sector_mappings=sect_map)
| 汇总统计 | 所有交易 | 空头交易 | 多头交易 |
|---|---|---|---|
| 总交易回合数 | 5822.00 | 1155.00 | 4667.00 |
| 盈利百分比 | 0.50 | 0.52 | 0.49 |
| 获胜回合数 | 2886.00 | 595.00 | 2291.00 |
| 亏损交易回合数 | 2917.00 | 553.00 | 2364.00 |
| 偶数回合交易 | 19.00 | 7.00 | 12.00 |
| 盈亏统计 | 所有交易 | 空头交易 | 多头交易 |
|---|---|---|---|
| 总利润 | $65404.25 | $3560.10 | $61844.15 |
| 毛利润 | $448803.34 | $20608.45 | $428194.89 |
| 总亏损 | $-383399.09 | $-17048.35 | $-366350.75 |
| 盈利因子 | $1.17 | $1.21 | $1.17 |
| 平均交易净利润 | $11.23 | $3.08 | $13.25 |
| 平均盈利交易 | $155.51 | $34.64 | $186.90 |
| 平均亏损交易 | $-131.44 | $-30.83 | $-154.97 |
| 平均盈利与平均亏损比率 | $1.18 | $1.12 | $1.21 |
| 最大盈利交易 | $9500.14 | $1623.24 | $9500.14 |
| 最大亏损交易 | $-22902.83 | $-661.29 | $-22902.83 |
| 持仓时长统计 | 所有交易 | 空头交易 | 多头交易 |
|---|---|---|---|
| 平均持续时间 | 13天 03:21:49.653555479 | 2天 10:39:35.064935064 | 15天 18:53:36.628026569 |
| 持续时间中位数 | 8天 00:00:00 | 2天 00:00:00 | 12天 00:00:00 |
| 最长持续时间 | 84天 00:00:00 | 13天 00:00:00 | 84天 00:00:00 |
| 最短持续时间 | 0天 00:00:01 | 1天 00:00:00 | 0天 00:00:01 |
| 回报统计 | 所有交易 | 空头交易 | 多头交易 |
|---|---|---|---|
| 所有往返交易的平均收益 | 0.01% | 0.01% | 0.01% |
| 获胜交易平均收益 | 0.13% | 0.13% | 0.12% |
| 平均亏损收益率 | -0.11% | -0.12% | -0.11% |
| 所有往返交易的收益中位数 | -0.00% | 0.00% | -0.00% |
| 收益中位数(盈利交易) | 0.02% | 0.02% | 0.02% |
| 亏损中位数回报 | -0.01% | -0.01% | -0.01% |
| 最大盈利交易 | 6.78% | 6.78% | 6.19% |
| 最大亏损交易 | -17.23% | -3.95% | -17.23% |
| 股票统计 | AMD | CERN | COST | DELL | GPS | INTC | MMM |
|---|---|---|---|---|---|---|---|
| 所有往返交易的平均收益 | 0.04% | -0.01% | -0.02% | 0.02% | -0.02% | -0.04% | 0.07% |
| 获胜交易平均收益 | 0.13% | 0.08% | 0.09% | 0.12% | 0.12% | 0.17% | 0.16% |
| 平均亏损回报 | -0.07% | -0.08% | -0.10% | -0.08% | -0.18% | -0.21% | -0.05% |
| 所有往返交易的中位数收益率 | 0.00% | -0.00% | -0.00% | 0.00% | 0.00% | -0.00% | 0.00% |
| 获胜交易的中位数收益 | 0.02% | 0.02% | 0.02% | 0.02% | 0.02% | 0.02% | 0.03% |
| 亏损中位数回报 | -0.01% | -0.01% | -0.01% | -0.01% | -0.02% | -0.03% | -0.01% |
| 最大盈利交易 | 6.78% | 1.69% | 1.48% | 3.29% | 2.72% | 5.01% | 6.14% |
| 最大亏损交易 | -1.59% | -6.39% | -4.48% | -3.28% | -17.23% | -6.86% | -1.60% |
| 按名称统计的盈利能力(盈亏/总盈亏) | |
|---|---|
| 股票代码 | |
| 成本 | 39.90% |
| INTC | 38.27% |
| CERN | 32.31% |
| MMM | 22.15% |
| GPS | 4.94% |
| AMD | -6.41% |
| 戴尔 | -31.15% |
| 按名称统计的盈利能力(盈亏/总盈亏) | |
|---|---|
| 股票代码 | |
| 消费品 | 39.90% |
| 医疗保健 | 32.31% |
| 建筑 | 22.15% |
| 科技 | 5.65% |