美文网首页
Python Day155-163(一眼看到股票买卖点)

Python Day155-163(一眼看到股票买卖点)

作者: TianAff | 来源:发表于2017-11-13 07:12 被阅读0次
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()

相关文章

网友评论

      本文标题:Python Day155-163(一眼看到股票买卖点)

      本文链接:https://www.haomeiwen.com/subject/xieomxtx.html