
Rubyではじめるシステムトレード (現代の錬金術師シリーズ)
- 作者: 坂本タクマ
- 出版社/メーカー: パンローリング
- 発売日: 2014/05/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
序文
毎月1日映画の日。ということで映画館から上映までの待ち時間で更新しております。
進捗
- 第3部 シミュレーション編
- 第10章 シミュレーションソフトの設計図
- 第11章 トレードクラス
- 第12章 Arrayクラスの拡張
(学習時間:6時間)
GitHub
コード実装部分(一部)
RubySystemTrade\trade_simulator\lib\array.rb
# coding: Windows-31J class Array def average sum.to_f / self.size end # 元の配列と同じ要素数の配列を返す # 配列の各要素を span 個ずつ取り出した配列に対して、順番に # ブロックで実装された処理を実行する # 呼び出し方:array.map_indicator(span){|span_array|...} def map_indicator(span) indicator_array = Array.new(self.size) self.each_cons(span).with_index do |span_array, index| next if span_array.include?(nil) indicator_array[index + span - 1] = yield span_array end indicator_array end # 移動平均 def moving_average(span) map_indicator(span) do |vals| vals.average end end # 区間高値 def highs(span) map_indicator(span){|vals|vals.max} end # 区間安値 def lows(span) map_indicator(span){|vals|vals.min} end end
実行結果
感想
9章はパンローリング社が提供しているらしいPan Active Market Databaseなるアプリケーションを使って株価を取得する方法の説明。
露骨に宣伝フェーズの匂いがしたのでスルーしようかと思っていたのだけど、無料でできるというので一応試用版というのだけ試してみた。
結果、ダメでした。
アプリケーションが古すぎるのか、むりやりデフォルトと違う場所にインストールしようとしたからなのかは定かでないですが、DLLが参照できないみたいなエラーが出てた気がします。
10章はこれから作るシミュレーションソフトの概要の説明。
これはまたわからなくなったら戻ってこようということで流し読み。
11章は取引そのものに対応するTradeクラスの作成。
そのTradeが終了したかどうかを返すclosed?メソッドを冗長な書き方してるのになんとなく親近感を抱く。
# 手仕舞い済みかどうか def closed? if @exit_date && @exit_price true else false end end
↑はこれ↓でいけるはず。
わかんないけどほとんどのRubyist?はこれでいくんじゃないかなー。
# 手仕舞い済みかどうか def closed? @exit_date && @exit_price end
12章はRuby標準のArrayクラスを拡張していく。
配列の一部を取り出して、その取り出した配列に対して、順次ブロック内の処理をさせていくmap_indicatorメソッドが鬼門。
なんとなく分かるんだけど、説明しろって言われると難しいなー。
あ、そろそろ「翔んで埼玉」上演の時刻です。
カロリーメイトください。