均线交易策略

目的:从所有股票中选出符合买入策略的股票。

符合买入条件:

1、当天5日均线数据大于等于10日均线数据;

2、昨天5日均线数据小于10日均线数据;

3、10日均线数据处于上升趋势。

代码实现如下:

 1 import tushare as ts
 2 import pandas as df
 3 import datetime
 4 def getStockHistoryData():
 5     data = ts.get_hist_data(code = "002456",start = "2019-07-20", end = "2019-7-26", ktype = "D")
 6     data.to_csv("stockData.csv")
 7     print(data)
 8     pass
 9 
10 def choiceStock():
11     """
12     :param stockData:
13     :return:
14     1、当天5日均线大于10日均线;
15     2、前一天5日均线小于10日均线;
16     """
17     stockChoiced = []
18     endDate = datetime.datetime.now()   #获取当天日期
19     offset = datetime.timedelta(days = -3)  #设置时间偏移量
20     startDate = (endDate + offset).strftime("%Y-%m-%d")  #获取startDate
21     endDate = endDate.strftime("%Y-%m-%d")
22 
23     stockBasic = ts.get_stock_basics()        #获取所有股票数据信息
24     stockCode = stockBasic.index              #获取所有股票代码
25 
26     for i in range(1,30):
27         code = stockCode[i]                    #
28         getCondCode = stockChoicTragy(code,startDate,endDate)  #获取满足条件的股票信息
29         if(getCondCode):
30             stockChoiced.append(getCondCode)                   #将符合条件的股票加入到列表中
31 
32     return stockChoiced
33 
34 def stockChoicTragy(code,startDate,endDate):
35     data = ts.get_hist_data(code = code, start=startDate, end=endDate)  #获取指定时间范围内的股票数据
36     data = data[["ma5","ma10","ma20"]].sort_index(ascending=False)   #按日期升序排列
37     ma5Data = data["ma5"]       #获取5日均线数据
38     ma10Data = data["ma10"]     #获取10日均线数据
39 
40     if(len(data) >= 2):
41         condition1 = ma5Data[0] >= ma10Data[0]    #当天5日均线数据大于等于10日均线数据
42         condition2 = ma5Data[1] < ma10Data[1]    #昨天5日均线数据小于10日均线数据
43         condition3 = ma10Data[0] > ma10Data[1]   #10日均线数据呈上升趋势
44 
45         if(condition1 and condition2 and condition3):
46             return code
47 
48 if __name__ == "__main__":
49     stock = choiceStock()
50     print(stock)

 


posted @ 2019-07-26 23:49  奋斗无止境坚持不懈怠  阅读(1400)  评论(0编辑  收藏  举报