Location : Home > Languages > Perl > Package Title : Math::Business::MACD |
![]() |
Math::Business::MACD - 移動平均収束発散の計算
use Math::Business::MACD; my $macd = new Math::Business::MACD; my ($slow, $fast, $trigger) = (26, 12, 9); set_days $macd $slow, $fast, $trigger; my @closing_values = qw( 3 4 4 5 6 5 6 5 5 5 5 6 6 6 6 7 7 7 8 8 8 8 ); foreach(@closing_values) { $macd->insert( $_ ); print " MACD: ", $macd->query, "\n", "Trigger EMA: ", $macd->query_trig_ema, "\n", " Fast EMA: ", $macd->query_fast_ema, "\n", " Slow EMA: ", $macd->query_slow_ema, "\n"; } # 巨大なリストにデータを追加した際に再計算をするのを防ぐ $ema->start_with( $last_slow_ema, $last_fast_ema, $last_trig_ema, ); # foreach ループでは新しく挿入された値を書き換える。 # 残念だが、このために最後の $last_slow_ema, $last_fast_ema, $last_trig_ema の値を # どこかに格納しなければならない。
EMA(指数移動平均)を計算するのに充分なデータがない場合には、SMA 0.99, EMA 1.06, MACD 1.10 と同様に 'undef' を返す。さらにトリガ(trigger)とヒストグラムもトリガ移動平均(trigger EMA)を求めるためのデータが充分になるまでは利用可能にはならない。これは修正しなければならない点である。
Jettero Heller, <jettero@cpan.org>
http://www.voltar.org
David Perryr, <David.Perry@ca.com>
http://www.stockcharts.com/education/What/IndicatorAnalysis/indic_MACD1.html
perl(1), Math::Business::EMA(3)
http://www.stockcharts.com/education/What/IndicatorAnalysis/indic_MACD1.html
【訳注と解説】
![]() |
Updated : 2006/08/10 |