[Perl] 移動平均の傾きを一気に計算する

移動平均を一気に計算する方法を別記事紹介しましたが、ここでは、Perlで移動平均の傾きを計算する方法を紹介します。

$movingslope[n]に、n日移動平均の傾きが格納されます。

サブルーチンとする場合には、スクリプト中の指示に従って修正してください。” moving_slope(1)”で呼び出します。

#!/usr/bin/perl

use CGI qw(:standard);
use strict;

#sub moving_slope { #サブルーチンとする場合は、行頭の#を取る

#—– 使用する変数 ここから
my @movingslope; #移動平均の傾き
my $finalrate; #最新の終値
my $data; #ファイルからの読み込みに使用
my @readdata; # $dataから日付や終値などを分割して格納
my $count = 0; #「何日移動平均」の「何日」
#—– 使用する変数 ここまで

#—– データを読み込みながら移動平均の傾きを計算 ここから
#為替データはタブ区切りテキスト”USD_JPY.txt”に保存されているとします。
#[日付] (tab) [始値] (tab) [高値] (tab) [安値] (tab) [終値] で1行を構成しているとします
# 1行目に最新の値、最終行に最古の値とします。

open IN, “USD_JPY.txt”;
while(<IN>) {
$count = ++ $count;
$data = $_;
chop $data;
@readdata = split(“\t”, $data);
#$readdata[0]: 日付
#$readdata[1]: 始値
#$readdata[2]: 高値
#$readdata[3]: 安値
#$readdata[4]: 終値

if ($count eq 1) {
$finalrate = $readdata[4];
} else {
$movingslope[$count] = ($readdata[4] – $finalrate) / $count;
}
}
close IN;
#—– データを読み込みながら移動平均の傾きを計算 ここまで

#return(@movingslope); #サブルーチンとする場合は行頭の#を取る

#} #サブルーチンとする場合は行頭の#を取る

exit; #サブルーチンとする場合はこの行を除去

#1; #サブルーチンとする場合は行頭の#を取る

 

キーワード: Perl; 移動平均; 傾き; 為替レート; 株価; 為替市場; 株式市場; 先物市場; fx; ビットコイン

あわせてどうぞ

[Perl] 為替レートや株価の4本値から移動平均を一気に計算する

Comments are closed.