DAY 155-163 2017.11.4-2017.11.12
Windows下装Anaconda
Anaconda包含有超过720个关于科学,数据,工程和数据分析的Python和R包,如果不想在电脑里安装过多的包,你可以使用miniconda,它包含了conda,它的依赖包以及Python包。
Anaconda官网下载地址
Anaconda package lists
然而从官网下载的速度实在太慢了!!!!!!!!!!!
我的环境:win7;我下载了Python2.7,32位以及Python3.6,32位
- 从清华镜像下载anaconda,选择合适的版本
- 下载安装包后安装的步骤和普通软件一样,而且最好按照默认选项进行安装
- 实际上,Anaconda2安装完成后,在Spyder中编写程序,print不出来任何东西,并且不断报错报错:LookupError: unknown encoding: cp0。上网搜索解决方法,其中一个网友也有类似的经历,便采用了TA的方法,卸载了Anaconda2,重新安装Anaconda3,结果总算运行出来了。
python程序化股票分析
R版——Python小白社群之程序化股票分析
Python版——Python小白社群之python分析股票的买点来挣钱
一眼看到股票买卖点
python大大提供的代码前几行是这样的:
import sys
import os
reload(sys)
sys.setdefaultencoding('utf-8')
因为我用的python3,前面几行需要做出修改,不然会出现AttributeError,NameError不断出错,修改后代码如下:
#!/usr/bin/python
# -*- encoding: utf-8
import sys
import importlib
importlib.reload(sys)
import matplotlib as mpl
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
cn=1
cnb=1
def rowIndex(row):
global plt,cn,cnb
buyt=0.5
buyb=0.5
if row.signal> 0:
plt.annotate(u'买', xy=(row.date_o, row.signal),arrowprops=dict(facecolor='red', shrink=0.05))
if cn==1:
buyt=1
cn = -1
else:
buyt=0.5
cn=1
plt.annotate(str(row.date_o).replace("-","")[2:8], xytext=(row.date_o, row.signal+buyt), xy=(row.date_o, row.signal+0.5),arrowprops=dict(facecolor='red', shrink=0.5))
if row.signal < 0:
plt.annotate(u'卖', xy=(row.date_o, row.signal))
if cnb==1:
buyb=1
cnb = -1
else:
buyb=0.5
cnb=1
plt.annotate(str(row.date_o).replace("-","")[2:8], xytext=(row.date_o, row.signal-buyb), xy=(row.date_o, row.signal+0.5),arrowprops=dict(facecolor='red', shrink=0.5))
if __name__ == "__main__":
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = False
dateparse1 = lambda dates: pd.datetime.strptime(dates, '%Y-%m-%d')
s_list = pd.read_csv("./kd.csv",skiprows=0, encoding='utf-8', index_col='date', parse_dates=True,
date_parser=dateparse1)
s_list["date_o"]=s_list.index
s_list["ma_sub"]=s_list["ma5"] - s_list["ma20"]
s_list['diff'] = np.sign(s_list['ma_sub'])
s_list['signal'] = np.sign(s_list['diff'] - s_list['diff'].shift(1))
s_list['signal'].plot(ylim=(-2, 2))
(s_list['close']/40).plot(ylim=(-2, 2))#将收盘价缩小范围,便于画图比较
s_list.apply(rowIndex, axis=1)
plt.legend(loc='upper right')
plt.grid(b=True)
plt.show()