有了之前抓取的数据,我们便可以利用这些数据进行股票分析。(转载请指明出于breaksoftware的csdn博客)
为了便于计算,我决定引入numpy库
代码语言:javascript复制pip install numpy -i http://pypi.douban.com/simple
其实这篇文章并不能告诉大家一个恰到好处且有用的样例。因为之前我分析过,同花顺等分析软件公式存在很多弊端,并不能满足我们复杂的需求。而我目前也没有一个非常准确的模型可以保证盈利。
就举一个简单的例子。只是一种假设:如果30日均线比5日均线高,则不在我们考虑范围之内。
首先我们获取股票的一个周期内的信息
代码语言:javascript复制 def _get_average_info(self, share_id, table_name, period = 0):
stock_conn_manager_obj = stock_conn_manager()
conn_name = stock_conn_manager_obj.get_conn_name(share_id)
periods = [5, 10, 20, 30, 60, 120]
types = ["close_ma", "volume_ma"]
columns = ["time", "today_close", "today_high", "today_low", "today_open", "yesterday_close", "pchg", "turnover_rate", "volume", "turnover"]
for type_item in types:
for period_item in periods:
column_name = "%s%d" % (type_item, period_item)
columns.append(column_name)
extend_str = "order by time desc"
if period > 0:
extend_str = "%s limit %d" % (extend_str, period)
data= fetch_data.get_data(fetch_data.select_db(conn_name, table_name, columns, {}, extend=extend_str))
infos = []
for data_item in data:
info = {}
for index in range(len(columns)):
info[columns[index]] = data_item[index]
infos.insert(0, info)
return infos
然后我们获取当前的均线信息
代码语言:javascript复制 today_close_ma5_info = self._get_history_data(data, index, 0, "close_ma5")
today_close_ma10_info = self._get_history_data(data, index, 0, "close_ma10")
today_close_ma20_info = self._get_history_data(data, index, 0, "close_ma20")
today_close_ma30_info = self._get_history_data(data, index, 0, "close_ma30")
today_close_ma60_info = self._get_history_data(data, index, 0, "close_ma60")
today_close_ma5 = today_close_ma5_info[1]
today_close_ma10 = today_close_ma10_info[1]
today_close_ma20 = today_close_ma20_info[1]
today_close_ma30 = today_close_ma30_info[1]
today_close_ma60 = today_close_ma60_info[1]
然后设置我们筛选条件
代码语言:javascript复制 if today_close_ma30 > today_close_ma20 and today_close_ma30 > today_close_ma10 and today_close_ma30 > today_close_ma5:
return (False, "today(%d) close ma30 is bigger than ma20 ma10 ma5" % index)
这样我们就把不符合规则的数据过滤掉了。
当然不否认这个例子举得并不恰当,因为需求简单所以同花顺公式也能完成。
但是我们有了所有数据后,我们就可以做很多事情。包括同花顺所不具有的“模型回测”功能。
这个项目是去年写的。我让它运行了一个多月,发现系统还是非常稳定的。后来由于种种原因,没有及时把相关说明给补上。
为了补上这些博文,我还将系统重新看了一下。虽然很多地方还不完善,但是一般非特别要求的生产环境还是可以放心使用的。
最后附上Git地址供大家把玩:https://github.com/f304646673/scheduler_frame.git。