PHPでダウの犬を自動計算してみる(その2)

前回、TOPIX版ダウの犬を自動計算するシートを作成しましたが、計算のための株価を自動更新できると更にいい感じです。

TOPIX版ダウの犬自動計算シート(株価更新版)

HTML5のみですが、入力値制限をしてみました。相変わらず計算結果については無保証です。
※配当利回りは高配当ランキング: TOPIX大型株 (Core30)|配当株ポータルの内容を参照しています。

予算:万円
証券コード銘柄配当利回り株価株数約定金額手数料
8316三井住友6.02%10,790000
8411みずほ5.75%3,408000
8306三菱UFJ5.52%1,750000
8058三菱商事5.25%3,335000
4502武田薬4.81%4,298000
8766東京海上4.49%6,180000
8031三井物産4.19%3,721000
9433KDDI3.96%4,525000
9432NTT3.79%159000
8001伊藤忠3.02%7,970000

※株価は2024年07月12日の終値です。

予算0円に対し総取得費用は0円、 うち手数料は0円。 リターンを8.78%と想定すると、額面で0円となります。

※手数料は2017年7月時点でのマネックス証券の取引毎手数料コース、パソコンの成行注文およびワン株取引によるものです。

PHPで外部ファイルを読み込む

今回の変更点は自動取得されたデータファイルの読み込みです。データの自動取得は証券会社のメールサービスを使ってみました。

PHPでファイルを読み込む際にSplFileObjectクラスを使えばCSVファイルを扱いやすいらしいんですが、うまくいかなかったので今回はfile()関数を使いました。

file()関数を使うと読み込んだテキストファイルを一行ごとに配列として扱うことができます。データファイルのフォーマットを次のようにしてみました。

2914,JT,**58
4502,武田薬,**57
7201,日産自,**98
7203,トヨタ自,**30
7751,キヤノン,**05
8031,三井物産,**86
8316,三井住友,**10
8411,みずほ,**9.9
8766,東京海上,**73
9437,NTTドコモ,**39.5

読み込みコードはたったの一行。これで$lineに各行が配列として取り込まれます。

$line = file(__DIR__ . '/price.list', FILE_IGNORE_NEW_LINES);

price.listというのがデータのファイル名です。__DIR__というのは現在のPHPコードが書き込まれたファイルのあるディレクトリになるので、データファイルとPHPファイルは同一ディレクトリにある前提になります。

FILE_IGNORE_NEW_LINEというのは、読み込みファイルの行末の改行コードを無視するというオプションです。

CSVデータを配列に分解する

各行($line[i])はCSVデータです。文字列をセパレータで分割して配列に代入するのはexplode()関数

foreach ($line as $value) {
  $code[] = explode(',',$value)[0];
  $issue[] = explode(',',$value)[1];
  $price[] = explode(',',$value)[2];
}

最初のパラメータがセパレータ文字、次のパラメータが分割対象文字列になります。これを変数に代入することで、分割された文字列がそれぞれ配列に代入されます。

こうして取り込んだデータを計算した結果をhtmlとして出力しています。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments