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

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

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

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

予算:万円
証券コード銘柄配当利回り株価株数約定金額手数料
8316 三井住友 6.02% 5,712 0 0 0
8411 みずほ 5.75% 2,073 0 0 0
8306 三菱UFJ 5.52% 964 0 0 0
8058 三菱商事 5.25% 5,777 0 0 0
4502 武田薬 4.81% 4,417 0 0 0
8766 東京海上 4.49% 3,089 0 0 0
8031 三井物産 4.19% 4,486 0 0 0
9433 KDDI 3.96% 4,344 0 0 0
9432 NTT 3.79% 3,991 0 0 0
8001 伊藤忠 3.02% 4,787 0 0 0

※株価は2023年06月01日の終値です。

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