Python对股票模型数据分析实例

本文通过Python介绍了一种股票交易策略,包括交易准则、数据获取、处理、可视化和策略测试。使用tushare库获取股票数据,通过计算指标、可视化图表辅助决策,并展示了股价监控邮件通知的实现,但实际下单未自动化。
摘要由CSDN通过智能技术生成

 

一、交易准则

 

在开始之前,我们应该了解最基础的交易系统是什么样,明白自己的交易准则是什么,确定一个自己的交易依据。比如以下六个方面:

1)市场----买卖什么

2)头寸规模----买卖多少

3)入市----何时买入

4)止损----何时退出亏损的头寸

5)止盈----何时退出盈利的头寸

6)离市----何时离市

 

二、简单的示例

 

1)买卖A股

2)全仓

3)当日涨幅超过3%买入。

4)当持有头寸亏损超过3%,平仓

5)当日跌幅大于3%或者三个连续阴线

 

分析: 这个交易策略其实只有在行情以波浪形状向上的行情时候才能获利,如果是盘整的情况下,怕是会亏的很惨。

 

三、数据获取及处理

 

人工炒股要追求信息十分及时化,就太费精力,如果利用Python的话,人工劳累程度会大大降低,信息化程度也会提高。而python语言中用于获取股票行情数据的库,最有名莫过于tushare了。

 

这里以上证乐视的股票为例吧。

 

四、python环境安装

 

安装Anaconda(python2版本)

 

五、安装tushare

pip install tushare

 

六、获取行情数据

import pandas as pd
import tushare as ts

# 通过股票代码获取股票数据,这里没有指定开始及结束日期
df = ts.get_k_data("300104")

# 查看前十条数据
df.head()

# 查看后十条数据
df.tail()

# 将数据的index转换成date字段对应的日期
df.index = pd.to_datetime(df.date)

# 将多余的date字段删除
df.drop("date", inplace=True, axis=1)

 

七、计算常用指标

 

# 计算5,15,50日的移动平均线, MA5, MA15, MA50
days = [5, 15, 50]
for ma in days:
    column_name = "MA{}".format(ma)
    df[column_name] = pd.rolling_mean(df.close, ma)

# 计算浮动比例
df["pchange"] = df.close.pct_change()
# 计算浮动点数
df["change"] = df.close.diff()
df.head()

 

最终处理完成后的结果如下:

 

Out[13]:
open close high low volume code MA5 MA15 MA50 \
date
2013-11-29 9.396 9.741 9.870 9.389 146587.0 300104 NaN NaN NaN
2013-12-02 9.298 8.768 9.344 8.768 177127.0 300104 NaN NaN NaN
2013-12-03 8.142 8.414 8.546 7.890 176305.0 300104 NaN NaN NaN
2013-12-04 8.391 8.072 8.607 8.053 120115.0 300104 NaN NaN NaN
2013-12-05 7.983 7.366 8.108 7.280 253764.0 300104 8.4722 NaN NaN

pchange change
date
2013-11-29 NaN NaN
2013-12-02 -0.099887 -0.973
2013-12-03 -0.040374 -0.354
2013-12-04 -0.040647 -0.342

 

八、可视化

 

1)走势图

所谓一图胜前言,将数据可视化可以非常直观的感受到股票的走势。


个人觉得,如果用程序炒股还是应该一切都量化的,不应该有过多的主观观点,如果过于依赖直觉或者当时心情,那么实在没必要用程序分析了。

 

df[["close", "MA5", "MA15", "MA50"]].plot(figsiz=(10,18))

 

效果

  • 3
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值