配列の処理を拡張する。これで移動平均線に対応できる。 <株入門>


粛々とシミュレーションの実現を目指します。

時系列の日足データを演算処理することになります。
時系列のデータは配列として保存されています。
その配列に対して、
指標となる、最大値、最小値、平均などを計算します。
ボリンジャーバンドなら偏差も必要。 
 
ここでは、Rubyに標準で装備されている配列を表すクラスArrayを拡張します。
これにより、
配列に格納されている時系列データの最大値、最小値、平均など、
簡単に入手出来るようになります。
  
  
Rubyでのクラスの拡張は、
非常に柔軟で、簡単に記述できます。
機能の追加と、書き換えが行えます。非常にユルいです。

追加ないし書き換えを行いたい部分を定義してしまえばよいだけ。
本書では、幾つかの例で、その説明が行われます。
 
 
それから、
配列の順次処理、イテレータの操作を説明します。
以前、コールバック的な書き方として登場しました。
ここはRubyらしい作法として理解するところ。
for文で丁寧に書いても書けるけど、Rubyではこう書くものと納得した方が良いでしょう。
 
本書では、ブロックを使って記述する説明を丁寧に行ってます。
実際の実装では、配列の合計、平均の計算を機能として追加してます。
平均は小数点表示させるため、ちょっと加工してます。
最大、最小は既存の機能あるのでそのまま使います。
合計もほぼ既存の機能を使ってるようなものです。
 
さらに、
区間を指定してその区間ごとに、平均、最大、最小の配列を返せる機能を提供してます。

分かりやすく言えば、
配列に対してmoving_average(5)とメソッドを呼び出せば、
5日移動平均が配列として返って来ます。

この実装はRuby特有の書き方で非常に洗練されてます。
その為逆にちょっと分かりにくいかもしれませんね。
手慣れてないと、こうは書けないかもしれません。

でもまあ、やってること自体は、
配列の部分を順番に取り出して、
平均とかを計算して、別の配列に詰める。
それだけです。

とりあえず、そういうことをやってるんだと理解した上で、
Ruby独特の書き方の詳細を確認してゆきましょう。

ちょっと長いのでそれはまた明日。

あと昨日言及したIDE(統合開発環境)ですが、
タダでやるならやっぱEclipseでしょうか、
今はもっと良いのあるのかもしれません。
まあ、JavaじゃなRubyの開発でもEclipseのプラグインあって、
単体テストの機能もサポートされているらしい。
https://www.ibm.com/developerworks/jp/opensource/library/os-rubyeclipse/
 
今は、どれくらい自動でやってくれるのかな。
まあ、本件だけじゃなく、いろいろプログラム組むならEclipse使っても良いんじゃないかな。
重いし、セットアップまで面倒だし。
それほど、自動的にコード生成はしてくれなそうだけど。 

それでも、規模が大きくなってくるなら、
管理しやすいかもしれない。
 

 
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。

  
 

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

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

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

コメントを残す

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


*