読者です 読者をやめる 読者になる 読者になる

53歳限界プログラマの憂鬱

SU/CAR-ST-APplication-cellsから派生したプログラマのブログ

本家はこちら↓
f:id:sucar:20151115183011p:plain

SU/CAR-ST-APplication-cellsの安倍野ミックスと申します
来訪ありがとうございます
シストレツールを自作してます

f:id:sucar:20150414193802p:plain

にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村 IT技術ブログ C/C++へ
にほんブログ村 株ブログ 株日記(アフィリなし)へ
←ランキングに
1票お願いします

awkさまさま

最近AWKが大活躍です

過去記事のメタプログラム的なシリーズでもチョチョイとAWKスクリプト書いてますが、

 

 

 

更にチョチョイとcsvデータ変換プログラムを書きました

株のシステムトレードの運用は、まず株価データを入手するところから始まります

あるところからcsv形式でダウンロードできるのですが、時々トラブルでダウンロードできないことがあります(過去2回経験)

そういう時は、別のところから代用データをダウンロードしますが、データのフォーマットが異なります

前回はエクセルで、ちまちま手作業でフォーマット整えたのですが、

「あ、awkでやれば早いかも」と思いチョチョイとプログラムしたところうまくいった感じです

f:id:sucar:20150816214032p:plain

↑これを 変換して

f:id:sucar:20150816214110p:plain

こうするとそのまま使える

AWKプログラムはこんな感じ

#!/bin/awk
BEGIN {
  FS=","
  print "henkan"
  print "コード,市場,銘柄名,業種,始値,高値,安値,終値,出来高,売買代金"
}
# 1,2行目を無視
NR>2 {
  printf("%s-T,",$2)
  printf("dummy,")
  printf("dummy,")
  printf("dummy,")
  if ($4==0) {printf("-,")}
  else {printf("%s,",$4)}
  if ($5==0) {printf("-,")}
  else {printf("%s,",$5)}
  if ($6==0) {printf("-,")}
  else {printf("%s,",$6)}
  if ($7==0) {printf("-,")}
  else {printf("%s,",$7)}
  printf("%s,",$8)
  printf("%d\n",($4+$7)*$8/2) #売買代金=(始値+終値)*出来高/2で代用
}

END {}

いやぁ、awkって便利