集計結果を出力しよう。Recorderクラスでファイル操作 <株入門>


もう一息ですね。
集計結果を体裁整えて、ファイル出力出来れば、システムとして一通りカバーでしょう。
  
Recorderクラスの仕事は以下だそうです。

①1銘柄の取引を記録する
②銘柄ごとの統計の一覧表を作る
③すべての銘柄のすべてのトレードを統合した統計を記録する
④設定ファイルを保存する

銘柄ごとtradeごとの記録、
ロジック(TradeingSystem)単位集計した銘柄ごとの記録、
ロジック(TradeingSystem)単位で全銘柄集計した記録、
あと、ロジック(TradeingSystem)の設定詳細の記録

上3つはCSVファイル(カンマ区切り)で保存するとのこと。
 
今回使う機能を先に触れます。
 
 
記録の内容には触れず、まずはCSVファイルの出力について、
RubyでCSVファイルの読み書き
http://uxmilk.jp/19202

↑これで説明されてるとおりですが、
Rubyにはcsvファイルの扱いもcsvという標準ライブラリあり、
これを使うと、配列とファイルの一行の間を互換出来る。
 

それから、
OS上でのファイル操作は、fileunitsという標準ライブラリで、
今回はファイルコピーとディレクトリ作成の機能使ってます。

fileunitsライブラリでファイル操作の基本機能は網羅してるようです。
https://docs.ruby-lang.org/ja/latest/class/FileUtils.html 
 
 
あと、
y/nを対話的に処理してます。
引用しちゃいますね。

def yes?
 while answer = $stdin.gets
  if answer =~ /^[yY]/
   yield
   break
  elsif answer =~ /^[nN]/
   puts "終了します"
   exit
  else
   puts "y (はい)か n (いいえ)でお答えください"
  end
 end
end

stdinが標準入力で、そこから入力値を取ります。
whileなのは、入力があるまで待つということ。

yesのときyieldってことは、
呼び出した側で指定した処理を実行。

noのときexitとは、プログラムの終了。

それ以外は再入力を促し続ける。

ここまで踏まえて、
4つのファイル出力の中身を見てきましょう。

 
質問コーナー、お問い合わせは、sanpome.net@gmail.fcom まで。

  
 

社会・経済ニュース ブログランキングへ

にほんブログ村 海外生活ブログへ
にほんブログ村

カテゴリー: 株式投資, 株式投資入門はじめました2016.05 タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*