美文网首页
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