栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

北向资金进行股票、期货指数、基金策略

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

北向资金进行股票、期货指数、基金策略

#%%导入包
import tushare as ts
import datetime
import pandas as pd
import numpy as np
import akshare as ak
import warnings
warnings.filterwarnings("ignore")

#获取北向资金数据
df_data2= ak.stock_em_hsgt_north_acc_flow_in(indicator="北上")
df_data2['value']=df_data2['value'].astype(float)

#指定策略
df_data2['signal']= 0
df_data2['up_line']= 0
df_data2['down_line']= 0
for index,row in df_data2.iterrows():
    if index<252:
        continue
    df_data_temp = df_data2.iloc[index-252:index]
    average = df_data_temp['value'].sum()/252
    std = df_data_temp['value'].std()
    df_data2['up_line'][index]= float(format(average + std * 1,'.4f'))
    df_data2['down_line'][index] = float(format(average - std * 1,'.4f'))
    if df_data2['value'][index] > df_data2['up_line'][index]:
         df_data2['signal'][index] = 1
    elif df_data2['value'][index] < df_data2['down_line'][index]:
        df_data2['signal'][index] = 0


#获取IF指数期货
# IF = ak.get_futures_daily(start_date='20180101',end_date=datetime.datetime.today().strftime('%Y%m%d'),market='CFFEX',index_bar=True)
# IF = IF[IF.symbol=='IC99']

#股票数据,采用北上资金信号
# stock = ak.stock_zh_a_daily(symbol="sz000001", start_date='20180101', end_date = datetime.datetime.today().strftime('%Y%m%d'), adjust="hfq").reset_index()
# stock['date'] = stock['date'].apply(lambda x : datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S').strftime('%Y%m%d'))
# last = pd.merge(df_data2,stock,on='date')

#etf基金
etf = ak.fund_etf_hist_sina(symbol="sz159801")
etf2= ak.fund_etf_hist_sina(symbol="sz159807")
etf['date'] =etf['date'].apply(lambda x:str(x))
etf2['date'] =etf2['date'].apply(lambda x:str(x))
# etf['date'] = etf['date'].apply(lambda x : datetime.datetime.strptime(str(x),'%Y-%m-%d').strftime('%Y%m%d'))
# etf2['date'] = etf2['date'].apply(lambda x : datetime.datetime.strptime(str(x),'%Y-%m-%d').strftime('%Y%m%d'))
# etf['date'] = etf['date'].apply(lambda x : datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S').strftime('%Y%m%d'))
# etf2['date'] = etf2['date'].apply(lambda x : datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S').strftime('%Y%m%d'))
last = pd.merge(pd.merge(df_data2,etf,on='date'),etf2,on='date')

#画图查看资金曲线
last['returns'] = (last['close_x']/last['open_x']-1)+(last['close_y']/last['open_y']-1)
(last['returns']/2 * last['signal'].shift(-1)).cumsum().plot()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号