株のシステムトレードをしよう - 1から始める株自動取引システムの作り方

株式をコンピュータに売買させる仕組みを少しずつ作っていきます。できあがってから公開ではなく、書いたら途中でも記事として即掲載して、後から固定ページにして体裁を整える方式で進めていきます。

バックテスト環境の構築

Kabu + のプロキシを作る - 雑記・技術調査

ここで、AWS re:Invent 2020 にて下記の新サービスが発表された。 (略) これはサーバレスで Lambda が動くのは常識として、さらに docker のイメージ化しておけば、コンテナとしてそれをサーバレスで実行してくれるものである。

Kabu + のプロキシを作る - サーバレスで日次バッチを作る情報収集

せっかく Serverless で作るのであれば、SAM (Serverless Application Model) か Serverless Framework を使ってみたい。後者は個人レベルであればダッシュボードも付いてくるので、前向きに検討したい。 www.serverless.com 今日は諸事情によりこれでおしま…

Kabu + のプロキシを作る - 大雑把な構成

日次で更新データを取ってくるバッチサーバは Python で書いて、サーバレスで動かす。今のところ GCP or AWS どっちもアリだと思ってる。

Kabu + のプロキシを作る - API制限を確認する

まとめ 日次バッチで大丈夫、十分足りる。ただし、初期のデータ取得はその限りではないが、同期ツールでその制限外で取得できる。

Kabu + のプロキシを作る - 方針変更

昨日の記事では規約上で許可されている共有フォルダ一括同期ツールを使用して、API制限を受けずにアクセスしようとしていた。 how-to-make-stock-trading-system.dogwood008.com てっきり、WebDAVを使えば条件が満たされると思っていたが、どうやらそうでは…

Kabu + のプロキシを作る

Kabu+へのプロキシを作り、必要以上に Kabu+ のサーバへ負荷をかけずにCSVを取得できるようにしていく。

アイデアメモ - CSVに調整後終値を付与(本当の完成)

昨日はCSVから読み込んだDataFrameに、調整後終値を付加したが、1日適用するのが早かったため、直す必要があった。今日はこれを直す。 結果、調整後終値を無事に付加することができた。調整後終値を付加する連載はこれで一旦完了である。次回からはCSV取得の…

アイデアメモ - CSVに調整後終値を付与(一旦実装完了と凡ミス)

CSVを DataFrame に変換し、調整後終値を付加することはできた。しかし、凡ミスが1点だけあり、修正が必要。

アイデアメモ - CSVに調整後終値を付与(ラスト直前、実装アイデア)

本日はラフに書いているコードを共有して、最終イメージを掴んでもらうことにする。 全営業日について、その日の調整後終値を算出するための終値調整比を用意し、日付けと調整比のペアで DataFrame を作成する。

アイデアメモ - ある月の営業日を取得する

jpbizday というライブラリを使って、営業日を取得する。

アイデアメモ - Kabu+ で取得した CSV から必要なカラムだけフィルタリングして表示

Pythonのコード 出力 今回は how-to の記事。 pandasの API Referenceを見ると、 header や usecols を使った方が良いのかもしれないが、簡易にフィルタリング&リネームする方法を紹介する。 pandas.pydata.org Pythonのコード 下記のコードは、Kabu+で取得…

アイデアメモ - CSVに調整後終値を付与(株式の分割と併合をまとめて扱う)

## 前回の振り返り 前回までで、株式併合に対応できるように、終値に対してかける比率を計算し、調整後終値を計算できるようにした。 ## 今回の内容 株式併合だけでなく、分割もあわせて扱って、1つの DataFrame にする。

アイデアメモ - CSVに調整後終値を付与(終値調整比を付与)

前回は終値調整用比率を作ろうとして試行したが、うまくいかなかった。それとともに、どのように変更すれば実現できるかも合わせて記した。 今回は前回のやり残しをカバーし、終値調整用比率を作成する。

アイデアメモ - CSVに調整後終値を付与(自然言語を倍数表記に換算)

## 今回の内容 今回は、「●株→●株」のような表記になっている `併合比率` カラムについて、「●倍」のように倍数表記に変更することで、プログラムから扱いやすいようにする。 ## 前回の振り返り 前回は、調整後終値を計算するためにHTMLを解析してCSVを作成…

アイデアメモ - CSVに調整後終値を付与(株式併合、株式分割を加味)

前回の内容 今回の内容 調整後終値とは 株式併合・株式分割とは 戦略・アイデアメモ まずは、HTML を DataFrame に変換するところまで heigou.py 出力 前回の内容 前回は、 KABU+ を契約してCSVを取得するところまでやった。 how-to-make-stock-trading-syst…

手数料の導入 ◆ Backtrader 最初の戦略その8

## 今回の内容 今回は、株取引に避けては通れない、手数料の計算を導入する。

Jupyter Notebookの導入 ◆ Backtrader 最初の戦略その7

前回の振り返り 今回の内容 解説 Dockerfile docker-compose.yml Pipfile 実行 Jupyter 前回の振り返り 前回はグラフに単純移動平均のグラフを追加した。 how-to-make-stock-trading-system.dogwood008.com how-to-make-stock-trading-system.dogwood008.com…

グラフに単純移動平均 (SMA) を追加する (変更内容PRの紹介) ◆ Backtrader 最初の戦略その6.1

概要 下記の記事で変更した内容を、GitHubのPRにまとめたので、参考にしてほしい。 https://how-to-make-stock-trading-system.dogwood008.com/entry/backtrader-output-chart-smahow-to-make-stock-trading-system.dogwood008.com GitHubのPR github.com

グラフに単純移動平均 (SMA) を追加する ◆ Backtrader 最初の戦略その6

前回の振り返り 今回の内容 単純移動平均 (Simple Moving Average; SMA)とは? main.py を変更 前回の振り返り 前回は、バックテストの結果をグラフとして出力した。 how-to-make-stock-trading-system.dogwood008.com how-to-make-stock-trading-system.dog…

バックテストの結果を出力する(変更内容PRの紹介) ◆ Backtrader 最初の戦略その5.1

概要 下記の記事で修正した内容を、GitHubのPRにまとめたので、参考にしてほしい。 how-to-make-stock-trading-system.dogwood008.com GitHubのPR github.com サンプル 実際にこのPRに沿ってグラフを出力すると、下記のようなものになる。 how-to-make-stock…

バックテスト中に手仕舞いする(変更内容PRの紹介) ◆ Backtrader 最初の戦略その4.2

概要 下記の2記事で修正した内容を、GitHubのPRにまとめたので、参考にしてほしい。 how-to-make-stock-trading-system.dogwood008.com how-to-make-stock-trading-system.dogwood008.com GitHubのPR github.com

バックテストの結果を出力する ◆ Backtrader 最初の戦略その5

前回の振り返り 今回の内容 main.py の変更 Photo by Lorenzo from Pexels 前回の振り返り 前回は手仕舞いするためのコードを紹介した。 how-to-make-stock-trading-system.dogwood008.com 今回の内容 今回は、一連のバックテストの結果をグラフとして出力す…

バックテスト中に手仕舞いする ◆ Backtrader 最初の戦略その4.1

前回の振り返りと今回の内容 main.py の修正 next() の修正内容 Photo by Chris Ried on Unsplash 前回の振り返りと今回の内容 この記事は、下記記事の続きの記事である。手仕舞い戦略の部分の説明を追加する。 how-to-make-stock-trading-system.dogwood008…

backtrader-plotting: Backtraderのグラフを綺麗に描画してくれるライブラリ

Backtrader の標準の機能で出力できるグラフは、2種類ある。PNGの静止画として出力するか、Jupyter等で対話的に出力することでインタラクティブなグラフとして出力するかである。 しかし、後者の場合、ファイルとして保存することがやや難しい。 backtrader-…

バックテスト中に手仕舞いする ◆ Backtrader 最初の戦略その4.0

前回の振り返り 前回は、株式を買うことで建玉を作った。 how-to-make-stock-trading-system.dogwood008.com 今回の内容 建玉を手仕舞い(売る)ことで、含み益または含み損を確定させる。また、どのようなタイミングで売買しているかをグラフにプロットする…

バックテスト中に買い建玉を作成する ◆ Backtrader 最初の戦略その3

前回の振り返り 今回の内容 変更差分 Photo by Jason Leung on Unsplash 前回の振り返り 前回は、ログレベルに応じたログ出力をできるように改造した。 how-to-make-stock-trading-system.dogwood008.com 今回の内容 今回は、簡単なロジックに基づいて、バッ…

logger と handler を使用して、ログレベルに応じたログ出力 ◆ Backtrader 最初の戦略その2

前回の振り返り 今回の内容 バックテストの実行 Photo by Arget on Unsplash 前回の振り返り 前回は基礎的な戦略 TestStrategy を作成した。 how-to-make-stock-trading-system.dogwood008.com 今回の内容 今回は昨日作成した戦略を使用した、バックテストを…

backtrader 最初の戦略その1

前回の振り返り 今回の内容 Photo by Pixabay from Pexels 前回の振り返り 前回はヒストリカルデータ(過去データ)を読み込めるようにした。 how-to-make-stock-trading-system.dogwood008.com 今回の内容 最初の取引戦略1を実装していく。 www.backtrader.…

backtrader クイックスタートその2

前回の振り返り 今回の変更差分 サンプルの取得とビルド エラーの修正と再実行 Photo by Adam Nowakowski on Unsplash 前回の振り返り 前回の記事では、初歩の初歩からはじめた。今回はもう少し発展的なサンプルに挑戦する。 how-to-make-stock-trading-syst…

Docker Composeの利用

本日の差分 Docker Compose とは Makefile との違い docker-compose.yml の作成とビルド、実行 Docker 本日の差分 いつものように、GitHub上に差分PRを作っておくので、参考にしてほしい。 github.com Docker Compose とは 下記の過去の記事で docker のイメ…

(C) 2020 dogwood008 禁無断転載 不許複製 Reprinting, reproducing are prohibited.