1分でPythonことはじめ|Google Colaboratory で投資のバックテスト

1分でPythonことはじめ|Google Colaboratory で投資のバックテスト

この記事を読むと、こんな風になれます。

・Python で何ができるのかがわかる
無料で、特別な環境はいらず、十分すぎるスペックの Google Colaboratory を使う手順を知る
一切の手間をかけずに Google Colaboratory でバックテストをはじめるためのテンプレートを入手

be happy

「まだ Python を使ったことがない」「Python を使い始めて間もない」「Python でバックテストをしてみたい」――この記事は、こんな方たちに向けて書いています。

Google Colaboratory は、Python歴1年以上で、Cloud9 や Paizaなど、いくつかのツールを使ってきたボクが自信をもってオススメするツールです。

かの有名な Google が提供していて、必要なのは Google のアカウントだけ。無料で、特別な環境はいらず、Googleドライブのファイルのように扱えて、十分すぎるスペック。しかも、1分で使い始めることができます(1分はちょっと言い過ぎかな・・)。

メールアドレスをご登録いただける方には、「一切の手間をかけずに Google Colaboratory で投資のバックテストをはじめるためのテンプレート」のプレゼントもご用意しています!

1分でPythonことはじめ|Google Colaboratory で投資のバックテスト

  1. Python って何?
    1. 今、データ分析界隈でもっとも伸びている
    2. Python を使えばこんなことができる
    3. Google Colaboratory で手軽に Python
  2. ”1分で Python ことはじめ” のすべての手順
    1. Google Colaboratory にアクセス
    2. Python を使う
  3. ボクが Google Colaboratory でやっていること
  4. まとめ
  5. プレゼント

1.Python って何?

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

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

「Python は今、データ分析界隈でもっとも伸びている」これに勝る「Python をすすめる理由」はないと思います。

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

スタックオーバーフロー:Pythonの驚異的な成長
引用元
stack overflow: The Incredible Growth of Python
スタックオーバーフロー:Pythonの驚異的な成長

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

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

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

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

目次へ

1-2.Python を使えばこんなことができる

Python を使えば何だってできます。できないことを探す方が難しいくらいです。

Python でできること

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

こんな風に書くと仰々しいですが、とにかく色んなことができます。コーディングは多くの言語の中で比較的やさしくて、汎用性が高く何でもできる最高の言語なんです。

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

目次へ

1-3.Google Colaboratory で手軽に Python

さて、そんな Python ですが、ほんの少し前まではちょっとだけ敷居の高い言語で、環境を用意するのに少し手間がかかるというのが難点でした。環境を用意するのにつまずいて諦めたという方も少なくないと思います。

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

そんなところに現れたのが「Google Colaboratory」。

google drive google colaboratory

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

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

目次へ

2.”1分で Python ことはじめ” のすべての手順

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

2-1.Google Colaboratory にアクセス

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

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

Google Colaboratory にアクセス

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

Google Colaboratory にアクセス

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

目次へ

2-2.Google Colaboratory を使う

実は、ノートブックを開いた時点で Python の環境ができあがっています。ビックリ、簡単。

「環境をつくる」という感覚はなく、「ファイルの新規作成」のように 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

これが Python です!
簡単ですね^^

目次へ

3.ボクが Google Colaboratory でやっていること

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

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

細かく書くと、こんな感じのことをやっています。

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

この辺りの詳しいやり方は、近い内に別の記事で解説したいと思います。

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

目次へ

4.まとめ

さてさて、最後までお読みいただきありがとうございます。
ここまでお読みくださった方は、「Python で何ができるのか」「Google Colaboratoly を使う手順」あたりはご理解いただけたんじゃないでしょうか。Python を無料で、こんなに手軽に使えるプラットフォームは他にないと思います。個人的には「こんなに良いものを使わない手はないんじゃないかな~~」と思うんです。

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

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

目次へ

Back to Top

Investment Tech Hack

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser. Investment Tech Hackではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。