akshare写etf动量滚动策略
导入包:
import akshare as ak
import pandas as pd
import numpy as np
import matplotlib
日线换周线:
#日线换为周线数据
def transferToWeekLine(df,period='W'):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 = periodstock_data.set_index('date',inplace=True)#进行转换,周线的每个变量都等于那一周中最后一个交易日的变量值period_stock_data = stock_data.resample(period_type).last()#周线的volume和money等于那一周中volume和money各自的和period_stock_data['chg_pct'] = stock_data['chg_pct'].resample(period_type).last()#股票在有些周一天都没有交易,将这些周去除period_stock_data = period_stock_data[period_stock_data['chg_pct'].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
获得etf列表
#etf基本数据
fund_etf_fund_daily_em_df = ak.fund_etf_fund_daily_em()
print(fund_etf_fund_daily_em_df)
获取etf历史行情
#获取etf行情
#策略1,etf轮动现象的直观表征:相对强弱
ind = pd.DataFrame()fund_etf_fund_daily_em_df = ak.fund_etf_fund_daily_em()
for i in range(len(fund_etf_fund_daily_em_df[:])):print(fund_etf_fund_daily_em_df.iloc[i,0])fund_etf_fund_info_em_df = ak.fund_etf_fund_info_em(fund=fund_etf_fund_daily_em_df.iloc[i,0], start_date="20000101", end_date="20500101")fund_etf_fund_info_em_df['code'] = fund_etf_fund_daily_em_df.iloc[i,0]fund_etf_fund_info_em_df.rename(columns={'净值日期':'date','日增长率':'chg_pct'},inplace=True)fund_etf_fund_info_em_df = pd.DataFrame(transferToWeekLine(fund_etf_fund_info_em_df,'W'))fund_etf_fund_info_em_df.rename(columns={0:'date',3:'chg_pct',6:'code'},inplace=True)fund_etf_fund_info_em_df = fund_etf_fund_info_em_df[['date','chg_pct','code']]fund_etf_fund_info_em_df['ret'] = fund_etf_fund_info_em_df['chg_pct'].shift(-1)ind = ind.append(fund_etf_fund_info_em_df)
绘图:
ind = ind.sort_values(by='date')
last = pd.DataFrame()
l = []
#获取每个交易周的行业指数,并买入排名前五,(均值买入),并计算持仓一个礼拜的收益。
for i in ind['date'].unique():d = ind.loc[ind['date']==i].sort_values('chg_pct',ascending=True).head(20)l = (l+[d.ret.mean()/100])
pd.DataFrame(l).cumsum().plot()
akshare写etf动量滚动策略相关推荐
- ETF动量轮动+RSRS择时,RSRS修正标准分,回撤降至16%
原创文章第113篇,专注"个人成长与财富自由.世界运作的逻辑, AI量化投资". 昨天的策略我是比较满意的,沿着进化的方向在迭代我们的策略.ETF轮动+RSRS择时,加上卡曼滤波: ...
- 什么是动量效应和动量交易策略?
有效市场假说是金融学领域中最基础的理论之一,该假说认为资产价格包含了与其相关的所有信息,未来资产价格变动无法根据资产过去的价格信息进行预测. 然而,自上世纪八十年代以来,大量实证研究表明市场中存在很多 ...
- Python编写动量交易策略
目录 1. 概念介绍 2.计算动量 2.1 作差法求动量 2.2 作除法求动量 3.定义求动量与作图函数 4. 绘制K线图与动量图 5. 动量交易策略的制定 1. 概念介绍 动量交易策略,即Momen ...
- Java多线程之线程池的手写改造和拒绝策略
Java多线程之线程池的手写改造和拒绝策略 目录 自定义线程池的使用 四种拒绝策略代码体现 1. 自定义线程池的使用 自定义线程池(拒绝策略默认AbortPolicy) public class My ...
- Flink的滚动策略
滚动策略是用于checkpoint的 RollingPolicy用于决定数据如何滚动保存,比如文件(保存checkpoint的文件)到达多大或者经过多久就关闭当前文件,开启下一个新文件保存后续内容.[ ...
- 怎样用原生js配合css的transition写个无缝滚动
之所以想要写原生js配合css转换的无缝滚动,是因为之前在简书上看到一哥们写的一篇文章,说是在网上找了一堆js配合css transition属性写的轮播插件,可惜没有无缝的效果,结果他用原生js重写 ...
- 用Python写一个量化交易策略
好的,这是一个关于如何用 Python 写一个量化交易策略的简单示例. 首先,需要准备好所需的数据.这可以通过使用量化交易软件或者第三方数据源来获取.接下来,你可以使用 Python 的 pandas ...
- python:chatGPT 写一个趋势跟踪策略 量化交易程序
chatGPT:趋势跟踪策略的量化交易程序可能会因语言和框架而异,下面是一个简单的Python代码示例,用于演示如何通过量化编程来实现趋势跟踪策略. 这段代码是一个简单的策略实现,它读取股票数据并计算 ...
- Log4j2日志滚动策略TimeBasedTriggeringPolicy的魔鬼槽点
TimeBasedTriggeringPolicy参数说明: 参数名称 类型 描述 interval integer 根据日期格式中最具体的时间单位来决定应该多久发生一次rollover.例如,在日期 ...
最新文章
- 对于SAP的月结相关流程介绍
- java实用教程——组件及事件处理——ActionEvent事件
- Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)
- strcmp可以比较数组么_C语言数组越界了,后果很严重,如何避免?
- [zz]母牛生牛问题解析
- Java并发程序设计(二)Java并行程序基础
- python中面向对象的ui_怎样理解Python中的面向对象?
- 认识一下Android 事件分发机制
- 在串口输入input keyevent发送按键值给机器
- 如何将Mac“桌面”和“文稿”文件添加到 iCloud 云盘中?
- 重庆市计算机一级考试2015,2015年计算机一级考试试题及答案
- 文件打包下载 (ZipArchive)
- 计算机无法查看图片,Win7系统提示windows照片查看器无法打开此图片的解决方法...
- Linux驱动开发(十三)---USB驱动HID开发学习(鼠标)
- java 图片渐变消失_透明背景图像与渐变
- 【php毕业设计】基于php+mysql的社区交流网站设计与实现(毕业论文+程序源码)——社区交流网站
- 985大学和二本计算机,985大学名单排名(二本)
- 【历史上的今天】3 月 7 日:首条海底光缆开通;VeriSign 收购 Network Solutions;计算机图形学先驱诞生
- 网站js劫持了怎么处理和预防、js劫持了怎么办
- Calibre物理验证技术点滴 (中)
热门文章
- STL源码剖析 multiset 和 multimap
- 设置clion执行前的cmake命令,和CMAKELIST.txt不冲突
- 通过Github创建Android库供其他项目依赖引用
- 基础数学落后与高端人才流失
- 赌还是不赌 你应该辞职去创业吗?
- 内聚的极限: 软件开发的不确定性原理
- 记录A component required a bean named ‘studentService‘ that could not be found.
- vim编辑器常用命令总结
- servlet中中文正常显示,mysql数据库手动插入中文正常显示,servlet向mysql中插入中文显示乱码...
- Python爬虫入门之Urllib库的基本使用