前回、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として出力しています。