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

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

Python

KABU+の過去データに調整後終値を付加するスクリプト その2

how-to-make-stock-trading-system.dogwood008.com 昨日の続き。完成したので紹介する。Pythonからもコマンドプロンプトからも呼べるようにしておいた。 Pythonスクリプトから呼び出すには、下記の通り。ほぼ main() 内に書かれていることと同じである。 cod…

kabusapiをpipで入れられるようにする

setup.py を追加した。動作確認がうまくいったら、本家へPRを出そうと思う。 github.com

kabu STATION APIを使ったリアルタイムトレード用のクラスを作る その13

またこちらの方もやり始めた。WebSocket と Queue の周り、やや難しいな…Queueに突っ込んでるところはわかるんだけど、 De-queue してるところを見つけられてない。 #!/usr/bin/env python # coding: utf-8 # ## Utilities # In[1]: def is_in_jupyter() -> …

Pythonでローソク足をかいてくれるライブラリ

github.com 使い方はリポジトリのサイトより抜粋。 import pandas as pd daily = pd.read_csv('examples/data/SP500_NOV2019_Hist.csv',index_col=0,parse_dates=True) daily.index.name = 'Date' import mplfinance as mpf mpf.plot(daily) 出力される画像…

kabu STATION APIを使ったリアルタイムトレード用のクラスを作る その11

how-to-make-stock-trading-system.dogwood008.com 引き続き、直している。 #!/usr/bin/env python # coding: utf-8 # ## Utilities # In[1]: def is_in_jupyter() -> bool: ''' Determine wheather is the environment Jupyter Notebook https://blog.ameda…

kabu STATION APIを使ったリアルタイムトレード用のクラスを作る その10

how-to-make-stock-trading-system.dogwood008.com 引き続き、動くように修正中。もう少しかかりそう。 #!/usr/bin/env python # coding: utf-8 # ## Utilities # In[1]: def is_in_jupyter() -> bool: ''' Determine wheather is the environment Jupyter N…

kabu STATION APIを使ったリアルタイムトレード用のクラスを作る その9

引き続き、実装を進めている。本日の差分は、OANDA特有の変数の読み取り・宣言・代入を行っているメソッドを FIXME のラベルをつけてコメントアウトしている、ということになる。 下記にそのWIPのソースコードを載せておく。Gistのリンクも後述する。 #!/usr…

python-kabusapi をpipでインストールできるようにする

github.com オリジナルのリポジトリから clone したものに、 setup.py を足したものが上記である。 これを pip install git+https://github.com/dogwood008/python-kabusapi.git@feature/add_setup.py#egg=python-kabusapi でインストールできる。

2021-02-17 kabu STATION のラッパーを使ってみる その4 四本値の取得

7974任天堂の四本値(始値、高値、安値、終値)を取得してみる。 歩み値はREST APIでは標準で取れないようである。もし取ろうとすると、立会時間中に何回もAPIでアクセスしてリアルタイムに記録していく必要がありそうだ(技術的にはできるが、負荷や規約的…

kabu STATION のラッパーを使ってみる その3

how-to-make-stock-trading-system.dogwood008.com 前回からずっとやっているが、やっとうまく動かなかった理由がわかった。テスト環境だと、一切の銘柄情報が取得できないのが原因だった。本番環境に切り替えたところ、下記のように値を取得することができ…

WIP: kabu STATION のラッパーを使ってみる

how-to-make-stock-trading-system.dogwood008.com kabu STATION のラッパーを使ってみる。 import kabusapi import os import pprint from typing import List pp = pprint.PrettyPrinter() url = "localhost" port = os.environ.get('PORT') # 検証用, 本…

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…

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

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

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

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

バックテスト中に買い建玉を作成する ◆ 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 の最初のサンプルを実行する。

Pipenv を使って backtrader をインストールする:イメージのビルドの段階でインストール編

これまでの振り返り 今日の完成形 昨日作ったファイル Dockerfile の修正 イメージのビルド 動作確認 これまでの振り返り 昨日はコンテナの中でインストールしたが、今度はその操作を Dockerfile に書き込むことで、自動化する。 how-to-make-stock-trading-…

Pipenv を使って backtrader をインストールする:コンテナの中でインストール編

使用する Python のバージョンを固定する Pipenv で backtrader をインストールする 昨日は Pipenv のインストールまで行った。今回は Pipenv を使って backtrader をインストールする。 how-to-make-stock-trading-system.dogwood008.com 使用する Python …

Pipenvのインストール:Pipenvによるパッケージのバージョン固定

リポジトリの紹介 Pipenvの紹介 便利スクリプトの作成 Dockerfile を修正する Dockerfile を使った、イメージのビルド Windows の人向け Pipenv リポジトリの紹介 今回の作業内容について、下記のリポジトリで差分を見ることができる。 github.com Pipenvの…

Dockerfileの作成:バックテスト環境の構築

開発環境と本番環境をできるだけ近い状態にするため、またプログラムの作成時期によって結果が変わることをできるだけ減らすため、 Docker を用いてコンテナで開発を進めることにする。

バックテスト環境の構築の前に、OSSにおけるライセンスの話、GPLv3の解釈の難しさ

あるフレームワークを導入しようとしたら、 GPLv3 がライセンスとして採用されていた。自分のやろうとしていることが公開義務に引っかかるのか、そもそも派生的著作物とは何か、集めた情報を元に解釈し、方針としてどうするかを限られた時間(2時間)の中で…

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