numpy+pandas+matplotlib+tushare股票分析
2023-09-14 08:59:07 时间
一.数据导入
安装tushare模块包
pip install tushare
http://tushare.org/
tushare是一个财经数据接口包
import numpy as np import matplotlib as plt import pandas as pd import tushare as ts #获取股票号为601318的股票信息 df=ts.get_k_data("601318") #将数据保存到本地,方便处理 df.to_csv("601318.csv",index=False) #获取数据内的有用列,并将date列作为index df = pd.read_csv("601318.csv",index_col="date")[["open","close","high","low","volume"]]
二.分析股票策略
使用双均线金叉点和死叉点
首先是添加5日均线点,和30日均线点
#获取5日均线,10日均线 df["ma5"]=np.nan df["ma30"]=np.nan # 方式一 # for i in range(4, len(df)): # df.loc[df.index[i], 'ma5'] = df['close'][i-4:i+1].mean() # for i in range(29, len(df)): # df.loc[df.index[i], 'ma30'] = df['close'][i-29:i+1].mean() # 方式二 df["ma5"]=df["close"].rolling(5).mean() df["ma30"]=df["close"].rolling(30).mean()
三.查看数据图形
df[["close","ma5","ma30"]].plot()
四.获取金叉和死叉点
# 获取金叉点,死叉点 golden_cross = [] death_cross = [] for i in range(1, len(df)): if df['ma5'][i] >= df['ma30'][i] and df['ma5'][i-1] < df['ma30'][i-1]: golden_cross.append(df.index[i]) if df['ma5'][i] < df['ma30'][i] and df['ma5'][i-1] >= df['ma30'][i-1]: death_cross.append(df.index[i])
五.计算收益
first_money = 100000 money = first_money hold = 0 # 持有的股票数 sr1 = pd.Series(1, index=golden_cross) sr2 = pd.Series(0, index=death_cross) sr = sr2.append(sr1).sort_index() for i in range(0, len(sr)): p = df['close'][sr.index[i]] if sr.iloc[i] == 1: #金叉 buy = (money // p*100) hold += buy*100 money -= buy*100*p else: money += hold*p hold = 0 p = df['close'][-1] now_money = hold*p + money now_money - first_money
相关文章
- numpy数组扩展函数repeat和tile用法
- Numpy中stack(),hstack(),vstack()函数详解
- Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略
- 成功解决 “this version of pandas is incompatible with numpy < 1.15.4n“ImportError: this version of pand
- Python numpy有什么用?
- windows7 opencv2 numpy 安装
- AI学习之路(6): NumPy的使用
- Py-numpy的随机函数【转载】
- Python之Numpy详细教程
- Python数据分析(一):Pandas、Numpy
- 深入学习Python库中的Pandas 和NumPy
- 【python 6】Numpy
- Numpy实现train_test_split
- Numpy实现UpSampling2D(上采样)
- numpy和matlab的多维数组展平:ravel, flatten, reshape, (:)
- 上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
- 上手Pandas,带你玩转数据(3)-- pandas数据存入文件