多因子选股+指标择时 python3.7+tushare pro

import tushare as ts
import pandas as pd
import time

ts.set_token('**************************')
pro=ts.pro_api()
# 获取股票池
hs300_all_stock = []

stocks = []

df = pro.index_weight(index_code='399300.SZ', start_date='202011011')

hs300_all_stock = df['con_code'].values.tolist()

index_num = []

for i in range(len(hs300_all_stock)):
	
	index_num.append(i)

data=pd.DataFrame(index=index_num,columns=['code','turn_over','total_mv','attack'])

data.code = hs300_all_stock
# 获取股票池所有股票信息    len(hs300_all_stock)
for num in range(100):
		#turn_over:换手率  total_mv:总市值   attack:攻击波
	stock_data = pro.bak_daily(ts_code = data.code[num],start_date = '20201110',\
	end_date = '20201111',fields='turn_over,total_mv,attack')
	data.turn_over[num] = stock_data['turn_over'][0]
	data.total_mv[num] = stock_data['total_mv'][0]
	data.attack[num] = stock_data['attack'][0]
	time.sleep(6)
data.to_excel('沪深300换手率冲击波1.xlsx')
# 通过市值升序排列 取100个,通过换手率降序排列取出前30,通过攻击波取前10名,短线操作
data.sort_values(by=["total_mv"],ascending=True)
data1 = data.head(int(len(data)/3))  

data1.sort_values(by=["turn_over"],ascending=False)
data2 = data1.head(int(len(data1)/3))    

data2.sort_values(by=["attack"],ascending=False)
data3 = data2.head(int(len(data2)/3))  

stocks = data3['code'].values.tolist()   
print(stocks)
# 获取十日平均,和5日平均,及当前价
for stock in stocks:
	df1 = pro.daily(ts_code=stock, start_date='20201001', end_date='20201111')
	
	df1=df1.sort_values(by=["trade_date"],ascending=True)

	df1.index = df1.iloc[:,1]

	df1.index = pd.to_datetime(df1.index,format='%Y-%m-%d')

	data4 = pd.DataFrame(index=df1.index,columns=['close','mean5','mean10'])
	
	data4['close'] = df1.close
	
	data4['mean5']=data4.close.rolling(5).mean()
	
	data4['mean10']=data4.close.rolling(10).mean()

	if data4['close'][-1] < data4['mean5'][-1] and data4['close'][-1] < data4['mean5'][-1]:
		
		stocks.remove(stock)

print(stocks)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaojieming1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值