2019年12月5日木曜日

スプレッドシートとGASで株取引の管理が捗る

QuantXで株売買を始めたので、 日々の資産や損益率の推移を見たくなった。
スプレッドシートとGoogle Apps Scriptを使って管理したら、中々に捗ったというお話。

取引の内容は自分で手入力するのを前提とする。

まずは、その日の資産の評価額を出せるようにする。
IMPORTXML を使って、Yahooファイナンスから取ってくる。
=IMPORTXML("https://stocks.finance.yahoo.co.jp/stocks/detail/?code="&A1,"//td[@class='stoksPrice']")
A1 に証券コードを入れておくと、その時の価格が取れる。
価格が取れれば、手入力した株数と掛けて評価額を計算できる。

次にその日の評価額を別のシートに追記できるようにする。
それには、Google Apps Script(GAS)を使う。
評価額シートの2行目に投資額, 評価額, 損益, 損益比率が記入されていて、
それを日毎推移シートに追記していくスクリプトはこんな感じ。
function myFunction() {
  var input = SpreadsheetApp.getActive().getSheetByName('評価額');
  var total = input.getRange('A2').getValue();
  var ammount = input.getRange('B2').getValue();
  var diff = input.getRange('C2').getValue();
  var per = input.getRange('D2').getValue();
  
  var output = SpreadsheetApp.getActive().getSheetByName('日毎推移');
  output.appendRow([Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/M/d'), total, ammount, diff, per]);
}
これをトリガーで毎日起動するようにする。

で、実際にグラフにしてみるとこんな感じ。
QuantX のシグナル以外の取引もしてるので昨日晒したシミュレーションとは違う。
税金も考慮してるので、売りのあとのマイナスがシミュレーションよりも大きいのもある。

10年くらい前に株始めたときにエクセルで上手くやれなくて諦めたけど、
スプレッドシートとGASがあればかなり捗り、良い時代になったものだ。