FX BOT 3: Python ✕ Googleシート 5つの基本操作と関連情報まとめ

FX BOT 3: Python ✕ Googleシート 5つの基本操作と関連情報まとめ

FXのBOTを作成するにあたりGoogle sheets APIのテストを行いました。それに伴って集めた情報とテストの備忘録をここにまとめます。主に自分用。

BOTのトレードや残高の履歴をGoogleシートに記録しておくと、稼働状況の把握に便利かなと考えています。期待値や破産の確率、ドローダウンなどを常に自動算出したり、設定した条件でエントリーされているかを確認することができます。

Python ✕ Googleシート 5つの基本操作と関連情報

  1. BOT ✕ Googleシートで出来ること
  2. 参考
  3. APIを使用する準備
    1. Google Colab
    2. Google APIs
    3. Googleシート
    4. APIに接続
  4. セルにデータを入力する (1)
  5. シートにデータを1行追加する (2)
  6. セルデータを取得する (3)
  7. 一番下の行のデータを取得する (4)
  8. シート全体のデータを取得する (5)

1. BOT ✕ Googleシートで出来ること

他のツールでも実現できることではあるが、「元々、日常的に使っているツールである」という点が最も大きい。

  • 残高の記録 → 分析の自動算出
  • トレードの記録 → 分析の自動算出
  • ロジックが正しく動いていることの確認
  • Google apps scriptを使って自由自在な分析
  • グラフを追加してダッシュボード的な使い方
  • スマホでも確認できるよ

自由自在な分析の最たる例は「破産の確率」の算出。

目次へ

2. 参考

今回のテストを行うにあたって参考にした情報。

目次へ

3. APIを使用する準備

ここ掲載しているテストには以下の準備が必要。

  1. Google Colab
  2. Google APIsの設定
  3. 接続するGoogleシートと設定
  4. Google sheetsへのAPI接続

目次へ

3―1. Google Colab

まずは、Google Colaboratory にアクセス。ログインしている場合は以下の画面が表示される。

Google Colaboratory にアクセス

「PYTHON3の新しいノートブック」(画像の赤枠部分)をクリックすると、空白のノートブックを開くことができる。これだけでPythonのテストを行うことができる。サーバーを用意して環境を構築する必要がない。

目次へ

3―2. Google APIs

Google APIs や Googleシートの設定、APIへの接続についてはたぬハックさんの記事が大変参考になった。自分用に簡単な手順を記録しておくが、はじめての人はたぬハックさんの記事を見ながら行った方が良い。スクリーンショットも豊富で非常にわかりやすい。

  1. Google APIs にアクセス
  2. Python用のプロジェクトを作成する
  3. Google Drive API を有効にする
  4. Google Sheets API を有効にする
  5. 認証情報を設定する

3~5はすべて作成したプロジェクトの下で行うこと。

認証情報の設定方法

  1. サイドバーの「認証情報」→「認証情報を作成」
  2. 「サービスアカウントキー」を選択
  3. 「サービスアカウント名」を入力(どういう動きをするのかが分かる名前にすると良い)
  4. 役割は「Project」→「編集者」を選択
  5. キーのタイプは「JSON」
  6. 「作成」をクリック

ダウンロードしたJSONはGoogle Colabにアップロードする必要がある。

目次へ

3―3. Googleシート

情報を記録するGoogleシートを用意する。

  1. Googleシートを作成
  2. APIsから取得したJSONに記載されている「client_email」のアドレスで共有設定(編集者に)
  3. Googleシートのキーを控えておく
Googleシートのキー

目次へ

3―4. APIに接続

まずは、Google ColabにサービスアカウントキーのJSONをアップロード。

Google colabにファイルをアップロード

以下のコードを実行して、Google Colabに必要なモジュールをインストール。

モジュールをインストール

!pip install gspread
!pip install oauth2client

同じくコードを実行して、GoogleのAPIに接続する。

※ 作成したGoogleシートのキーと、アップロードしたサービスアカウントのJSONファイル名を入力する必要がある。

APIに接続

import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials 

scope = [ 'https://spreadsheets.google.com/feeds' ,'https://www.googleapis.com/auth/drive' ]
SPREADSHEET_KEY = 'Your Google Spreadsheet key'

credentials = ServiceAccountCredentials.from_json_keyfile_name( 'Your JSON file name' ,scope )
gc = gspread.authorize( credentials )
ss = gc.open_by_key( SPREADSHEET_KEY )

これで準備は完了。以降のコードを実行することでGoogleシートの操作ができる。

目次へ

4. セルにデータを入力する (1)

google colabからgoogleシートのセルに入力

セルに入力

sh = ss.worksheet( 'TEST' )

value = 'hoge'
sh.update_acell( 'a1' ,value )

存在しないセルに入力しようとするとエラーが返ってくる。(gifの場合2行目以降は存在しない)

目次へ

5. シートにデータを1行追加する (2)

google colabからgoogleシートにデータを1行追加する

1行追加

sh = ss.worksheet( 'TEST' )

values = [1,2,3,4,5,6,7,8,9]

for i in range( 5 ) :
  sh.append_row( values )

データが入力されている範囲を検知して、一番に1行追加してくれる。データに空白の列が含まれていると上手く動作しないケースがある。

目次へ

6. セルのデータを取得する (3)

google colabでgoogleシートのセルを取得する

セルを取得

sh = ss.worksheet( 'TEST' )

sh.acell( 'c4' ).value

存在しないセルを見に行くとエラー。

目次へ

7. 一番下の行のデータを取得する (4)

google colabでgoogleシートの一番下の行のデータを取得する

最下行を取得

sh = ss.worksheet( 'TEST' )

last_row = sh.row_count
sh.row_values( last_row )

空白を含めた一番下の行を取得するので注意が必要。つまり、余分な行があると空の値が返ってくる。

目次へ

8. シート全体のデータを取得する (5)

google colabでgoogleシート全体のデータを取得する

シート全体を取得

sh = ss.worksheet( 'TEST' )

sh.get_all_values()

目次へ

Back to Top

abbamboo

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

このブログの目的は、「学習の備忘録」と「アウトプットして理解を深めること」。「トレードで稼ぐために学んだこと」を徹底的に公開していきます。

元・日本料理の板前、現・金融畑のウェブ屋さん
保有資格:証券外務員1種、認定テクニカルアナリスト

更新のお知らせは、各SNSやLINEで。LINEだと1対1でお話することもできます!

>> このブログと著者についての詳細
>> 使っているツールの紹介

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のアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。