【1分でPythonをはじめる】Google Colab で投資のバックテスト

Posted on August 17th, 2018Updated on October 25th, 2019
【1分でPythonをはじめる】Google Colab で投資のバックテスト

どんな記事

  • Googleが提供
  • 必要なのはGoogleのアカウントだけ
  • 無料
  • 特別な開発環境がいらない
  • Googleドライブのファイルのように扱える
  • 十分すぎるスペック
  • 1分で使い始めることができる

そんなGoogle Colaboratory(以下、Google Colab)の解説をする記事です。

「まだ Python を使ったことがない」
「Python を使い始めて間もない」
「Python でバックテストをしてみたい」

こんな方たちにとって、最高の選択肢だと思います。

メールアドレスをご登録いただける方には、「バックテストのテンプレート」 もご用意しています!

Python って何?

まずは、「Python とは何ぞや」「何ができるのか」「何で Python が良いのか」をご紹介します。

今、データ分析界隈でもっとも伸びている

次のグラフは「Python人気の伸び率」です。飛ぶ鳥を落とす勢いとはこのこと。

スタックオーバーフロー:Pythonの驚異的な成長

引用元: stack overflow: The Incredible Growth of Python(Pythonの驚異的な成長)

いずれは人気言語の1位になる可能性すらあるそうです。だからこそ、Googleも「Google Colab」を作ることになったのだと思います(予想)。

トップ10の言語は、上から順にJava、C、C++、Python、Visual Basic .NET、C#、PHP、JavaScript、SQL、アセンブリとなっている。

TIOBEのアナリストは、Pythonは大規模な組み込みシステムで使用されることが増えているため、近いうちに3位になる可能性が高く、いずれは現時点で首位の「Java」を超える可能性もあると述べている。

引用元: プログラミング言語の人気ランキング:PythonがC++を上回る日も近いのか?

Python を使えばこんなことができる

Python を使えば何だってできます。

Pythonで、できること

  • Webサービス、Webアプリケーションをつくる
  • データ処理、データ分析
  • Webサイトのデータ収集
  • 機械学習、最適化

こんな風に書くと仰々しいですが、とにかく色んなことができます。

しかも、プログラムの記述ルールが比較的やさしくて、汎用性が高くて、何でもできて、最高なんです。

最近だと、Pythonで仮想通貨の自動売買(Bot)をやっている人もたくさんいます。専門のサイトをみていると、機械学習を投資に活かそうと取り組んでいる方もよく見かけます。アイデア次第で何でもできてしまうのがPython。非常に優秀です。

Google Colaboratoryで手軽にPython

そんなPythonですが、すこし前まで敷居の高い言語でした。開発環境を用意する必要があったんですね。環境を用意するのにつまずいて諦めたという方も少なくないと思います。

筆者自身はCloud9やPaizaというツールを使って開発を行っていました。どちらも優秀なツールではあるものの、有料でしたし、初期設定には多少の手間がかかりました。

そんなところに現れたのが〝Google Colab〟です。

google drive google colaboratory

Google のアカウントさえ持っていれば無料で使うことができて、Googleドライブの中でスプレッドシートやドキュメントのように扱うことができる。導入も早くて簡単。スペックも十分で、Cloud9の1.5倍くらい処理速度が速い(一度測りましたが、それくらいだったと思う)。Googleドライブだから共有もできる。とにかく最高です。

この記事では、そんな〝Google Colaboratory〟の導入方法をご紹介していこうと思います。

〝1分でPythonことはじめ〟 のすべての手順

「1分」っていうのは意外と大げさじゃなくて、もしかしたら「使いはじめるだけなら1分もかからない」かもしれません。

Google Colaboratoryにアクセス

まずは、Google Colaboratoryにアクセスします。

Googleにログインしていない場合はこの画面。

Google Colaboratory にアクセス

ログインしている場合はこの画面が表示されます。

Google Colaboratory にアクセス

ログインして「PYTHON3の新しいノートブック」(画像の赤枠部分)をクリックすることで、空白のノートブックを開くことができます。

Google Colaboratoryを使う

ノートブックを開いたら、Pythonを使う準備は完了です

「環境をつくる」という感覚はなく「ファイルの作成」のように使えるというスグレモノ。あとは、コードを打ち込んで実行するだけです。

ここにサンプルのコードを掲載しますので、ぜひ試してみてください。

ランダムウォークのテスト
import numpy as np
import pandas as pd
np.random.seed(42)
T=200
data_raw = pd.DataFrame(
        {'IID': np.random.normal(size=T),
         'linear_tend': np.random.normal(size=T) + [x /10 for x in range(T)],
         'random_walk': np.cumsum(np.random.normal(size=T))
         })
data_raw.plot(figsize=(10, 5))
data_mean = data_raw.cumsum().apply(
        lambda x: x / np.arange(1, data_raw.shape[0] + 1))
data_mean.rename(columns={x: 'mean_' + x for x in data_mean.columns},
                 inplace=True)
data_mean.plot(figsize=(10, 5))

上のコードをセルに入力して、実行アイコン(下図の赤枠部分)をクリックします。

google colaboratory run

するとグラフが2つ表示されるはずです。

google coraboratory result

これだけです!簡単ですね^^

筆者がGoogle Colaboratoryでやっていること

最近では、Pythonを使ったバックテストはすべてGoogle Colabを使っています。

リンク先の記事のほとんどはGoogle Colabを使って検証したものです。バックテストをしたり、統計学の信頼区間という考え方で分析をしたりしています。

具体的には以下のようなことをやっています。

  • MT4のhstファイルを読み込む
  • hstファイルのデータを様々な足種にリサンプル
  • Pandasでデータの形を整える
  • TA-Libによるテクニカル分析の計算
  • 条件を組んでバックテスト
  • 結果のデータの統計をとる
  • 結果のデータをグラフ化する
  • 結果のデータをExcelファイルに書き出してダウンロードする

この辺りの詳しいやり方は、要望があれば解説したいと思います。

メールアドレスの登録に抵抗のない方は、この記事の最後に「資金管理(サイジング)が成績に及ぼす影響のバックテスト」で使用したGoogle Colabを用意していますので、ぜひダウンロードしてみてください。

まとめ

最後までお読みいただきありがとうございます。

ここまでお読みくださった方は、「Pythonで何ができるのか」や「Google Colabを使う手順」についてはご理解いただけたんじゃないでしょうか。

Pythonを無料で、こんなに手軽に使えるプラットフォームは他にないと思います。個人的には「こんなに良いものを使わない手はないんじゃないかな」と思います。

最近はバックテストにかなり力を入れていまして、備忘録とアウトプットを兼ねて積極的に結果を掲載しています。バックテストのプログラムは今後も追加機能を開発していく予定で、最終的には、「日足以下の時間軸で、相関係数をみながら複数銘柄の分散投資をさせる」ところまで持っていきたいと考えています。

ノウハウはどんどん公開することにしているので、ぜひ、他の記事もお読みください^^

著者

タカハシ / 9年目の兼業トレーダー

元・日本料理の板前。現在は、投資やプログラミング、動画コンテンツの撮影・制作・編集などを。更新のお知らせは、各SNSやLINEで。LINEだと1対1でお話することもできます!

このブログと筆者について運用管理表

  • 記事をシェア
© Investment Tech Hack 2021.