【思考7】A股择时难,难择时
作者:yunjinqi   类别:    日期:2021-11-30 17:44:52    阅读:1524 次   消耗积分:0 分    

在A股市场上,两种基本的策略形式就是选股和择时,选股就是选出来具有alpha的股票,择时就是低买高卖。通过对上证指数的收益率进行分析,发现,收益率前0.25%的交易日带来的收益率居然超过了所有交易日的总的收益率,以前听说A股收益率主要是1%的交易日带来的,数据分析的结果表明,如果剔除收益率前0.25%的交易日,剩下交易日的收益率总体上基本为0,长期持有的预期收益率为0,如果把每个交易日看成一次赌博,那么,必然结果就是久赌必输,除非你能在整体上零和的情况下,发现明显的规律。所以,这0.25%的交易日至关重要,想要挑选出这0.25%的交易日,想想就知道,有多难了。

而在期货市场上,一个简单的趋势跟踪策略的收益率的分布,有前5%的交易日的收益率超过所有交易日的总的收益率,实际上,我应该直接分析期货市场的指数或者期货品种,这里用一个趋势跟踪策略的收益率代替了,结果不一定准确。


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']                          # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False                            # 解决保存图像是负号'-'显示为方块的问题# 读取数据
data = pd.read_csv("/home/yun/data/指数/上证指数.csv",encoding='gbk')# 升序排列日期
data = data.sort_values("日期")
data.index = range(len(data))# 去掉涨跌幅是None的字符串,并转变为数字
data = data[data['涨跌幅']!="None"]
data['涨跌幅'] = data[['涨跌幅']].astype("float")
data['close'] = data[['收盘价']].astype("float")# 以日期作为index
data.index = pd.to_datetime(data['日期'])# 计算对数收益率
data['log_return'] = np.log(data['close'])-np.log(data['close'].shift(1))
data = data.dropna()# 计算总体上的收益率
total_return = data['log_return'].sum()# 计算99%的分位数
target_rate = np.percentile(data['log_return'], 99.75)
df = data[data['log_return']>= target_rate]# 1%的收益率是多少
target_total_return = df['log_return'].sum()
# 1%的交易日的收益率占总收益率的比例为:
print(f"0.25%的交易日的收益率占总收益率的比例为:{(np.e**target_total_return-1)/(np.e**total_return-1)}")
# 0.25%的交易日的收益率占总收益率的比例为:1.097321736574832


版权所有,转载本站文章请注明出处:云子量化, http://www.woniunote.com/article/18
上一篇:【思考6】资金小就不能做量化了吗?
下一篇:【思考8】在交易上,努力一定能够获得成功吗?