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

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

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

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

f:id:sucar:20150414193802p:plain

anaint07.c と car_cr07 データフレーム出力しR言語へ引き渡し(1)

(2016/3/6 改定)car_cr07で事前にルールを選べるようにしたが、実運用はcar_cr07d3を使うようにしたい

----------

しばらくブログ更新が止まったが、開発はかなり進んだ(まだテストバージョンだが)

基本的に新システムでは

C言語⇒(AWK)⇒R言語

というデータの流れで、すべてを賄う方式に統一しようと思っているので、まずはC言語R言語で読み込めるデータフレームを出力するプログラムを達磨コマンドであるreadstock0.cを発展させて作成

anaint07.c

(中身は省略)

名前はあんまり適当じゃないような感じだけど、旧システムのanaint06.c のバージョンUPということで、、、

(anaintの意味は、整数(int)データだけで解析(analyze)するってことだけどさすがにintだけは無理だった)

まだまだ開発途中でデータフレームも最終形ではないですが、とりあえず

car_cr07

-----------------------

echo cd `dirname $0`
cd `dirname $0`

#ルールを選んでコピー
cp ./rule$1.R ./rule.R
echo rule$1.R
shift
echo $1 $2 $3 $4

#読み込んで条件満たす銘柄を選定し、code/list00.cfgを更新
./bin/anaint07 $1 $2 $3 $4| tee ./output/cr07.txt | Rscript --vanilla ./R/R07/teststdinrule.R
#./bin/anaint07 $1 $2 $3 $4> ./output/cr07.txt
#./code/.new00があれば list00.cfgを更新
if test -e ./code/.new00; then
  mv tt.txt ./code/list00.cfg
  rm -f ./code/.new00
fi

----------------------

こんなシェルスクリプトで簡単な解析が可能に

ちょっとした工夫は

  • R言語へは標準入出力でデータを引き渡す
  • tee を使ってデータをファイルに落としておく

って部分 これ結構便利

今のところR言語部分はテストプログラムでパラメタの分布を描かせてるだけですが

f:id:sucar:20151230134004p:plain

例えば、MxNo.と名付けたパラメタの分布の確認とかができるようになった

あとはR言語部分をいろいろ作って標準入出力でデータを引き渡せばOK

まだまだいろいろコーディングしなきゃいけないけど、ここまでできれば一段落って感じです (年越しできそうw)

自分用メモとして、4つの引数の意味を書いておく

  1. Xday:出力される未来データの日数 0なら過去パラメタのみ出力となる
        省略すると3
  2. Xdy:endポイント これ以降は出力されない 省略すると500
  3. Xstart:startポイント これ以前は出力されない 省略すると0
  4. Xpra:パラメタの遡り日数 省略すると3

工夫としては2と3のXdyとXstartを使って期間を設定できるようにしたこと

旧システムよりファイルアクセスに時間がかかるので、datasetは1000日くらい目いっぱいにしといて、ここで期間設定した方がいいかもという判断

悩みは目いっぱいに設定すると出力データが大きくなってしまうことR言語で読み込むのも時間がかかるし、、、、(特に4のXpraが問題 MxNo.だけは結構遡りたいけど)

なので、AWKで事前フィルタ作った方がいいかも、、、

あと、パラメタが固定されたら、処理結果を蓄積して更新分だけ処理する方がいいのかも、、、

でも自在に検証するならパラメタはどんどん追加したいし、、、

ちょっと悩む