每周星期四坚持分析一本好书,包括数据分析,股票财经,技术分析等书籍,
有很多好的书籍还没有时间去阅读,学习,有时间去研究研究
分享的书籍仅供学习,交流,不得用于商业用途,如果作者认为侵权可以联系我删除。
需要书籍关注微信公众号,数据分析与运用,回复量化投资以python为工具就可以了
现在量化投资支持的比较少,有很多库在现在的编译器下运行不了,比如zipline,阿布,abu,,只能在量化平台运行,比如国泰君安,聚宽等,今天在朋友的介绍下在研究金字塔,因为它下面直接有一个用python写的程序支持自动交易,在研究,刚刚开始,还有一个目前知道天勤量化有交易支持,刚刚开始学习,虽然一直写模拟策略,但是没有实盘对接,还是缺少了灵魂,感谢这一路的帮助者。我们看一下这本书,写得非常不错,内容用金融知识,但是有一点,其中有一些编写比较老,但是思想很宝贵。
我们看一下有时间系列分析,金融模型,技术指标分析,交易策略。
下面为我跟书写的一下代码,供学习
import tkinter
import akshare as ak
import arch
import easyquant
import finta
from finta import TA
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import quantstats
import scipy
import seaborn
import statsmodels
import MyTT
import statsmodels.api as sm
from arch.unitroot import ADF
from statsmodels.formula.api import ols
from statsmodels.stats import anova
from statsmodels.tsa import stattools
from statsmodels.tsa.api import ARIMA, ExponentialSmoothing,arma_order_select_ic
#paf中国银河
plt.rcParams['font.family']='SimHei'
plt.rcParams['axes.unicode_minus']=False
import akshare as ak
df=ak.stock_zh_a_daily(symbol='sh600031',start_date='20210101')
df.index=pd.to_datetime(df['date'])
#rsi指标写
def rsi(price,period=6):
clprchange=price-price.shift(1)
clprchange=clprchange.dropna()
indexprc=clprchange.index
upprc=pd.Series(0,index=indexprc)
upprc[clprchange>0]=clprchange[clprchange>0]
downprc=pd.Series(0,indexprc)
downprc[clprchange<0]=-clprchange[clprchange<0]
rsidata=pd.concat(df.close,clprchange,upprc,downprc)
rsidata.columns=['close','prcchange','upprc','downprc']
rsidata.dropna()
print(rsidata)
#检测超卖和超卖,大于80超买,可能下降,
#小于20超卖,困难回归上升
log=[]
rsi_data=TA.RSI(df)
def cover_buy_sell():
for i in rsi_data:
if i>=80:
log.append('超买,注意风险')
elif i<=20:
log.append('超卖,关注回升')
else:
log.append('指标无效')
df['rsi_log']=log
df['RSI']=rsi_data
print(df)
#检测黄金交叉和死亡交叉
#我们定义6日为短期,24日为长期
def check_buy_sell_hj():
rsi_6=TA.RSI(df,period=6)
rsi_24=TA.RSI(df,period=24)
lagrsi6=rsi_6.shift(1)
lagrsi24=rsi_24.shift(1)
#买卖记录
buy_sell_log=[]
for i in range(len(rsi_6.tolist())):
if rsi_6.tolist()[i]>rsi_24.tolist()[i] and lagrsi6.tolist()[i]<lagrsi24.tolist()[i]:
buy_sell_log.append('黄金交叉,买入')
elif rsi_6.tolist()[i]<rsi_24.tolist()[i] and lagrsi6.tolist()[i]>lagrsi24.tolist()[i]:
buy_sell_log.append('死叉,卖出')
else:
buy_sell_log.append('无')
df['金叉和死叉']=buy_sell_log
print(df)
check_buy_sell_hj()