以周为单位,获取本周最强的5只行业指数,进行均值购买。

数据源采用akshare。

导入包

import akshare as ak
import pandas as pd
import numpy as np
import matplotlib

日线换为周线

#日线换为周线数据
def transferToWeekLine(df):data1=dfstock_data = pd.DataFrame(data1)#设定转换周期period_type  转换为周是'W',月'M',季度线'Q',五分钟'5min',12天'12D'stock_data["date"] = pd.to_datetime(stock_data["date"])period_type = 'W'stock_data.set_index('date',inplace=True)#进行转换,周线的每个变量都等于那一周中最后一个交易日的变量值period_stock_data = stock_data.resample(period_type).last()# 周线的open等于那一周中第一个交易日的openperiod_stock_data['open'] = stock_data['close'].resample(period_type).first()#周线的high等于那一周中的high的最大值period_stock_data['high'] = stock_data['close'].resample(period_type).max()#周线的low等于那一周中的low的最大值period_stock_data['low'] = stock_data['close'].resample(period_type).min()#周线的volume和money等于那一周中volume和money各自的和period_stock_data['chg_pct'] = stock_data['chg_pct'].resample(period_type).sum()period_stock_data['volume'] = stock_data['volume'].resample(period_type).sum()# period_stock_data['money'] = stock_data['money'].resample(period_type,how='sum')#计算周线turnover# period_stock_data['turnover'] = period_stock_data['volume'](period_stock_data['traded_market_value']/period_stock_data['close'])#股票在有些周一天都没有交易,将这些周去除period_stock_data = period_stock_data[period_stock_data['volume'].notnull()]period_stock_data.reset_index(inplace=True)data = np.array(period_stock_data) #先将数据框转换为数组data_list = data.tolist()  #其次转换为列表for i in data_list:i[0]=str(i[0]).split(" ")[0]return data_list

获取申万二级行业代码

#获取申万二级行业代码
sw_index_third_info_df = ak.sw_index_third_info()
sw_index_third_info_df['行业代码']=sw_index_third_info_df['行业代码'].apply(lambda x:str(x)[:6])

#获取行业指数行情
#策略1,行业轮动现象的直观表征:相对强弱

ind = pd.DataFrame()
for i in range(len(sw_index_third_info_df)):#print(sw_index_third_info_df.iloc[i,0])sw_index_daily_df = ak.sw_index_daily_indicator(symbol=sw_index_third_info_df.iloc[i,0], start_date="20191201", end_date="20220310",data_type='Day')stock_data=pd.DataFrame(transferToWeekLine(sw_index_daily_df))stock_data.rename(columns={0:'date',1:'code',2:'name',3:'close',4:'volume',5:'chg_pct'},inplace=True)stock_data=stock_data.iloc[:,:6]stock_data['ret'] = stock_data['chg_pct'].shift(-1)ind = ind.append(stock_data)

#获取每个交易周的行业指数,并买入排名前五,(均值买入),并计算持仓一个礼拜的收益。

ind = ind.sort_values(by='date')
last = pd.DataFrame()
l = []
for i in ind['date'].unique():d = ind.loc[ind['date']==i].sort_values('close',ascending=True).head(5)l = l+[d.ret.mean()/100] 

绘制资金曲线图

pd.DataFrame(l).cumsum().plot()

行业指数动量策略+akshare相关推荐

  1. 基于AI排序算法的指数增强策略

    在介绍AI排序算法之前我们先介绍另外一个术语:特征工程 特征工程是使用专业背景知识和技巧来处理数据,使得特征能在机器学习算法上发挥更好作用的工程实践.这样解释可能并不直观.举例说明,当我们选择用指标来 ...

  2. 【手把手教你】基于均线排列的价格动量策略回测

    01 引言 动量策略是通过利用市场波动从现有趋势的延续中获利.简单来说,高买高卖,反之亦然("低买高卖"是均值回归策略思想,与动量策略相反).价值投资通常基于均值的长期回归,而动量 ...

  3. python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...

    动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...

  4. 自动量策略的开发和优化

    介绍:传统动量策略只能用来选股,无法用来择时,尤其是对于单指数(比如整个市场就一个投资标的)如何使用动量择时? 定义:动量定义依然保持原样,MOM(5)=close(T)-close(T-5),在常规 ...

  5. 量化交易之指数增强策略

    不断地学习,才能使我们变得更加强大 指数增强策略概念:指数增强策略是以对标的股市基准指数(如沪深300.中证500.中证1000)作为参考,在追踪对标股市基准指数的前提下,利用量化投资的方式进行主动管 ...

  6. 动量策略——yyds

    今天来看一看什么叫yyds! 动量策略是一个古老的策略了,说白就是"追涨杀跌". 这在投资里不算什么好词,大家通常这样形容"韭菜",但是如果你能一如继往的坚持, ...

  7. 全球及中国城市轨道交通与设备行业布局规划策略及投资模式分析报告2021-2027年版

    全球及中国城市轨道交通与设备行业布局规划策略及投资模式分析报告2021-2027年版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- ...

  8. python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...

    动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...

  9. 行业指数的周期以及跑赢指数的分位数是多少?

    前言 本篇是量化系列的第一篇文章.<量化十万个为什么>系列旨在讨论一些自己心中的疑问,并且通过尝试解答这些问题来提升自己对于市场的认知水平. PS:博主水平很辣鸡,请大家轻喷,多多指教! ...

最新文章

  1. R语言可视化堆叠(stack)的条形图并通过另外一个分类变量分离(dodge)条形图(stacking by one variable and dodging by another)实战
  2. 如何设计一门语言(七)——闭包、lambda和interface
  3. webpack加载器打包样式表中的图片和字体
  4. VS 2012 如何发布 ASP.NET 网站到本地IIS
  5. jca oracle官方文档,Oracle 官方文档说明
  6. python定时播放音乐程序_python实现闹钟定时播放音乐功能
  7. redis生产环境持久化_在SageMaker上安装持久性Julia环境
  8. NPOI 导出 excel 性能测试
  9. 《华为工作法读后感》
  10. 计算机找不到管理无线网络,电脑wifi密码忘了 并且找不到管理无线网络该怎么处理?...
  11. win32开发(mdi应用)
  12. 【机器学习】sklearn文档学习之特征选择
  13. PHP返回页面空白原因分析-Nginx+PHP
  14. 小猿圈python_小猿圈python之内置方法new
  15. UIUC计算机科学系博士,伊利诺伊大学香槟分校之计算机科学系
  16. 热血格斗场和冷血格斗场
  17. TestFlight Beta 相关问答
  18. JPG插入GPS信息
  19. MAX31865模块PT100两线制测温
  20. php-fpm 启动失败,php-fpm自启动失败问题排查

热门文章

  1. python官网网址是什么意思_大家都是怎么部署python网站的?
  2. GDB 调试程序 详解 使用实例
  3. 2013驾考科目三考试难点解析
  4. 在英特尔® 凌动™ 处理器上将 OpenGL* 游戏移植到 Android* (第一部分)
  5. 基于DirectShow的流媒体解码和回放
  6. python基本语法:序列
  7. JDK下载地址、SecureCRT中JDK安装和环境配置、SecureCRT窗口编程、linux下命令运行小程序
  8. 破解mysql数据库的密码
  9. zen-coding for notepad++,前端最佳手写代码编辑器
  10. 程序员必知8大排序3大查找(一)