行业分析

要在持仓分析表中生成行业配置图以及在交易回合分析表中按行业显示盈亏情况,您需要向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%
../_images/notebooks_sector_mappings_example_12_3.png
[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%
../_images/notebooks_sector_mappings_example_13_7.png