Skip to main content

get stock data from different APIs and Analyze Stock Data

Project description

EZFintech

Pypi: ezfintech

1. Introduction

沪深股票数据

  • 数据来源包括: Netease,Sohu,StockStar
  • 数据API(ezfintech.stockData)
    • 日数据(当日、4日数据)
    • 年数据(一年的数据)
    • 周期数据(日/周/月数据)
    • 区间数据(起止日期内的数据)
    • 实时数据(未开发)
    • 多只股票合表数据(未开发)
  • 数据可视化(ezfintech.stockVisualization)
    • K线图
    • 金叉死叉
    • 布林带
  • 数据分析(ezfintech.stockAnalysis)
    • 回归分析
    • 相关性分析
  • 股票金融相关知识(ezfintech.stockKnowledge)
  • 股票模型(ezfintech.stockAlgorithms.EZLSTM)

2. 依赖包

numpy,pandas,matplotlib,requests,mplfinance,pandas_datareader

3. 使用方式

3.1 安装

python pip install ezfintech

3.2 导入

import ezfintech.stockData as ezd
import ezfintech.stockAnalysis as eza
import ezfintech.stockVisualization as ezv
import ezfintech.stockKnowledge as ezk
import ezfintech.stockModels.EZLSTM as ezm

3.3 使用

(1) 获取股票数据


  • 日数据
ezd.getStockByDay(stockCode,day="today",source="126")  
stockCode:"XXXXXXX"
day: "today" / "4d"  
source: "126"  
  • 年数据
ezd.getStockByYear(stockCode,year="2020",adjust="klinederc",source="126")  
stockCode:"XXXXXXX"
year: "YYYY"   
adjust: "kline" / "klinederc"    
source: "126"  
  • 周期数据
ezd.getStockByPeriod(stockCode,period="week",adjust="klinederc",source="126")  
stockCode:"XXXXXXX"
period: "day" / "week" / "month"  
adjust: "kline" / "klinederc"   
source: "126" / "stockstar"  
  • 区间数据
ezd.getStockByTwoDate(stockCode,startDate="20210301",endDate="20210308",source="sohu")  
stockCode:"XXXXXX"
startDate: "YYYYMMDD"  
endDate: "YYYYMMDD"  
source: "sohu"  
  • 获取FamaFrench因子数据
ezd.getFamaFrenchFactors(ffType="3factors",startDate="",endDate="")  
ffType: 3factors/5factors  
startDate: "YYYY-MM-DD"  
endDate: "YYYY-MM-DD"  

(2) 股票数据可视化


  • K线图
ezv.plotKLine(data,movingAvg=(3,6,9),plotType="candle",startDate="",endDate="")  
data: pd.Dataframe  
movingAvg: (X1,X2,X3) or X1    
plotType: "candle" / "line" / "renko" / "pnf"  
startDate: "YYYY-MM-DD"  
endDate: "YYYY-MM-DD"  
  • 金叉死叉
ezv.plotDoubleCross(data,priceType="Close",movingAvg=(5,40),startDate="",endDate="",returnData=False)  
data: pd.DataFrame with Date(index), Open/High/Low/Close/Volume(Columns)  
priceType: Close/Adj Close/Open/High/Low  
movingAvg: (period1,period2)  
startDate: "YYYY-MM-DD"   
endDate: "YYYY-MM-DD"  
returnData: True/False  
  • 布林带
ezv.plotBollingerBand(data,priceType="Close",n=2,movingAvg=40,startDate="",endDate="",returnData=False)  
data: pd.DataFrame with Date(index), Open/High/Low/Close/Volume(Columns)  
priceType: Close/Adj Close/Open/High/Low  
n: how many times of deviation   
movingAvg: period  # 移动平均时间  
startDate: "YYYY-MM-DD"  
endDate: "YYYY-MM-DD"  
returnData: True/False  

(3) 股票数据分析


  • 双股票回归分析
eza.regression2Stocks(stock1,stock2,startDate="",endDate="",regressDeg=1)  
stock1/stock2: pd.DataFrame with Date(index), Open/High/Low/Close/Volume(Columns)  
startDate: "YYYY-MM-DD"  
endDate: "YYYY-MM-DD"  
regressDeg: num  # 线性回归的次方  
  • 自定义OLS分析
eza.OLS(X,Y)  
Y: T x 1  
X: T x N  
  • 双股票相关性分析
eza.correlation2Stocks(stock1,stock2,startDate="",endDate="")  
stock1/stock2: pd.DataFrame  
startDate: "YYYY-MM-DD"  
endDate: "YYYY-MM-DD"  
regressDeg: num  

(4) 股票知识


  • 股票知识
ezk.getStockKnowledge()  
  • 金融分析知识
ezk.getFinanceAnalysisKnowledge()  
  • 量化投资知识
ezk.getQuantitativeInvestmentKnowledge()  

(4) 股票模型


  • LSTM
ezm.EZLSTM(outputSize, returnSequence)  
outputsize: XX   # 数字  
returnSequence: False/True  

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezfintech-0.0.331.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

ezfintech-0.0.331-py3-none-any.whl (12.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page