自動売買

【完全記録】ChatGPTで仮想通貨自動売買ボットを作る|環境構築編【Python×API接続】

【完全記録】ChatGPTで仮想通貨自動売買ボットを作る|環境構築編【Python×API接続】

はじめに

当記事は「ChatGPTにお任せで自動売買botを作成してみよう」というチャレンジの記録です。
前回はChatGPTに主に全体計画を立ててもらいました。

全体計画のうち、フェーズ1を再掲します。

当記事は、主に2番目に該当し、「環境構築編:Python & API接続を設定する」の内容になります。

ちなみに、ChatGPTは記憶の保存が苦手なようで、全体計画が毎回微妙に変わります。
従って、大まかな流れには沿っているものの、ブログ投稿内容と全体計画が正確に対応している訳ではありません。

仮想環境のセットアップ

最初に仮想環境を作成しました。
自動売買botに関係するスクリプトを動かすための開発環境の位置付けです。
作成しました、といっても私のアイディアではなく、ChatGPTからの提案です。
更にいえば、明示的に「私自身の意図・考えでそうした」と記載しない限りは、Chat-GPT頼みでございます。

●コード
(base) ディレクトリパス\bot_project>python -m venv venv
※仮想環境(venv)をbot_projectディレクトリの中に作成

ccxtのインストール

2番目にccxtライブラリをインストールしました。
ライブラリのインストールは、仮想環境を起動した状態で行っています。
取引所へのアクセスにはccxtを用いるようです。
ccxtの利用に関しては、自動売買botを製作したことが過去にあるので、特段違和感はありません。

●コード
pip install ccxt

インタープリタモードにて、ccxtが正常に動作し、取引所のリストを取得できることを確認しました。

●コード
>>> import ccxt
>>> print(ccxt.exchanges)
['ace', 'alpaca', 'ascendex', 'bequant',・・・(略

重要ファイルの作成

3番目に.envファイルを作成しました。
.envファイルには、パスワード等の重要な情報を格納するとのこと(ChatGPT談)。
直接コードに書いてしまうと、セキュリティ上よろしくない。
そこまで配慮してくれる有能っぷり。

●コード
echo. > .env

同様に、.gitignoreファイルを作成しました。
gitを利用してファイルの履歴管理を行う場合、.gitignoreに記載されたファイルは対象外となります。
パスワードを流出させてはまずいので、.gitignoreファイルには.envと記載しました。
これでgitにアップロードするコマンドを打鍵しても、.envは対象外となります。

●コード
echo. > .gitignore

python-dotenvライブラリをインストール

4番目に、python-dotenvライブラリをインストールしました。
取引所にアクセスしてデータを取得する際、パスワード等が必要になってくるため、botと.envファイルの連携が必要です。
この連携、すなわちbotから.envに書かれた情報を読み取りにいってくれるのがpython-dotenvライブラリです。

●コード
pip install python-dotenv

検証

最後に、ここまで構築した環境を利用して、実際にBybitに正常にAPI接続できるかを確認しました。
以下はChatGPTが構築したコードの一部です。
.envファイルからkey情報を読み取った上で、ccxtを用いてBybitにアクセスするコードとなっており、結果として接続に成功しました。
この結果を以て、ここまでの環境構築が問題なく進んでいることを確認しています。

●コード
import os
import ccxt
from dotenv import load_dotenv

# .envファイルを読み込む
load_dotenv()

# APIキーの取得
bybit_api_key = os.getenv("BYBIT_API_KEY")
bybit_secret_key = os.getenv("BYBIT_SECRET_KEY")

# Bybitの接続
bybit = ccxt.bybit({
    "apiKey": bybit_api_key,
    "secret": bybit_secret_key,
    "options": {"defaultType": "swap"}  # 必要に応じて変更
})

ちなみにコード内ではosもインポートしています。
これはChatGPTに解説してもらって使われ方を理解しました。

💡osとは?

Pythonの標準ライブラリで、インストール不要でimportするだけで使える。
主にOSの環境変数等を読み込むために利用される。
例えば上記のコードにおいては、.envファイルに記載のAPIキーを読み込みたい。
そのための手順として、
 ✅.envファイルの内容をOSの環境変数に追加
 ✅OSの環境変数からAPIキーを取得
という方法を採っています。

それぞれ対応しているのは以下のコードです。
 ✅load_dotenv()によって.envファイルを読み込み、OSの環境変数に追記
 ✅os.getenv("キー")によってOSの環境変数からAPIキー情報を取得

まとめ

本記事では、「環境構築編:Python & API接続を設定する」を説明しました。

ちなみに今後、AWSに環境の場を移したりします。
じゃあこの記事でやったことはなんやねん!ってなるんですが、時系列に沿った実録となっておりますのでご容赦ください。
この時は、「ChatGPT提案のもとこんなことをやった」ということですね。
つまりChatGPTによれば、

  • pythonのスクリプトを動かすだけ ⇒ 上記の仮想環境でOK
  • データ収集等、中断しないスクリプトを動かす ⇒ AWS等のクラウドで環境構築

という分岐になります。
この時はそういう前提を置かずに作業を進めたので、結果として前者の環境構築になりました。
そんな感じで、それ先に言ってくれ!!的なことはChatGPTでは頻発します。

人間と同じですね、ある意味。

さて、今日やった内容を全体計画のフェーズ1の中で振り返ると、

と2項目消化したことになります。
ちなみにPython & Gitの基礎学習は、やりながら覚えればいいや、と消化扱いです。

次回の記事では、データ収集 & 前処理(PostgreSQL + AWS S3)(未定) について記載します。
「データ収集 & 前処理(PostgreSQL + AWS S3)(未定)【近日公開】

📢 後日:次回記事としてAWSでの環境構築編を投稿しました!

【完全記録】ChatGPTで仮想通貨自動売買ボットを作る|環境構築編その2【EC2×PostgreSQL×Python連携】

▶ 次回記事を読む

💡 ブックマーク & SNSでのシェアをお願いします!

-自動売買
-, , , , , , , , , , , , , ,