
Rubyではじめるシステムトレード (現代の錬金術師シリーズ)
- 作者: 坂本タクマ
- 出版社/メーカー: パンローリング
- 発売日: 2014/05/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
序文
昨日今更「翔んで埼玉」見に行ったんですが、イマイチでした。
狙いすぎというか、「こういうネタがお前らおもしろいんだろ?」みたいなのが見えちゃって…。
うーん。
進捗
- 第3部 シミュレーション編
- 第13章 Indicatorクラス
- 第14章 テクニカル指標を作る
(学習時間:6時間)
GitHub
コード実装部分(一部)
RubySystemTrade\trade_simulator\lib\indicator\indicator.rb
# coding: Windows-31J require "./lib/array" # テクニカル指標の親クラス class Indicator include Enumerable def initialize(stock) @stock = stock end def each @indicator.each {|value| yield value} end def calculate @indicator = calculate_indicator self end # 要素が nil の時は :no_value を throw する def [](index) # my_indicator[1..3]みたいにindexに配列っぽいのが入ってることがあることに注意 if index.kind_of?(Numeric) && (@indicator[index].nil? || index < 0) throw :no_value else @indicator[index] end end def calculate_indicator; end end
実行結果
割愛
感想
13章では各指標をあらわすのに使用するインターフェース的なクラスを作成し、14章では13章で作成したクラスを継承して移動平均やら移動平均乖離率やらATRといった各指標を実装していく。
各指標を表すクラスは上のコードを継承させて、空のcalculate_indicator()メソッドに実際の処理を書いていく。
Rubyではよくある書き方なのかはわからないが、"[]"みたいなのをオーバーライドするのはあんまり好きじゃない。
よっぽど必然性を感じられる実装をしないと、呼び出し側で処理がわからなくなりがちな気がする。
あとArrayクラスを拡張して、新しいメソッドを追加しているのだけど、これもなんとなく気に食わない。
呼び出し側から標準クラスを呼び出しているのか、拡張したクラスを呼び出しているのか判別できないだろう。
これはまだSuperArrayなりMyArrayなりのArrayを継承したクラスを新しく作ったほうが分かりやすい気がする。
ともあれ全653ページ中の428ページまで終了。
今のところ順調だが、無事GW中に読破できるだろうか。
カロリーメイトください。