Module: Tushare::Stock::Billboard
Overview
龙虎榜数据
Instance Method Summary collapse
-
#broker_tops(days = 5) ⇒ Object
获取营业部上榜统计数据 Parameters ——– days:int 天数,统计n天以来上榜次数,默认为5天,其余是10、30、60 retry_count : int, 默认 3 如遇网络等问题重复执行的次数 pause : int, 默认 0 重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题 Return ——— broker:营业部名称 count:上榜次数 bamount:累积购买额(万) bcount:买入席位数 samount:累积卖出额(万) scount:卖出席位数 top3:买入前三股票.
-
#cap_tops(days = 5) ⇒ Object
获取个股上榜统计数据 Parameters ——– days:int 天数,统计n天以来上榜次数,默认为5天,其余是10、30、60 retry_count : int, 默认 3 如遇网络等问题重复执行的次数 pause : int, 默认 0 重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题 Return —— DataFrame code:代码 name:名称 count:上榜次数 bamount:累积购买额(万) samount:累积卖出额(万) net:净额(万) bcount:买入席位数 scount:卖出席位数.
-
#inst_detail ⇒ Object
Return ———- code:股票代码 name:股票名称 date:交易日期 bamount:机构席位买入额(万) samount:机构席位卖出额(万) type:类型.
-
#inst_tops(days = 5) ⇒ Object
Return ——– code:代码 name:名称 bamount:累积买入额(万) bcount:买入次数 samount:累积卖出额(万) scount:卖出次数 net:净额(万).
-
#top_list(date = Time.now.strftime('%F')) ⇒ Object
Return —— DataFrame code:代码 name :名称 pchange:涨跌幅 amount:龙虎榜成交额(万) buy:买入额(万) bratio:占总成交比例 sell:卖出额(万) sratio :占总成交比例 reason:上榜原因 date :日期.
Methods included from Util
_code_to_symbol, _write_console, _write_head, check_quarter, check_year, fetch_ftp_file, holiday?, trade_cal
Instance Method Details
#broker_tops(days = 5) ⇒ Object
获取营业部上榜统计数据Parameters
days:int
天数,统计n天以来上榜次数,默认为5天,其余是10、30、60
retry_count : int, 默认 3
如遇网络等问题重复执行的次数
pause : int, 默认 0
重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
Return
broker:营业部名称count:上榜次数bamount:累积购买额(万) bcount:买入席位数samount:累积卖出额(万) scount:卖出席位数top3:买入前三股票
99 100 101 102 103 104 105 |
# File 'lib/tushare/stock/billboard.rb', line 99 def broker_tops(days = 5) _check_lhb_input(days) get_data(1, LHB_YYTJ_COLS, lambda do |p| format(LHB_SINA_URL, P_TYPE['http'], DOMAINS['vsf'], LHB_KINDS[1], PAGES['fd'], days, p) end) end |
#cap_tops(days = 5) ⇒ Object
获取个股上榜统计数据Parameters
days:int
天数,统计n天以来上榜次数,默认为5天,其余是10、30、60
retry_count : int, 默认 3
如遇网络等问题重复执行的次数
pause : int, 默认 0
重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
Return
DataFrame
code:代码
name:名称
count:上榜次数
bamount:累积购买额(万)
samount:累积卖出额(万)
net:净额(万)
bcount:买入席位数
scount:卖出席位数
73 74 75 76 77 78 79 |
# File 'lib/tushare/stock/billboard.rb', line 73 def cap_tops(days = 5) _check_lhb_input(days) get_data(1, LHB_GGTJ_COLS, lambda do |p| format(LHB_SINA_URL, P_TYPE['http'], DOMAINS['vsf'], LHB_KINDS[0], PAGES['fd'], days, p) end) end |
#inst_detail ⇒ Object
Return
code:股票代码name:股票名称date:交易日期bamount:机构席位买入额(万) samount:机构席位卖出额(万) type:类型
157 158 159 160 161 162 163 164 165 |
# File 'lib/tushare/stock/billboard.rb', line 157 def inst_detail get_data( 1, LHB_JGMX_COLS, lambda do |p| format(LHB_SINA_URL, P_TYPE['http'], DOMAINS['vsf'], LHB_KINDS[3], PAGES['fd'], '', p) end) end |
#inst_tops(days = 5) ⇒ Object
Return
code:代码name:名称bamount:累积买入额(万) bcount:买入次数samount:累积卖出额(万) scount:卖出次数net:净额(万)
126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/tushare/stock/billboard.rb', line 126 def inst_tops(days = 5) _check_lhb_input(days) get_data( 1, LHB_JGZZ_COLS, lambda do |p| format(LHB_SINA_URL, P_TYPE['http'], DOMAINS['vsf'], LHB_KINDS[2], PAGES['fd'], days, p) end, lambda do |tds| tds = tds.to_a tds[0..1].concat tds[4..8] end) end |
#top_list(date = Time.now.strftime('%F')) ⇒ Object
Return
DataFrame
code:代码
name :名称
pchange:涨跌幅
amount:龙虎榜成交额(万)
buy:买入额(万)
bratio:占总成交比例
sell:卖出额(万)
sratio :占总成交比例
reason:上榜原因
date :日期
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/tushare/stock/billboard.rb', line 29 def top_list(date = Time.now.strftime('%F')) # TODO: 判断日期是否合法 url = format(LHB_URL, P_TYPE['http'], DOMAINS['em'], date, date) resp = HTTParty.get(url) string = resp.body.encode('utf-8', 'gbk').split('_1=').last json = JSON.parse(string) result = [] json['data'].each do |datum| object = {} LHB_COLS.each_with_index do |key, index| object[key] = datum[LHB_TMP_COLS[index]] if %w(buy sell amount Turnover).include? key object[key] = (object[key].to_f / 10000).round(2) end end object['bration'] = (object['buy'] / object['Turnover']).round(2) object['sratio'] = (object['sell'] /object['Turnover']).round(2) object['date'] = date object.delete('Turnover') result << object end result end |