从新浪财经上下载交易明细数据并统计每天的买卖笔数

1、下载

如果需要下载多只股票多个交易日的明细数据,可以建立一个地址链接文件。下例给出了下载600001股票2008年1至9月各个交易日的数据需要的链接:

http://market.finance.sina.com.cn/downxls.php?date=2008-0[1-9]-[01-31]&symbol=sh600001

存储地址的文本文件可以命名为downsite

在debian/ubuntu中安装命令行下载工具aria2

sudo apt-get install aria2

cd到下载目标文件夹,shell中输入:

aria2c -Z -P -idownsite

开始下载。

2、文件转换

当一个交易日有数据时,会下载到一个以.xls格式的数据文件;没有数据时,会下载到一个提示性质的文本文件。提示文件中含有关键字“php”,先删除这种文件:

rm *php*

下载到的.xls文件的名称格式是:  sh600001_交易明细_2008-01-03.xls

由于文件名为gbk编码,如果debian/ubuntu环境为utf8,文件名中的汉字会显示乱码,转换文件名的编码方式:

convmv -f gbk -t utf8 -r --notest sh*

文件内容也为gbk编码,转换编码,将.xls数据另存为同名文本文件,同时将文件名中的"-"变为"_"并删除.xls文件:

for file in `ls *明细*`; do
newfile=`echo $file | sed 's/\-/\_/g'` | awk -F. '{print $1}'`;   # 或者更快: newfile=`echo $file | sed 's/\-/\_/g; s/\.xls//'`
iconv -f gbk -t utf8 $file > $newfile;
rm $file;
done

3、提取各只股票买卖交易数据对,并存储到bsdata文件中

经过第2步转换的文本文件格式如下:

成交时间  成交价  价格变动  成交量(手)  成交额(元)  性质
15:00:03  8.38    --       138    115644    买盘
14:59:45  8.38    0.01     20      16760        买盘
14:59:43  8.37    -0.01    256         214271        卖盘
14:59:37  8.38    0.01     7        5866        买盘
14:59:33  8.37    --      311        260306      卖盘

文件名称格式为: sh600001_成交明细_2008_01_02

股票代码信息只在文件名中反映。

将买卖笔数以及股票代码和交易日信息输出到文件中:

for file in `ls *明细*`; do

#统计每个交易日的买笔数:

b=`grep "买" $file | wc -l`

#统计每天的卖笔数:

s=`grep "卖"  $file | wc -l`

echo $file\_$b\_$s | awk -F_ '{print substr($1,3,6),$3,$4,$5,$6,$7}' >> bsdata

end

  对第3步的补充(既统计买卖单笔数,也统计买卖单的交易量和交易额)——2011.7.7

#!/bin/bash
for f in `ls sh*`;do
b=`awk 'BEGIN{x=0;y=0;z=0} $6~/买/{x+=1;y+=$4;z+=$5} END{print x"_"y"_"z}' $f`
s=`awk 'BEGIN{x=0;y=0;z=0} $6~/卖/{x+=1;y+=$4;z+=$5} END{print x"_"y"_"z}' $f`
echo $f"_"$b"_"$s|awk -F_ '{print substr($1,3,6),$3,$4,$5,$6,$9,$7,$10,$8,$11}'>>bs0809
done

转载于:https://www.cnblogs.com/mphyfin/archive/2011/07/06/2098996.html

从新浪财经上下载交易明细数据并统计每天的买卖笔数(shell 命令行)相关推荐

  1. python从Route Views Archieve上下载解析.bz2数据包

    python从Route Views Archieve上下载解析.bz2数据包 1.下载压缩包 2.解压缩包 3.解析解压缩后文件 #encoding:utf-8 import os import r ...

  2. 2021年大数据Hadoop(八):HDFS的Shell命令行使用

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的Shell命 ...

  3. linux shell 宏定义_Linux系统和Shell命令行简介,走上数据分析之路

    122Linux系统和Shell命令行简介,走上数据分析之路 本节作者:刘永鑫 中国科学院遗传与发育生物学研究所 版本1.0.2,更新日期:2020年8月31日 本项目永久地址:https://git ...

  4. 122.Linux系统和Shell命令行简介,走上数据分析之路

    122Linux系统和Shell命令行简介,走上数据分析之路 本节作者:刘永鑫 中国科学院遗传与发育生物学研究所 版本1.0.2,更新日期:2020年8月31日 本项目永久地址:https://git ...

  5. SAP 银企直连 通过 Http Get 方式下载交易明细文件

    前言 SAP 银企直连,农业银行查询接口交易明细会生成固定格式的文本文件到前置机上面. 可以通过Http Get 方式下载. 提示:以下是本篇文章正文内容,下面案例可供参考 一.接口说明与核心代码 & ...

  6. ENVI无法加载从USGS上下载的LANDSAT8数据(MTL)

    目录 问题简述 问题分析 对比 一个可用MTL的模板 重构思路 解决方案 结语 问题简述 一般如果要在ENVI上加载LANDSAT数据,只需要加载对应的MTL文件就可以实现同时加载所有波段文件.但是我 ...

  7. USGS上下载的Landsat数据ENVI无法正常打开解决方法

    方法一 修改所下载数据中MTL的txt文件,将第一行和倒数第二行的LANDSAT改为L1就可以正常打开. 上述方法需要对每一景影像进行修改,数据比较多的时候非常麻烦,后来找到了一个好办法 方法二 下载 ...

  8. 使用jq工具在Shell命令行处理JSON数据

    因为最近要处理一些 JSON 数据格式,一大早经过一番搜索后,最终找到了 jq 这个很棒的工具.jq 允许你直接在命令行下对 JSON 进行操作,包括分片.过滤.转换等等. 首先在mac下安装jq,使 ...

  9. Android app 上传到google play,需要设置 隐私政策声明,kotlin命令行传值

    隐私政策:以下为摘抄百度信息 ============== 本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但 ...

最新文章

  1. 如何编写更好的SQL查询:终极指南-第二部分
  2. log4j:WARN No such property [datePattern] in org.apache.log4j.RollingFileAppender.
  3. asp.net 服务器应用程序不可用
  4. 记录EntityValidationErrors的详细信息
  5. 社区运营破冰也有三大原则八项注意“了,你造吗?
  6. 电商促销活动那么多,美工需要炫酷海报万能模板!可套用!救急必备!
  7. Javascript屏蔽IE和Firefox浏览器默认按键响应(快捷键功能)
  8. DataBase -- JOIN
  9. IMA-ADPCM 算法
  10. 不会做抖音网红快闪PPT?这个插件可以免费一键生成快闪PPT!
  11. sql server代码创建数据库详细过程
  12. ERP系统具有哪些功能?
  13. C语言strtok_r和strtok使用方法
  14. Appium相对坐标定位元素
  15. 英雄之舞—凌波微步(利用async.js编写异步动画)
  16. DNS原理与搭建(一)
  17. Java斗_Java集合练习:斗地主游戏
  18. 电子秤称东西用计算机怎么算,怎样将电子天平或电子秤连接到PC并直接将重量值读取到Excel中...
  19. . : 无法加载文件 C:\Users\1\Documents\WindowsPowerShell\profile.ps1
  20. 11月VR AR投资现状,游戏开发和行业应用受资本青睐

热门文章

  1. 继续咸鱼——2.18
  2. HUST 1588 辗转数对
  3. jQuery 取选中的radio的值方法
  4. 【搜索引擎Jediael开发笔记2】使用HttpClient下载网页至本地文件
  5. 免安装版的MySQL的安装与配置
  6. Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面
  7. android 弹出一个在桌面上出现的window
  8. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
  9. java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to...异常
  10. 为什么在C中需要使用volatile?