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


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

    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

  • 相关阅读:
    手把手玩转win8开发系列课程(5)
    一道百度之星编程大赛题的随笔联想·(2)
    手把手玩转win8开发系列课程(7)
    手把手玩转win8开发系列课程(10)
    一道百度之星编程大赛题的随笔联想·(1)
    手把手玩转win8开发系列课程(6)
    手把手玩转win8开发系列课程(9)
    手把手玩转win8开发系列课程(3)
    Innodb 表修复
    NoSQL之【Redis】学习(二):配置说明
  • 原文地址:https://www.cnblogs.com/mphyfin/p/2098996.html
Copyright © 2020-2023  润新知