遂に売買ルールの実装に到着。
ロジックつーか、売買ルールをRuleという名前で定義してます。
RuleからEntry,Exit,Filter,Stopと4つのクラスが派生する。
これは前、言ってましたよね。
仕掛け、手仕舞い、フィルター、ストップと分類するって、
更に、ブレイクでの仕掛けとかは、Entryから個別の売買ルールクラスが派生する。
という、この二段階で三層構造になっている。
フォルダの構造もそうなってる。
./lib/rule/
entry
exit
filter
stop
とりあえず、美しく整理されてる。
では、大本の、./lib/rule/rule.rbを見てゆきます。
実にそっけない。
calculate_indicatorsメソッドが抽象用に定義され、
あとは、
with_valid_indicatorsというnilだったら例外発生を処理するメソッドが一つ。
これも、実際処理する内容は書いてない。
ここでは例外処理のcatchというワードが出てくる。
ああ、Rubyはtry/catch構文とはちょっと違うんだよね。
try/catch構文に相当するのは、begin/rescueに相当、でcatchもある紛らわしい。
Rubyのthrow/catchはまあ、goto文に相当する。
http://morizyun.github.io/blog/throw-catch-symbol-ruby/
private
def with_valid_indicators
catch(:no_value) {yield}
end
この場合はどっかで、:no_valueがthrowされたら、ここで処理する仕組みを用意。
処理の内容は必要ならそれぞれ後で書くのだろう。
ここでは、
枠だけ用意、実にそっけない。
これだけではまだ、全容は見えないが。
とりあえず、4つの子供達に移ろう。
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。