繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168財經網>人物頻道>帖子

打板小助手v.1.6.1

作者/fjsdjfs 2019-10-05 20:00 0 來源: FX168財經網人物頻道
from jqdata import *
import datetime
import pandas as pd
import numpy as np
import re
from collections import Counter

today_date = str(datetime.datetime.now()).split(' ')[0]

# Get the trading days calendar list
td_list = list(get_all_trade_days())

# Get current stock existing as of date specified
get_stock_list = get_all_securities(date=today_date)
stock_index = get_stock_list.index

# Iterating counter that will be used in DataFrame
k=0

# check if today is trading day
# inititialize day counter
d0 = 0

for i in range(len(td_list)):
    if str(td_list[i]) == today_date:
        d0 = i
        print('今天為交易日,日期為:', td_list[d0], '\n')
if d0 == 0:
    for i in range(20):
        date = str((datetime.datetime.now() + datetime.timedelta(days=-i)).strftime("%Y-%m-%d %H:%M:%S")).split(' ')[0]
        for j in range(len(td_list)):
            if str(td_list[j]) == date:
                d0 = j
                print('今日為非交易日,輸出上一交易日數據,上一交易日為', td_list[d0], '\n')
        if d0 != 0:
            break
        # Check if today's trading data is updated by database
start_date = td_list[d0]
end_date = td_list[d0]
check_data = get_money_flow('000001.XSHE', start_date, end_date, ["date", "sec_code", "change_pct"])
if len(check_data) == 0:
    start_date = td_list[d0 - 4]
    end_date = td_list[d0 - 1]
    print('今日數據尚無,輸出上交易數據,上一交易日為:', end_date, '\n')
else:
    start_date = td_list[d0 - 3]
    end_date = td_list[d0]
# create a dataframe here first to prepare for further analysis

df = pd.DataFrame(np.zeros([9,len(stock_index)]), index=['當日漲停','連板','今日漲幅','上交易日漲幅','行業','概念','市值(億)','市盈','市淨'])

# Iterate all the stocks
for i in range(len(stock_index)):
    # Get rise and fall of all stock
    get_stock_rise_fall = get_money_flow(stock_index[i], start_date, end_date, ["date", "sec_code", "change_pct"])
    # Get the stock with rise more than 9.9 on the end date, also make sure not empty
    if len(get_stock_rise_fall.change_pct) == 4 and get_stock_rise_fall.change_pct[3] >= 9.9 and \
            get_stock_rise_fall.change_pct[3] < 10.1:
        count = -1
        # check for consecutive rise limit, max check= 30 previous trade days
        for j in range(30):
            day0 = td_list[d0]
            day_b30 = td_list[d0 - 30]
            get_stock_rise_fall_c = get_money_flow(stock_index[i], day_b30, day0,
                                           ["date", "sec_code", "change_pct"])
            if get_stock_rise_fall_c.change_pct[len(get_stock_rise_fall_c) - j - 1] >= 9.9 and \
                    get_stock_rise_fall_c.change_pct[len(get_stock_rise_fall_c) - j - 1] < 10.1:
                count += 1
            else:
                break
                # Get industry of the stock
        industry = get_industry(stock_index[i], date=end_date)
        concept = get_concept(stock_index[i], date=str(end_date))
        industry_list = []
        concept_list = []
        for item1 in industry[stock_index[i]]:
            industry_list.append(industry[stock_index[i]][item1]['industry_name'])
        for item2 in concept[stock_index[i]]['jq_concept']:
            concept_list.append(item2['concept_name'])
        # query for company info
        q = query(
            valuation
        ).filter(
            valuation.code == stock_index[i]
        )
        fundamentals = get_fundamentals(q, end_date)

        pe = fundamentals['pe_ratio'][0]
        pb = fundamentals['pb_ratio'][0]
        value = fundamentals['market_cap'][0]
        print('當日漲停: ', stock_index[i], '\n',
              '連板:', count, '今日漲幅: ', get_stock_rise_fall.change_pct[3], '上交易日漲幅:', get_stock_rise_fall.change_pct[2],
              '\n',
              '行業:', industry_list, '\n',
              '概念:', concept_list, '\n',
              '市值(億):', value, '市盈:', pe, '市淨:', pb, '\n'
              )
# write data into DataFrame        
        df.iloc[0,k] = stock_index[i]
        df.iloc[1,k] = count
        df.iloc[2,k] = get_stock_rise_fall.change_pct[3]
        df.iloc[3,k] = get_stock_rise_fall.change_pct[2]
        df.iloc[4,k] = str(industry_list)
        df.iloc[5,k] = str(concept_list)
        df.iloc[6,k] = value
        df.iloc[7,k] = pe
        df.iloc[8, k] = pb
        k = k+1
print('\n', '當日漲停板輸出完成', '\n')

print('\n', '開始漲停板特征分析', '\n')

# draw concept & industry data from DataFrame

industry_str =str(df.iloc[4,:])
concept_str =str(df.iloc[5,:])

# string processing, remove punctuation and letters

industry_str = industry_str.split(' ')
ind_list=[]
for i in range(len(industry_str)):
    industry_str[i] = re.sub("[A-Za-z0-9\!\%\[\]\,\。 \n-:,,、]", "", industry_str[i])
    if industry_str[i] != '':
        ind_list.append(industry_str[i])

# first tag counting
c = Counter(ind_list)
industry1=c.most_common(1)[0][0]
for item in ind_list:
    if item == industry1:
       ind_list.remove(industry1)

# second tag counting   
c = Counter(ind_list)
industry2=c.most_common(1)[0][0]
print('第一行業特征為(最多tag匹配):',industry1,'\n','第二行業特征為(第二最多tag匹配):',industry2, '\n')

# similiar processing, tag counting, etc.
concept_str=concept_str.split(' ')
con_list=[]
for i in range(len(concept_str)):
    concept_str[i] = re.sub("[A-Za-z0-9\!\%\[\]\,\。 \n-:,,、]", "", concept_str[i])
    if concept_str[i] != '':
        con_list.append(concept_str[i])
c = Counter(con_list)
concept1=c.most_common(1)[0][0]

for item in con_list:
    if item == concept1:
       con_list.remove(concept1)
c = Counter(con_list)
concept2=c.most_common(1)[0][0]
print('第一概念特征為(最多tag匹配):',concept1,'\n','第二概念特征為(第二最多tag匹配):',concept2,'\n')
今日為非交易日,輸出上一交易日數據,上一交易日為 2019-09-30 

當日漲停:  002504.XSHE 
 連板: 1 今日漲幅:  10.09 上交易日漲幅: 10.07 
 行業: ['裝修裝飾II', '工業指數', '建築與工程指數', '建築裝飾I', '建築裝飾和其他建築業', '裝修裝飾III'] 
 概念: ['裝飾園林', '低價小市值', '員工持股', '半導體'] 
 市值(億): 35.8004 市盈: -69.1783 市淨: 3.9392 

當日漲停:  002552.XSHE 
 連板: 0 今日漲幅:  9.99 上交易日漲幅: 4.51 
 行業: ['通用設備制造業', '機械設備I', '工業指數', '機械基礎件III', '建築機械與重型卡車指數', '通用機械II'] 
 概念: ['預增', '領漲龍頭', '摘帽', '金融改革', '觸板', '國資入股', '員工持股', '股權轉讓', '磁懸浮列車', '船舶'] 
 市值(億): 59.3478 市盈: 104.4433 市淨: 9.0306 

當日漲停:  002942.XSHE 
 連板: 2 今日漲幅:  10.01 上交易日漲幅: 10.0 
 行業: ['材料指數', '化學原料和化學制品制造業', '化工I', '化學制品II', '農藥III', '化肥與農用化工指數'] 
 概念: ['領漲龍頭', '新股'] 
 市值(億): 41.676 市盈: 28.8659 市淨: 4.8021 

當日漲停:  300365.XSHE 
 連板: 0 今日漲幅:  10.02 上交易日漲幅: -1.58 
 行業: ['信息技術指數', '計算機I', 'IT服務III', '計算機應用II', '應用軟件指數', '軟件和信息技術服務業'] 
 概念: ['智能電網', '基金重倉', '富時羅素概念', '泛在電力物聯網', '在線教育', '特高壓', '質押式回購', '配電網'] 
 市值(億): 91.1182 市盈: 31.4001 市淨: 4.8012 

當日漲停:  300729.XSHE 
 連板: 2 今日漲幅:  10.0 上交易日漲幅: 9.99 
 行業: ['家庭用品指數', '可選消費指數', '其他家用輕工III', '家具制造業', '輕工制造I', '家用輕工II'] 
 概念: ['出口型企業', '領漲龍頭'] 
 市值(億): 26.3337 市盈: 51.7203 市淨: 3.5064 

當日漲停:  300790.XSHE 
 連板: 5 今日漲幅:  9.99 上交易日漲幅: 10.0 
 行業: ['計算機、通信和其他電子設備制造業', '光學光電子II', '電子I', '光學元件III'] 
 概念: ['新股'] 
 市值(億): 52.9602 市盈: 51.2352 市淨: 4.6867 

當日漲停:  600146.XSHG 
 連板: 0 今日漲幅:  9.99 上交易日漲幅: -9.8 
 行業: ['服裝、服飾與奢侈品指數', '紡織服裝I', '服裝家紡II', '可選消費指數', '女裝III', '紡織服裝、服飾業'] 
 概念: ['重組', '出口型企業', '大消費', '業績爆雷', '員工持股', '質押式回購', '融資融券', '碳纖維'] 
 市值(億): 89.4823 市盈: -4.3361 市淨: 9.1796 

當日漲停:  600387.XSHG 
 連板: 0 今日漲幅:  10.07 上交易日漲幅: 6.1 
 行業: ['能源指數', '石油貿易III', '批發業', '化工I', '石油化工II', '石油與天然氣的煉制和銷售指數'] 
 概念: ['舟山新區', '富時羅素概念', '標普道瓊斯概念', '尾氣治理', '油氣改革', '證金概念', '融資融券', '成品油', '油品升級', '天然氣'] 
 市值(億): 39.7241 市盈: 8.169 市淨: 1.3375 

當日漲停:  603042.XSHG 
 連板: 0 今日漲幅:  10.02 上交易日漲幅: 1.39 
 行業: ['通信傳輸設備III', '通信I', '信息技術指數', '計算機、通信和其他電子設備制造業', '通信設備指數', '通信設備II'] 
 概念: ['寬帶提速', '5G', '融資融券', '通信設備', '光纖'] 
 市值(億): 24.0448 市盈: -20.3581 市淨: 3.1202 

當日漲停:  603557.XSHG 
 連板: 0 今日漲幅:  10.04 上交易日漲幅: 0.0 
 行業: ['紡織服裝I', '服裝家紡II', '可選消費指數', '鞋帽III', '鞋類指數', '皮革、毛皮、羽毛及其制品和制鞋業'] 
 概念: ['合資企業', '二胎政策', '可轉債'] 
 市值(億): 41.5908 市盈: 23.3576 市淨: 2.5326 

當日漲停:  603607.XSHG 
 連板: 0 今日漲幅:  9.99 上交易日漲幅: 4.39 
 行業: ['材料指數', '造紙和紙制品業', '輕工制造I', '包裝印刷II', '包裝印刷III', '紙制品指數'] 
 概念: ['知識產權'] 
 市值(億): 28.6519 市盈: 29.5073 市淨: 3.7136 

當日漲停:  603683.XSHG 
 連板: 1 今日漲幅:  10.01 上交易日漲幅: 10.02 
 行業: ['特種化工指數', '材料指數', '化學原料和化學制品制造業', '其他化學制品III', '化工I', '化學制品II'] 
 概念: ['中非合作概念'] 
 市值(億): 19.8999 市盈: 203.1239 市淨: 2.4994 

當日漲停:  603927.XSHG 
 連板: 13 今日漲幅:  10.0 上交易日漲幅: 10.0 
 行業: ['信息技術指數', '計算機I', '計算機應用II', '應用軟件指數', '軟件和信息技術服務業', '軟件開發III'] 
 概念: ['新股', '科技龍頭'] 
 市值(億): 375.0704 市盈: 106.8438 市淨: 21.206 

當日漲停:  603933.XSHG 
 連板: 2 今日漲幅:  10.03 上交易日漲幅: 10.03 
 行業: ['工業指數', '計算機、通信和其他電子設備制造業', '工業機械指數', '集成電路III', '半導體II', '電子I'] 
 概念: ['機電產品', '合資企業', '領漲龍頭', '制造業單項冠軍企業'] 
 市值(億): 41.2931 市盈: 63.6791 市淨: 3.9822 


 當日漲停板輸出完成 


 開始漲停板特征分析 

第一行業特征為(最多tag匹配): 工業指數 
 第二行業特征為(第二最多tag匹配): 材料指數 

第一概念特征為(最多tag匹配): 領漲龍頭 
 第二概念特征為(第二最多tag匹配): 新股 

 
分享到:
舉報財經168客戶端下載

全部回複

0/140

投稿 您想發表你的觀點和看法?

更多人氣分析師

  • 張亦巧

    人氣2208文章4145粉絲45

    暫無個人簡介信息

  • 張迎妤

    人氣1904文章3305粉絲34

    個人專注於行情技術分析,消息面解讀剖析,給予您第一時間方向...

  • 指導老師

    人氣1864文章4423粉絲52

    暫無個人簡介信息

  • 李冉晴

    人氣2320文章3821粉絲34

    李冉晴,專業現貸實盤分析師。

  • 梁孟梵

    人氣2184文章3177粉絲39

    qq:2294906466 了解群指導添加微信mfmacd

  • 王啟蒙現貨黃金

    人氣312文章3409粉絲8

    本人做分析師以來,並專注於貴金屬投資市場,尤其是在現貨黃金...

  • 金泰鉻J

    人氣2328文章3925粉絲51

    投資問答解咨詢金泰鉻V/信tgtg67即可獲取每日的實時資訊、行情...

  • 金算盤

    人氣2696文章7761粉絲125

    高級分析師,混過名校,廝殺於股市和期貨、證券市場多年,專注...

  • 金帝財神

    人氣4760文章8329粉絲119

    本文由資深分析師金帝財神微信:934295330,指導黃金,白銀,...

FX168財經

FX168財經學院

FX168財經

FX168北美