Tickを扱う。 日経平均先物と違い個別株やや面倒。 <株入門>

インジケータの次は、Tickです。

 
さて新章。Tick(ティック)というもの。値動きの最小単位のこと。
日経平均先物とかなら5円とか10円とか、1Tickも単純だけど、個別銘柄だと当たり前だが個々。
 
そのTickというものを実装してゆく。
ここでは、クラスでなくモジュールとして実装している。
つまり関数として機能提供だけできればいい。
 
まあ、インジケータもそれで良かったとも思うが、
それはさておき、
 
値幅ごとに、取引単位が違うのでそれを実装。
 
更に、切り上げ、切り下げ、四捨五入。問題なのはTick単位で出る端数だもの。
実装は単純で棒に書いてあるだけなのだけど、
四捨五入がちょっと違う。単純に丸めると、Tickの刻みにハマらない。
ので、切り上げ、切り下げのどちらかに近い方に寄せる。
「近い方」とはTickの幅の半分より上か下か、という判断。
 
それから、Tick考慮した価格の上げ下げを実装してる。
 
 
さて、コード .lib/tick.rbを見てみる。
times というメソッドを使ってるのが新鮮か、

tick.times {price -= size(price)}

というコードがある、(ああ引数がtickなのがややこしい。)
 
整数.times{なんか処理}
で、その整数回分、何か処理を繰り返すという意味。
for文で書くよりRubyらしいオシャレ感漂う。
スカしてんじゃねえぇよって思うのは古い人間だ。
 
 
ま、とにかく、実装は難しくはない。
が、動作検証はやや厄介だ。
株価3000円以下ならTickは1円だが、3000円を超えると5円。
こういう微妙なところでup/downを操作しても正常に動くか?
 
幾つかのケースを想定して、坂本タクマ先生は説明している。
これが、実際と同じようなものなのか、違うのかは、ワタクシには判別つかない。
 
境界値のあまりに微妙なとこや、
現実にはありえない数値入れたときの動作は、
追いすぎないという態度で臨んでいるタクマ先生。

テスト ./check/tick_check.rbを見ると、

Tick.up(2999, 2) #=> 3005

この辺がチェック出来て、カバレッジが100ならまあOKということ。らしい。
 
ただ、単純だが、テスト項目多いので、
putsで画面表示するだけでなく、
Assertするようテストケースっぽく書きたいけどな。
目で結果追うのタルいもの。

あ、長くなったので、この話は明日。
 
 
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。

  
 

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

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

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

コメントを残す

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


*