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

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

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

昨日は Pipenv のインストールまで行った。今回は Pipenv を使って backtrader をインストールする。

how-to-make-stock-trading-system.dogwood008.com

使用する Python のバージョンを固定する

まずは、前回作成した便利スクリプトを使って、 bash をシェルとしてコンテナに入る。

$ make run
docker run --rm -it dogwood008/backtrader bash
root@8e82ce23f287:/#

これでコンテナに入れた。この状態で、 pipenv --python 3.8 と入力すると、「これから使う Python のバージョンは3.8系で固定する」という宣言をしたことになる。この時、 Pipenv というファイルが生成され、そのことが書き込まれる。

root@8e82ce23f287:/# pipenv --python 3.8

root@8e82ce23f287:/# ls   # ← ファイルの生成を確認するため、カレントディレクトリのファイル一覧を表示させる
Pipfile  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# ↑生成されている

root@8e82ce23f287:/# cat Pipfile  # ←ファイルの中身を表示する
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.8"

Pipenv で backtrader をインストールする

では、Pipenv で backtrader をインストールする。 pipenv install backtrader でインストールできる。記事執筆時点での backtrader の最新版のバージョンは 1.9.76.123 なので、これで固定したければ、 pipenv install backtrader==1.9.76.123 というように、バージョンを指定してインストールできる。

root@8e82ce23f287:/# pipenv install backtrader
Installing backtrader…
Adding backtrader to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock (db4242) out of date, updating to (1be2ab)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (1be2ab)!
Installing dependencies from Pipfile.lock (1be2ab)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

さらに詳しく Pipenv を知りたければ、下記の記事が非常に参考になる。 qiita.com

さて、これでインストールに必要なファイルが整った。確認してみよう。

root@8e82ce23f287:/# ls
Pipfile  Pipfile.lock  bin  boot  dev  etc  home  lib  lib64    media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# ↑ある ↑ある

ここで、 PipfilePipfile.lock の中身をマウスカーソルで選択してクリップボードにコピーし、 Docker のホスト1でそれを貼り付けてファイルを保存しよう。

root@8e82ce23f287:/# cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
backtrader = "*"

[requires]
python_version = "3.8"
root@8e82ce23f287:/# cat Pipfile.lock
{
    "_meta": {
        "hash": {
            "sha256": "62f2c898940a09cc88c8fc42c85e52c3526c851c12517325c638b20dfa1be2ab"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.8"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "backtrader": {
            "hashes": [
                "sha256:0dc8912a98352b75122f8d7084bc63ee47f61c2a1d16f506d4d82aee3941297a"
            ],
            "index": "pypi",
            "version": "==1.9.76.123"
        }
    },
    "develop": {}
}

これを使って、次回は Docker のビルド時にこの操作を行ってしまうことにより、毎回インストールの作業を行わず、いきなり backtrader が入った状態で、コンテナを起動できるようにする。


  1. Dockerを動かしている側のマシン。例えば、 mac 上で Docker を動かしていれば、 mac が Docker のホストである。

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