目的:從所有股票中選出符合買入策略的股票。
符合買入條件:
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)
