一、交易准则
在开始之前,我们应该了解最基础的交易系统是什么样,明白自己的交易准则是什么,确定一个自己的交易依据。比如以下六个方面:
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))
效果