投资无外乎选品、择时、制定交易计划、退出,今天和大家说一说选品环节的一个重要的投资新宠,近几年特别流行的ETF基金。
说到ETF,YU股思基就先简单说一说ETF基金是什么,为什么受众多投资者喜爱?
ETF是什么?
ETF是一种指数基金,是一种交易型开放式指数基金,也称为交易所交易基金( Fund,简称ETF),是一种在交易所上市交易(像股票一样买卖)的、基金份额可变的开放式基金。
ETF指数基金的实质,是一篮子股票的所有权,所以,投资者买卖一只ETF,就等同于买卖了它所跟踪的指数,可取得与该指数基本一致的收益。
ETF( Funds)听起来陌生又高大上,但其实就是可以直接在二级市场交易的指数基金,是一种门槛低、简单又高效的投资工具。它诞生于 20 世纪 90 年代的美国,因其基于新型投资组合管理方式以及产品的不断创新,迅速给全球基金行业带来了一场重大革命。
ETF 具有费用低廉、交易效率高等众多优点,作为投资界的明日之星,被大量普通投资者一路看好。
ETF能做什么?
ETF能做什么,我们先看看投资大佬们都怎么说?
巴菲特说:「通过定期投资指数基金,一个什么都不懂的业余投资者往往能够战胜大部分专业投资者」
彼得林奇:「只有少数基金经理能够长期持续战胜市场指数」
罗杰斯:「我非常看好被动投资。ETF 提供了更加便宜、更加方便的交易方式。关键一点是早一点找到好的投资人。」
大佬们力推的指数基金,我们是不是就更应该搞清楚他的奥秘呢,为自己的投资库里增加一个自己看的投资品种。
通过ETF基金我们可以做到以下:
1.指数长期趋势向上:ETF 基金盈利确定性大
ETF 基金所跟踪的市场指数具有内生增长动能,国内主要股指增长保持在 10-20%/年,这可以为 ETF 投资者提供丰厚的收益保障。
2.收益总伴随着风险:ETF 基金可规避诸多市场风险
投资者在热切地期盼高额回报时,却往往面临一个又一个的投资陷阱,ETF 基金用最简单的投资哲学,最透明的投资思路,却能规避投资者所面对的诸多风险。
3.资本永不眠:你可把握多种投资标的投资机会
基于不同市场板块、风格、行业、主题、市场类型或投资地域的差异性判断,市场资金会在各类投资标的间流转,促使各类投资标的呈现结构性的轮动行情,这提供给我们更丰富的投资获利机会。
ETF 能为投资者提供便捷、低成本的工具,提供投资于某个特定市场、行业的关键指数。
全方位认识 ETF,能帮你实现高效资产配置。无论你是理财新手还是投资大亨,无论你了解或者看好哪类行业、国家甚至商品,都可以利用它来进行投资。
ETF作为当今全世界最火爆的投资工具之一,对于ETF有一个360度全方位更深入的认识,才能更好的把握ETF投资的方法。
ETF有什么?
ETF有什么,就是现在ETF的分类有哪些呢?
ETF最常见的分类是按资产标的分类,可以大致分为六大类:股票大盘指数类ETF、行业股票指数类ETF、全球ETF、债券ETF、商品ETF、外汇ETF等。
1、追踪股票大盘指数类,大盘指数也有不同的风格;按指数成分股的风格,有价值型、成长型、混合型;按指数成分股的规模,有大市值型、中市值型、小市值型。有的市况下,价值型ETF的走势会比较好;在有的市况下,小市值型ETF的ETF的走势比较好。因此,即使是选择大盘指数型ETF,也可以根据自己的判断进行选择。
2、追踪某些热门行业指数的ETF。例如半导体、生物科技等,选择此类要对行业走势做出判断再行抉择。
3、全球ETF。美股ETF中,追踪非美国的股票指数的ETF,一般统称为全球ETF。
4、追踪某一类商品、债券、外汇走势的ETF。例如黄金ETF、追踪原油指数的ETF等,因为金价、油价走势都是非常重要的经济信号,大家可以根据自己的判断来选择相应标的相关的ETF。
ETF不断按照以上分类,还有一个优秀的特质是,ETF基金不但有场内,可以实时买入卖出,还有对应的场外ETF基金黄金交易代码是什么,就是常说的ETF联结基金。
ETF基金的优势也在于此,交易方式较多,更方便更多的投资者进行投资。
介绍完ETF的大致情况后,就要进入我们的主题了:怎么选择ETF呢?选择任何标的我们都是要有理由的,选择ETF的因子是什么。今天YU股思基给大家介绍一个ETF跟踪因子:ETF资金净流入,通过ETF资金净流入可以随时跟踪各类ETF获资金青睐的情况,然后选择对应ETF进行投资获取目标收益。
下面就给大家介绍一下怎么通过量化手段实时跟踪ETF资金净流入的情况。
PART.01 量化:ETF资金追踪解密ETF投资秘决
ETF资金追踪逻辑:
(1)设定需要追踪ETF资金的代码;(宽基ETF、行业主题ETF等)
(2)获取ETF历史行情信息:复权单位净值、基金份额
(3)计算ETF基金规模
(4)计算每日ETF资金净流入
(5)对ETF行情走势和每日资金净流入进行可视化,观察ETF资金净流入因子和净值之间的关系
研究工具:++
#导入相关的工具库import pandas as pdimport tushare as tsfrom dateutil.relativedelta import relativedeltaimport warningsfrom pyecharts import options as optsfrom pyecharts.charts import Line,Bar,Pagefrom pyecharts.commons.utils import JsCode #使用Js代码控制可视化柱子颜色from pyecharts.components import Tablefrom pyecharts.globals import ThemeType
主要函数:ETF规模变化函数
'''定义一个计算ETF规模变化的方法输入:ETF基金代码输出:df 包含:交易日期、单位净值、基金份额、基金规模、规模变化值'''def get_ETF_Capital_Change(code): #基金净值 df_Nav = pro.fund_nav(ts_code=code) df_Nav = df_Nav[['nav_date','adj_nav']] df_Nav.columns = ['trade_date','adj_nav'] # print(df_Nav) #基金份额 df_Scale = pro.fund_share(ts_code=code) df_Scale = df_Scale[['trade_date','fd_share']] # print(df_Scale) df_net_inflow = df_Nav.merge(df_Scale,on='trade_date',how='left') df_net_inflow.fillna(method='ffill',inplace=True) df_net_inflow['Capital'] = round((df_net_inflow['adj_nav'] * df_net_inflow['fd_share'])/10000,2) #亿元 df_net_inflow = df_net_inflow.iloc[::-1,:] df_net_inflow.reset_index(inplace=True,drop=True) df_net_inflow['capital_chg'] = round(df_net_inflow['Capital'].diff(),2) #每日ETF资金规模变化值 df_net_inflow.fillna(0,inplace=True) # print(df_net_inflow) return df_net_inflow
因子可视化:净值走势和ETF资金净流入
'''ETF资金变化可视化类建立折线图、柱状图'''class Data_Visualization(): #类的初始化 def __init__(self,df,ETF_name): self.df = df self.chart_title = ETF_name # 指定柱子颜色的js代码 self.color_function = """ function (params) { if (params.value 0) return 'blue'; } """ #折线图 def plot_line(self): Line_Close = ( Line(init_opts=opts.InitOpts(theme=ThemeType.ESSOS, width='1920px', height='750px')) .add_xaxis(self.df['trade_date'].tolist()) .add_yaxis('收盘价',self.df['adj_nav'].tolist(), color='red', yaxis_index=0, linestyle_opts=opts.LineStyleOpts(width=4)) .extend_axis(yaxis=opts.AxisOpts(type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), )) # 双坐标轴 这个必须添加,添加虚线 .set_global_opts(title_opts=opts.TitleOpts(title=self.chart_title), toolbox_opts=opts.ToolboxOpts(is_show=True)) .set_series_opts(label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'), opts.MarkPointItem(type_='min', name='最小值')] ) )) return Line_Close #柱状图 def plot_bar(self): Bar_ETF_capital = ( Bar(init_opts=opts.InitOpts(bg_color='white', width='1920px', height='750px')) .add_xaxis(self.df['trade_date'].tolist()) .add_yaxis('ETF资金变化', self.df['capital_chg'].tolist(), color='blue', itemstyle_opts=opts.ItemStyleOpts(color=JsCode(self.color_function)), yaxis_index=1) #坐标轴 .set_series_opts(label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'), opts.MarkPointItem(type_='min', name='最小值')] ) ) ) return Bar_ETF_capital#表格图def plot_table(rows_data): Table_ETF_captital = ( Table() .add(headers = ['交易日期','ETF代码','ETF简称', '复权单位净值', '基金份额(万份)', '基金规模(亿元)', '当日ETF资金净流入(亿元)','近一周ETF资金净流入(亿元)','近一月ETF资金净流入(亿元)'], rows = rows_data, attributes={ "align": "center", "border":False, "class":"fl-table" } ) .set_global_opts(title_opts=opts.ComponentTitleOpts(title='ETF资金当日净流入明细')) ) return Table_ETF_captital
量化主函数入口:ETF设定
if __name__ == '__main__': #资金趋势可视化 ''' 1.宽基ETF跟踪 ''' wide_fund_ETF = ['510050.SH','510300.SH','510500.SH','512100.SH'] wide_fund_ETF_name = ['上证50ETF','沪深300ETF','中证500ETF','中证1000ETF'] page_wide_fund = Page(page_title='宽基ETF资金净流入趋势') #先绘制表格 wide_fund_ETF_capital_Last_Trade_Date_List = [] for i in range(0,len(wide_fund_ETF)): df_ETF = get_ETF_Capital_Change(code=wide_fund_ETF[i]) #当日资金变化明细 data_row_list = df_ETF.loc[len(df_ETF)-1].tolist() data_row_list.insert(1,wide_fund_ETF[i]) data_row_list.insert(2,wide_fund_ETF_name[i]) data_row_list[3] = round(data_row_list[3],2) #净值数据保留2位有效小数 #统计近一周和近一月 df_ETF_last_week = df_ETF.loc[(len(df_ETF)-5):(len(df_ETF)-1)] # print(df_ETF_last_week) data_row_list.insert(7,round(df_ETF_last_week['capital_chg'].sum(),2)) df_ETF_last_month = df_ETF.loc[(len(df_ETF) - 21):(len(df_ETF) - 1)] data_row_list.insert(8, round(df_ETF_last_month['capital_chg'].sum(),2)) wide_fund_ETF_capital_Last_Trade_Date_List.append(data_row_list) page_wide_fund.add(plot_table(rows_data=wide_fund_ETF_capital_Last_Trade_Date_List)) #在绘制走势图 for i in range(0,len(wide_fund_ETF)): df_ETF = get_ETF_Capital_Change(code=wide_fund_ETF[i]) plot = Data_Visualization(df=df_ETF,ETF_name=wide_fund_ETF_name[i]) Line_nav = plot.plot_line() ETF_capital_chg = plot.plot_bar() Line_nav.overlap(ETF_capital_chg) page_wide_fund.add(Line_nav) page_wide_fund.render('宽基ETF资金变化与走势.html') ''' 2.医药行业ETF跟踪 ''' Medicine_ETF = ['512170.SH','512010.SH','159992.SZ','512290.SH','159938.SZ','159828.SZ','515120.SH','159837.SZ', '159859.SZ','159929.SZ','159883.SZ','159645.SZ','516820.SH','159647.SZ'] Medicine_ETF_name = ['医疗ETF_沪','医药ETF_沪','创新药ETF_沪','生物医药ETF_沪','医药卫生ETF','医疗ETF_深','创新药ETF_深', '生物科技ETF','生物医药ETF_深','医药ETF_深','医疗器械ETF','疫苗龙头ETF','医疗创新ETF','中药ETF'] page_medicine = Page() #先绘制表格 Medicine_ETF_capital_Last_Trade_Date_List = [] for i in range(0,len(Medicine_ETF)): df_ETF = get_ETF_Capital_Change(code=Medicine_ETF[i]) #当日资金变化明细 data_row_list = df_ETF.loc[len(df_ETF)-1].tolist() data_row_list.insert(1,Medicine_ETF[i]) data_row_list.insert(2,Medicine_ETF_name[i]) data_row_list[3] = round(data_row_list[3],2) #净值数据保留2位有效小数 # 统计近一周和近一月 df_ETF_last_week = df_ETF.loc[(len(df_ETF) - 5):(len(df_ETF) - 1)] # print(df_ETF_last_week) data_row_list.insert(7, round(df_ETF_last_week['capital_chg'].sum(), 2)) df_ETF_last_month = df_ETF.loc[(len(df_ETF) - 21):(len(df_ETF) - 1)] data_row_list.insert(8, round(df_ETF_last_month['capital_chg'].sum(), 2)) Medicine_ETF_capital_Last_Trade_Date_List.append(data_row_list) page_medicine.add(plot_table(rows_data=Medicine_ETF_capital_Last_Trade_Date_List)) for i in range(0,len(Medicine_ETF)): df_ETF = get_ETF_Capital_Change(code=Medicine_ETF[i]) plot = Data_Visualization(df=df_ETF,ETF_name=Medicine_ETF_name[i]) Line_nav = plot.plot_line() ETF_capital_chg = plot.plot_bar() Line_nav.overlap(ETF_capital_chg) page_medicine.add(Line_nav) page_medicine.render('医药行业ETF资金变化与走势.html')
其他宽基和行业追踪只需要进行ETF代码替换即可生成。
量化结果
宽基ETF资金净流入追踪
医药行业ETF资金净流入追踪
以上就是量化:ETF资金净流入追踪ETF投资实现的整体过程,感兴趣的朋友可以YU股思基私信获取。
YU说:量化研究ETF资金净流入黄金交易代码是什么,对做好ETF轮动具有重要意义,ETF投资心里有底啊!
坚持理性研究,量化投资,做有价值的事情,做正确的事情,坚定信心,静待开花结果。
免责声明:投资有风险,投资需谨慎!本文仅为根据市场公开资料及个人理解研究分析,不作为投资依据,文中涉及到的标的仅作为举例,不构成投资建议,所提到的观点仅代表个人的意见,所涉及标的不作推荐,风险自负。
坚持不易,分享,,三连击!
本文到此结束,希望对大家有所帮助。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至81118366@qq.com举报,一经查实,本站将立刻删除。发布者:简知小编,转载请注明出处:https://www.jianzixun.com/76489.html