手段と目的は適切に、設定ファイルを巡り <株入門>


本書で設定ファイルの為にやられてることは、
instance_evalという機能で、
http://ref.xaio.jp/ruby/classes/object/instance_eval 

オブジェクトのプロパティ、つまり内部設定をいじることで、
設定ファイルの内容をテキパキと反映してます。
 
ハッキリいって狂気の沙汰です。

そもそも、instance_evalってカプセル化の破壊です。
こんなことすんなら、そもそもオブジェクト指向やめろよ。
ほんと気持ち悪い言語ですRuby。思想に節操無い。

こんな機能使わなきゃなんないなら、
オブジェクトのモデリングがそもそもおかしい。
設計の欠陥を考えるべきです。

で、本書の中もかなりトリッキーなことやってますが、

最終的に得られた努力の結晶が、以下。
./setting/estrangement.rb

Simulation.setting “estrangement”, “0.0.0” do
 trading_system do
  entry EstrangementEntry, span: 20, rate: 5
  exit StopOutExit
  exit EstrangementExit, span: 20, rate: 3
 stop AverageTrueRangeStop, span: 20, ratio: 1
  filter MovingAverageDirectionFilter, span: 40
end

from “2000/01/04”
to “2012/12/28”

data_loader TextToStock, data_dir: “data”,
 stock_list: “tosho_list.txt”,
market_section: “東証1部”
record_dir “result”
record_every_stock true
end

昨日書いた起動ファイルと比べてください。
悲しくないですか。
マーケットとかfrom-toとか追加するのは簡単なことです。
newとか()とか減ってますが、
そんなことの為にinstance_evalなんてトリッキーなこと必要でしょうか。

Ruleの部分プログラム組む人と設定ファイル書く人、同一人物ですよね。
別の人だったとしても、newとか()とかオマジナイだと思えばいい。
法則性あるから、理解に困ることじゃない。

本書の設定ファイルを巡る内容は無視するべきです。
そして、少しだけSimulationクラス書き換えて、
最低限の記述で起動できるように、リファクタリング。

手段と目的の適切なマッチング、プログラムでも大事なことです。
 
  
  
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。

 

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

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

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

コメントを残す

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


*