2016年3月23日水曜日

ヤフー!から取ってきた株価データの分割が面倒なので分割調整後の四本値を出すフィルタ

これはちょっとどうしていいのかよくわかんないので
間に合わせのスクリプト書いた。

#!/usr/bin/perl
use strict;
use warnings;
my @lines = <>;
my $adj=1;
my $adj2=1;
my $spltday="";
for my $line (@lines){
  if ($line=~/\d\d\d\d\/\d\d?\/\d\d?,\D*(\d+\.?\d*)[^0-9\.,]+(\d+\.?\d*)\D*/){
    $adj = $adj2;
    $adj2 = $adj * ((0+$1)/(0+$2));
    $line =~/^(\d+\/\d+\/\d+)\D/;
    $spltday = $1;
    next;
  }
  
  my @cols = split(/,/,$line);
  if ($cols[0] ne $spltday){
    $adj = $adj2;
  }
  map{ $_ *= $adj;}@cols[1..4];
  if ($adj > 0){
   $cols[5]/= $adj;
  }
  print "".join(",",@cols[0..6]);
    #print $line;
}


#アドじゃスタ

こうやって、ひとつひとつ地道に自動化するのである。


0 件のコメント:

コメントを投稿