利用tushare選股票

聽完朋友的“天眼地量”選股理論後,熱血沸騰,打算找一隻股票試試。可以整個股票市場有3600+只股票怎麼找呢?不急,我們有python3和tushare。先上代碼

import time
import datetime
import tushare as ts
import numpy as np
import pandas as pd
import csv 
import pandas_datareader.data as web 
from sqlalchemy import create_engine 
import pymysql
import winsound

duration = 500  # millisecond
freq = 440  # Hz
path = 'C:/Users/Administrator/Desktop/stockpy/'
csv_file = path + 'StockList.csv'

ts.set_token('sfdsdfs')
pro = ts.pro_api()

def get_stock_list():
    data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
    # data.to_csv(csv_file)

def get_daily_data():
    csv_data = pd.read_csv(csv_file, low_memory = False)#防止彈出警告
    list_df = pd.DataFrame(csv_data)
    row = list_df.shape[0] #
    today = datetime.datetime.today().date()
    # for i in range(3):
    for i in range(row):
        bar_df = ts.pro_bar(ts_code=str(list_df.iloc[i,1]), start_date='20180701', end_date=str(today),
                            ma=[5, 10, 20, 30, 60])
        print(list_df.iloc[i,1])
        tmp_df = bar_df.sort_values(axis = 0, ascending = True, by = 'trade_date')
        # print(tmp_df.head(3))
        tmp_df = tmp_df.reset_index(drop = True)
        # print(tmp_df.head(3))
        tmp_df.to_csv(path + 'bar_' + str(list_df.iloc[i,1]) + '.csv')
        winsound.Beep(freq, duration)

def run():
    get_stock_list()
    get_daily_data()
    winsound.Beep(880, 1000)

if __name__ == '__main__':
    run()

兩個function,get_stock_list用來獲取當天有效的股票列表信息,保存到csv文件。get_daily_data用來獲取所有有效股票的日線數據。因爲“天眼地量”理論要用到日線、均線和量能,所以選擇了5日、10日、20日、30日和60日的均線數據和對應的量能。每次下載完一隻股票後,就提示一聲winsound.Beep(freq,duration)。因爲tushare設定每分鐘只能獲取不超過200只股票的數據,我就是設定了提示音響的時間爲500ms。經過實測,在半小時左右就可以獲取完所有股票的數據了。

後面就是對每隻股票進行分析篩選了,代碼還沒有想出來:(。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章