目的: 从所有股票中选出符合买入策略的股票.
符合买入条件:
1, 当天 5 日均线数据大于等于 10 日均线数据;
2, 昨天 5 日均线数据小于 10 日均线数据;
3,10 日均线数据处于上升趋势.
代码实现如下:
- import tushare as ts
- import pandas as df
- import datetime
- def getStockHistoryData():
- data = ts.get_hist_data(code = "002456",start = "2019-07-20", end = "2019-7-26", ktype = "D")
- data.to_csv("stockData.csv")
- print(data)
- pass
- def choiceStock():
- """
- :param stockData:
- :return:
- 1, 当天 5 日均线大于 10 日均线;
- 2, 前一天 5 日均线小于 10 日均线;
- """
- stockChoiced = []
- endDate = datetime.datetime.now() #获取当天日期
- offset = datetime.timedelta(days = -3) #设置时间偏移量
- startDate = (endDate + offset).strftime("%Y-%m-%d") #获取 startDate
- endDate = endDate.strftime("%Y-%m-%d")
- stockBasic = ts.get_stock_basics() #获取所有股票数据信息
- stockCode = stockBasic.index #获取所有股票代码
- for i in range(1,30):
- code = stockCode[i] #
- getCondCode = stockChoicTragy(code,startDate,endDate) #获取满足条件的股票信息
- if(getCondCode):
- stockChoiced.append(getCondCode) #将符合条件的股票加入到列表中
- return stockChoiced
- def stockChoicTragy(code,startDate,endDate):
- data = ts.get_hist_data(code = code, start=startDate, end=endDate) #获取指定时间范围内的股票数据
- data = data[["ma5","ma10","ma20"]].sort_index(ascending=False) #按日期升序排列
- ma5Data = data["ma5"] #获取 5 日均线数据
- ma10Data = data["ma10"] #获取 10 日均线数据
- if(len(data)>= 2):
- condition1 = ma5Data[0]>= ma10Data[0] #当天 5 日均线数据大于等于 10 日均线数据
- condition2 = ma5Data[1] <ma10Data[1] #昨天 5 日均线数据小于 10 日均线数据
- condition3 = ma10Data[0]> ma10Data[1] #10 日均线数据呈上升趋势
- if(condition1 and condition2 and condition3):
- return code
- if __name__ == "__main__":
- stock = choiceStock()
- print(stock)
来源: http://www.bubuko.com/infodetail-3135562.html