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

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

固定ページ未反映

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…

サービス・技術調査 - #2 KABU+ by ZEROBYTE社

## 前回の記事 前回は、KABU+ の紹介をし、KABU+が採用するデータ配布手段である WebDAV について調べた。 ## 今回の内容 実際に KABU+ を契約し、いろいろ試したことで、契約前と後での気づきをまとめる。

サービス・技術調査 - WebDAV

概要 KABU+で提供されるCSVは、WebDAVを使用することによりAPIの呼び出し制限回数にかかわらず呼べるようになる。 ここでは、WebDAVを使って、RubyでCSVを取得するサンプルを紹介する。 Rubyを選んだ理由 Rubyを選んだのは、著者が好きな言語であるからだが…

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) を追加する ◆ 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 今回の内容 建玉を手仕舞い(売る)ことで、含み益または含み損を確定させる。また、どのようなタイミングで売買しているかをグラフにプロットする…

委託保証金維持率

委託保証金維持率とは、信用取引で借りているお金のうち、保証金でどれだけの割合を維持しないといけないかを示したパーセンテージである。 これを下回ると、追加で証拠金が必要になり、この状態を追証という。 Photo by Karolina Grabowska from Pexels 保…

代用有価証券

代用有価証券とは、委託保証金として現金の代わりに差し入れる証拠金相当の有価証券である。 Photo by Karolina Grabowska from Pexels 例えば、1000万円分の現物株を持っていて、ある一定の割合で現金同等として扱ってもらうことができる。この一定の割合を…

呼値、呼値単位

呼値、呼び値(よびね)とは、株式を売買できる価格の最小単位である。 例えば、現在4000円の株があったとする。この株が TOPIX 100 の構成銘柄なら、最も近い値段では 3999円, 4001円 で注文を出すことができる。一方で、そうでないなら、 3995円, 4005円 …

バックテスト中に買い建玉を作成する ◆ 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 のイメ…

昨日分の差分をGitHubにも反映

昨日は backtrader 利用の最初の一歩を試した。 how-to-make-stock-trading-system.dogwood008.com GitHubの専用のリポジトリに、今回の変更内容ををコメント付きで作ったので参考にしてほしい。 github.com 本日分はシンプルにこれでおしまい。

backtrader の最初の一歩

## 昨日の振り返りと今日やること 昨日は Dockerfile 内で `pipenv sync` を呼ぶ事で、固定したバージョンで backtrader をインストールした。今日は backtrader の最初のサンプルを実行する。

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