繁簡切換您正在訪問的是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

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2184文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2176文章3177粉丝39

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

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 王启蒙现货黄金

    人气296文章3137粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2328文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4760文章8329粉丝119

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

FX168财经

FX168财经学院

FX168财经

FX168北美