|
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 |