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

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()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 介绍 任何语言的包,依赖和环境管理:Python,R,Ruby,Lua,Scala,Java,Javascr...
    Himryang阅读 74,500评论 6 67
  • Anaconda是一个优秀的开源Python发布版本,由于中文社区对这个软件的介绍及教程比较少,还是官方文档比较详...
    NorthPenguin阅读 168,355评论 25 166
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,574评论 6 427
  • 未曾想能有机会和你一起走一遭江南看花儿凋零和雨水飘落慢悠悠地享受人间的欢乐 四月是江南的春雨期雨后春笋按捺不住激动...
    强强爱做梦阅读 618评论 1 5
  • 小廖今天早上读了一篇文章,讲的是直觉。直觉能够成事,也能够坏事,就看你怎样来运用了。坏事,主要是错误的直觉,比如说...
    群星咖啡馆阅读 272评论 0 0