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

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

固定ページ未反映

CSV取得処理をDockerイメージ化して再利用・自動化 その4

引き続き docker run するだけでCSVを取得してくれる便利 Docker イメージを作成しようともがいている。 how-to-make-stock-trading-system.dogwood008.com どうやってもうまくいかないので、いっそ ServerCore である mcr.microsoft.com/windows/servercore…

CSV取得処理をDockerイメージ化して再利用・自動化 その3

引き続き Docker の Windows コンテナの中で WebDAV サーバをドライブとしてマウントしようとしているが、うまくいかない。 how-to-make-stock-trading-system.dogwood008.com System Error 53 System error 67 has occurred. とエラーが出るばかりで、マウ…

戦略:前日比x%以下で買い、前日比y%以上で売り その12 アナライザの使用

昨日の記事で、 `backtrader.Analyzer` を使えば、バックテストの結果を解析することができそうだという技術メモを残した。今日はそれを実際に使っていく。試しに「ドローダウン」と「年次リターン」を表示するように変更する。

戦略:前日比x%以下で買い、前日比y%以上で売り その7

昨日に引き続き、公式のドキュメントで怪しいと思った部分を翻訳していく。 how-to-make-stock-trading-system.dogwood008.com <原文> The current data has already happened and cannot be used to execcute an order. If the logic in the strategy is …

戦略:前日比x%以下で買い、前日比y%以上で売り その4

前回の記事は下記の通り。 how-to-make-stock-trading-system.dogwood008.com しかし、注文が依然として通らない。困った。 下記はbacktraderから出力されたログである。 [DEBUG] 2020-11-18, Expired: Buy ¥xxx,100 (@xxx1.00 * 100) ←前日の注文が有効期限…

Backtrader で KABU+ のデータを読めるようにする その8

昨日の記事ではうまく動かせなかったが、それを修正して動くようにしたのが本日の記事である。 how-to-make-stock-trading-system.dogwood008.com backtrader_plotting を動かす都合上、 Google Colab では TestStrategyWithLogger クラスを別ファイル test_…

Backtrader で KABU+ のデータを読めるようにする その7

昨日まででKABU+のCSVを読み込んで Backtrader でバックテストをする準備が整った。 github.com ここで、下記のスクリプトを実行しようとしているが、期待通りに動かないので現在修正中。 github.com -----------------------------------------------------…

Backtrader で KABU+ のデータを読めるようにする その5

昨日は元の呼び出し部分をそのままコピーしてきて、 KabuPlusJPCSVData クラスに再実装することで、確かにそのメソッド内で失敗することを確認した。 how-to-make-stock-trading-system.dogwood008.com 今日以降はそれを受けて、実際に呼び出し部で失敗しな…

Backtrader で KABU+ のデータを読めるようにする その4

昨日の記事では転けている箇所とその行数、およびその行が所属するメソッドを特定した。 how-to-make-stock-trading-system.dogwood008.com 今回は、標準で bt.feeds.YahooFinanceCSVData に用意されているパーサである _loadline() メソッドを上書きするた…

Backtrader で KABU+ のデータを読めるようにする その3

昨日は、どの辺で転けているかの特定を行った。 how-to-make-stock-trading-system.dogwood008.com 具体的には、 h = float(linetokens[next(i)]) で転けている。 /usr/local/lib/python3.6/dist-packages/backtrader/feeds/yahoo.py in _loadline(self, lin…

Backtrader で KABU+ のデータを読めるようにする その2

これの続きをやっていく。 how-to-make-stock-trading-system.dogwood008.com 下記を参考に、本当に必要な部分のみを記載して実行してみる。なお、諸般の事情によりGoogle Colabを使用して実行する。 how-to-make-stock-trading-system.dogwood008.com なお…

Kabu + のプロキシを作る - nginx.conf を設定して、APIサーバとして待ち受ける

振り返り nginx の設定ファイル nginx.conf nginx 振り返り ここまで下記の記事のようにプロキシを作るとして連載してきたが、振り返ってみると「プロキシサーバ」が一般的に指すものではなく、「代理で値を取得&キャッシュしておくAPIサーバ」を作ってきた…

Kabu + のプロキシを作る - Windows Server のポート開放

手順 動作確認 今後 nginxに外からアクセスできるようにするため、Windows ファイアウォールの設定を変更して、待ち受けポートを開放する。 手順 サーバーマネージャー → セキュリティが強化された Windows ファイアウォール 受信の規則 → 新しい規則... ポ…

Kabu + のプロキシを作る - nginxの待ち受けポートを変える

何故ポートを変えるのか 基本的に、HTTPのデフォルトポートは 80 、HTTPSは 443 である。これはPublicにするAPIサーバであれば、従う方が良い。なぜなら、アクセスの度にポートを指定しなくて良いからである。 では、何故そのポートを変えるのか。今回作成す…

Kabu + のプロキシを作る - nginx on Windows でプロキシ

今日はメモ程度。Windows の中でnginxをホストして、指定したポートを開けておけばそとからアクセスできるようになった。これでほぼ確実にプロキシサーバの構築が可能な目処が立った。参考にしたサイトは下記の通り。 nginx.org mode-n.jp qiita.com

Kabu + のプロキシを作る - サーバを何にするか

昨日までの記事で、いよいよCSVを自分のサーバ向けに配信できる環境が整った。 how-to-make-stock-trading-system.dogwood008.com Windowsで動いている都合上、色々と不便があるので、WSL2 を入れて ほぼ Linux にしたかったのだが、どうもさくらのVPSで提供…

Kabu + のプロキシを作る - WebDAV の同期ツールで個別株のヒストリカルデータを取得できない問題に対処

結論 取説の後ろの方に記載があった内容で解決する。具体的にはレジストリの編集を行う事で、1つのディレクトリ内のファイル数上限を2000万個まで許容する。 症状 同期ツールを実行すると、 「システムに接続されたデバイスが機能していません。」 と表示が…

Kabu + のプロキシを作る - 続・Windows搭載インスタンスの調査

AWS Windows on Docker 結局何が一番良いのか AWS 昨日の記事では、AWSのEC2を使えば、格安でWindowsマシンを使えるかもしれない、と言及した。 how-to-make-stock-trading-system.dogwood008.com しかし、実際に積み込まれるメモリを考えると「本当にWindow…

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 + のプロキシを作る

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に調整後終値を付与(終値調整比を付与)

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

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