1. 程式人生 > >事件驅動的選股小工具(JQData)

事件驅動的選股小工具(JQData)

昨天發改委下發了《關於積極推進風電、光伏發電無補貼平價上網有關工作的通知》,也不知道對股市是利空還是利多。連夜做了一個搜尋公司經營範圍的小工具,看看那些股票受到影響。
以後還可以增加篩選條件,比如財務指標,剔除ST股票,技術指標…以後再遇到這種類似的事件,就可以很快查詢股票了。

資料來源
聚寬JQData (https://www.joinquant.com/)
資料介面
聚寬JQData (https://www.joinquant.com/)
原始碼如下:

from jqdatasdk import *
import pandas as pd
import datetime
import numpy as np
import time as time
from datetime import datetime

#認證,如果沒有帳號請到聚寬JQData去註冊!!!
auth('帳號','密碼')
#獲取股票列表
st_basics = get_all_securities(types=['stock'], date='2019-01-09')
codes = list(st_basics.index)
st_list = []

#按每隻股票程式碼進行查詢
for code in codes:
    q = query(finance.STK_COMPANY_INFO).filter(finance.STK_COMPANY_INFO.code == code).limit(100)
    df = finance.run_query(q)
    if(len(df.index) == 0):
        continue
    if ( (df['business_scope'].loc[0].find('風能') < 0) & 
        (df['business_scope'].loc[0].find('光伏') < 0) & 
        (df['business_scope'].loc[0].find('太陽能') < 0) & 
        (df['business_scope'].loc[0].find('風力發電') < 0) & 
        (df['business_scope'].loc[0].find('光伏發電') < 0) ):
        continue
    else:
        print((df['code'].loc[0],df['short_name'].loc[0]))
        st_list.append(df['code'].loc[0])

print(st_list)
#選擇市值大於50億小於100億,PE大於0小於50的股票,按市值降序排列
# 當然你也可以根據其他條件排序        
df = get_fundamentals(query(
        valuation.code, valuation.market_cap, valuation.pe_ratio, income.total_operating_revenue
    ).filter(
        valuation.code.in_(st_list),
        valuation.market_cap > 50,
        valuation.market_cap < 100,
        valuation.pe_ratio < 50,
        valuation.pe_ratio >  0,
        #income.total_operating_revenue > 2e10
    ).order_by(
        # 按市值降序排列
        valuation.market_cap.desc()
    ).limit(
        # 最多返回100個
        100
    ), date='2019-01-09')
print(df)

強調:不是推薦股票,僅僅是為了學習研究
在這裡插入圖片描述

感謝聚寬小編 JQData01 給我開放了更多的資料訪問資源
易蠡貢 2019/01/10