やっとインジケータの実装に進みます。
でも、もうひとつだけ、準備があります。
●移動平均
●移動平均乖離率
●移動平均の方向
●真の値幅の平均(ATR:AverageTrueRange)
を実装するとのこと。おお、期待高まる。
で、最初に約束ごとの確認。
今までどおりのネーミングルールに準じること。
Indicatorの子クラスとしての実装すること。
ま、当たり前だ。
あと、
長短二本の線のクロスとか、複数の指標が必要な場合は、
配列で返すのでなく、配列のハッシュ(マップ、連想配列とも言う)で返す。
という約束ごとも決めてる。
ま、Rubyは型チェックもないし、暗黙の約束でしかないのだが。
で、早速実装に取り掛かりたいのだが、
もうひと工夫必要とのこと。
実装した子クラスをrequire(読み込み)しなければ、他で利用できないということ。
これでは、追加したら、既存の多くのファイルを手直ししなきゃならない。
何だそれ、Rubyってダサいな。importはあってpackageはないのか。
autoloadという関数を使って、所定のフォルダにあるファイルを動的に読み込んでいる。
ファイル名とクラス名の関連付けのネーミングルールを自前で決めていたのも、
動的に読み込む為だったのか。
ヤラねばならない工夫だが、こんなこと強いるなら、
死ぬほどダサいRubyは。
ところで、クラス名を渡せば、動的生成とかRubyは出来るのかな。
Rubyでもリフレクション出来るらしいので、答えはyesらしい。
最終的には、
インジケータの子クラスの名前を外部ファイルに設定するだけとかにして、
シミュレータは動かしたいところだが、
まあ、コンパイルしないんだから、それはあまり関係ないかもしれない。
絶滅しそうなプログラミング言語5個に「Ruby」が選ばれた。
http://developers.srad.jp/story/14/10/10/2155216
らしいが、当然だよ。
いや、COBOLが生き残ってるという意味でよけりゃ生き残るだろうけど、
COBOLのように主流じゃなくなる言語って意味だろ。
今から、COBOL覚えて生計立てようって人はあんま居ないと思うよ。
Perlは同じ用途でより簡単なの増えた。
それ以外は、動作する環境が時代遅れになってるから仕方ない。
その中で選ばれるRubyはちょっと別格だね。
使い手のことより、作り手が趣味に走りすぎじゃね。
覚えるべきの方は、C#は需要あるのかな。
Swiftって伸びるのかな、どんな言語か知らんけど。
おっと、脱線が過ぎた。
とにかくも、後から追加するインジケータの小クラスを読み込む為には、
base.rbをrequireする。
その内容は理解してもいいけど、
本来、プログラミングで対応するんじゃなくて、言語側でサポートしやがれ、
って内容だから、
必要なときは、自作のおまじないを一行先頭に追加する。
って理解でもいいんじゃないかな。
次回ようやく、インジケータの実装に入ります。
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。