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

Viewed: 09:41:31 in December 6, 2019

Posted: December 18, 2017
WordPressの記事をアーカイブ化したものです。

この記事を書いた人
「牧岡ふうふ堂」オーナー。博士(工学)。
酒都圏在住。
某地方の国立系工業大学でアシスタントをしていました。 専門は有機反応・金属錯体(主に希土類)・π共役系。
twitterアカウントは@makiokafufudo(お仕事用)、@ymakioka(個人用)です。

移動平均を一気に計算する方法を別記事紹介しましたが、ここでは、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; #サブルーチンとする場合は行頭の#を取る

 

あわせてどうぞ

アーカイブ化したWordPress記事
よく読まれている記事をアーカイブ化しました。

算数の問題
「掛け算の順序ガー」な方々に解いていただきたい。

論文のX線結晶解析のデータを画像化する方法
やり方は色々あるのでしょうが、私はこれで。

25年ぶりの三原港
三原の市役所での用事を済ませた後に、近くの三原港辺りを散歩してきました。

ここのはうまい。尾道ラーメン@福山SA
帰省の途中によく食べてました。

アヲハタの株主総会は雰囲気がちょっと変わってる
最近は少し「ふつう」になりました。

峠の唐揚げがうまかった( ´▽`)
おすすめは唐揚げ定食とうどん定食。

Googleマップに事故機
当時は大騒ぎでした。

WiFiあっておすすめ・マーメイドカフェ 広島大学店
基本的にアンデルセン系は好きです。

雪降る前に大急ぎで「道の駅来夢とごうち」へ
安芸太田町の戸河内ICそばの「道の駅来夢とごうち」まで車で行ってきました。

境港・お食事処かいがん
モサエビがたっぷり乗っかったモサエビ丼がおすすめ。