APIを連携させて自動売買を作りたいけど、どのように連携すればいいの??
そんな悩みを解決する記事を書きました。
APIって聞くとハードルが高く感じがしますよね。
プログラミングの勉強を始めてみたけど、何を作っていいかわからなくて挫折するのがプログラミングです。
「せっかく始めたプログラミングで何かを作りたい!!」
そんな方に向け、プログラミングAPI超入門書を作成しました。
- この記事で分かること
- APIの取得方法
- APIの接続方法
MEXCのAPIキーの取得
APIの取得がまだの方は以下の記事を参考に取得してください。
結構簡単なので5分程度あれば取得可能です。
Python実行環境の確認
私は以下のような環境でコードを実行しています。
Apple M1 2020
pyenv 2.3.35
Python 3.11.7
Pythonで実行するためのディレクトリ構成
全体のディレクトリ構成図です。
あとで色々な機能の拡張や複数の取引所のAPIを追加できるようにしています。
bot
├── crypt_api
│ └── mexc.py
├── main.py
├── settings.ini
└── settings.py
プロジェクトディレクトリを構成するコマンド
以下はファイルを構成するコマンドです。
初心者の方は一つずつ確認しながら実行するといいです。
今回はプロジェクトディレクトリを「bot」としております。
なのでまず「bot」というディレクトリを作成します。
mkdir bot
以下のコマンドでプロジェクトディレクトリ内に移動します。
cd bot
「bot」内に「crypt_api」ディレクトリを作成します。
取引所ごとのクラスやメソッドを管理するためのフォルダとなります。
mkdir crypt_api
「crypt_api」内に「mexc.py」ファイルを作成します。
仮想通貨取引所であるMEXCに関する処理を行うためのファイルとなります。
touch crypt_api/mexc.py
bitbankの取引所が増えた場合は同じ要領で「bitbank.py」を増やしてください。
次にpythonを実行するためのファイルを作成します。
touch main.py
次にAPIキーを管理するためのファイルを作成します。
このファイルをgit hubにUPするのもNGです。
外部にAPIキーを漏らさないように気をつけてください。
touch settings.ini
APIキーの情報を「settigns.ini」から取得したり、その他設定を行うためのファイルです。
touch settings.py
以下は一括でフォルダやファイルを作成するコマンドです。
上記で1行1行実行した場合は下記コマンドは実行不要です。
mkdir -p bot/crypt_api
touch bot/crypt_api/mexc.py bot/main.py bot/settings.ini bot/settings.py
PythonでAPIキーのテスト表示
一旦全てのフォルダやファイルが作成できたら、main.pyからsettings.iniのAPIキーを呼び出して表示してみます。
- settings.iniの編集
- settings.pyの編集
- main.pyの編集
- main.pyの実行
1.settings.iniの編集
まずはsettings.iniに以下のようにコードを書きます。
今後bitbankやbitFlyerのAPIが増えても楽に管理できるように設計しています。
xxxxxxxxxxxxxxxxを取得したapi keyに置き換えてください。
「xxxxxxxxxxxxxxxx」の部分は特にクオーテーションで挟む必要はないです。
[mexc]
api_key = xxxxxxxxxxxxxxxx
secret_key = xxxxxxxxxxxxxxxxxxxxxxxx
新しいAPI(例:bitbankの取引所)が増えた場合は以下のように追加していってください。
[mexc]
api_key = xxxxxxxxxxxxxxxx
secret_key = xxxxxxxxxxxxxxxxxxxxxxxx
# bitbank API以下追加
[bitbank]
api_key = vvvvvvvvvvvvvvvv
secret_key = vvvvvvvvvvvvvvvvvvvvvvvv
2.settings.pyの編集
次はsettings.pyに以下のようにコードを書きます。
簡単に説明すると、以下のコードは、
「settings.ini」から「configparser」を通じてAPIキーの情報を読み込んでいます。
import configparser
conf = configparser.ConfigParser()
conf.read('settings.ini')
mexc_api_key = conf['mexc']['api_key']
mexc_secret_key = conf['mexc']['secret_key']
新しいAPI(例:bitbankの取引所)が増えた場合は以下のように追加していってください。
import configparser
conf = configparser.ConfigParser()
conf.read('settings.ini')
mexc_api_key = conf['mexc']['api_key']
mexc_secret_key = conf['mexc']['secret_key']
# bitbank API以下追加
bitbank_api_key = conf['bitbank']['api_key']
bitbank_secret_key = conf['bitbank']['secret_key']
3.main.pyの編集
次はmain.pyに以下のようにコードを書きます。
if __name__ == '__main__':
はpythonを実行するためのおまじないみたいなものです。
以下のコードは、
先ほどコードを書いた「settings.py」の「mexc_api_key」を出力するだけのコードです。
import settings
if __name__ == '__main__':
print(settings.mexc_api_key)
それでは実行しましょう!
4.main.pyの実行
以下のように出力をしAPIキーを確認します。
python3 main.py
上の写真のようにAPIキーが出力されればOKです。
vs_codeを使っているのであればmain.pyを開いている状態で実行ボタンをクリックすれば実行されると思います。
初心者の方は同じ要領でシークレットキーも出力してみてください。
APIを使ってMEXCが取り扱っている通貨を取得する
ここから少し難易度が上がりますが、頑張ってください。
- ccxtというライブラリの取得
- crypt_api/mexc.pyの編集
- MEXCで使っている通貨の取得(表示まで)
1.ccxtというライブラリの取得
ccxtというライブラリを導入します。
様々な仮想通貨取引所のAPIを統一的な形で利用できるようにするPythonライブラリです。
ccxtを使用することで、異なる取引所に対するトレードやデータ取得の処理を、ほぼ同じコードで実装することができます。
異なる取引所のAPIを学ぶ手間を省き、より効率的にトレードボットやデータ収集ツールを開発が可能となります。
簡単にいうと
異なる取引所のAPIを効率よく使えるするようにするツール
です。
インストール方法は以下のようになります。
- pipを使用している場合
-
pip install ccxt
- pipenvを使用している場合
-
pipenv install ccxt
2.crypt_api/mexc.pyの編集
次に、いつでも他のファイルから関数を呼び出せるようにクラスを作ります。
初心者の方にはまだ難しいと思いますが、まずは真似してみて感覚を掴んでみてください。
MEXC用のclassを作成
以下のようにコードを書きます。
以下はコピー用のコードとなります。
import ccxt
import settings
class MexcApiClient(object):
def __init__(self, api_key=settings.mexc_api_key, secret_key=settings.mexc_secret_key):
self.mexc_client = ccxt.mexc({'apiKey': api_key, 'secret': secret_key})
以下の部分でccxtというライブラリがAPIを使って取引所であるmexcと接続してくれます。
ccxt.mexc({'apiKey': api_key, 'secret': secret_key})
3.MEXCで使っている通貨を取得する
先ほど作ったclassにメソッド(関数)を作成します。
理解できていない方はそのまま真似してみてください。
以下赤枠追記箇所です。
以下はコピー用のコードとなります。
import ccxt
import settings
class MexcApiClient(object):
def __init__(self, api_key=settings.mexc_api_key, secret_key=settings.mexc_secret_key):
self.mexc_client = ccxt.mexc({'apiKey': api_key, 'secret': secret_key})
# MEXCから取り扱っている通貨の取得するメソッドの追記
def get_market_currencies(self):
currencies = self.mexc_client.load_markets()
print(currencies)
以下の部分でmexcから取り扱っている通貨をロードしています。
self.mexc_client.load_markets()
次はこのメソッドをmain.pyから呼び出してみます。
main.pyの編集
main.pyに戻って以下のようにコードを追記します。
以下はコピー用のコードとなります。
import settings
# 以下追記
from crypt_api.mexc import MexcApiClient
if __name__ == '__main__':
# print(settings.mexc_api_key) 一旦コメントアウト
# 以下追記
mexc_api = MexcApiClient()
mexc_api.get_market_currencies()
再度実行しましょう。
python3 main.py
以下のように表示されればAPIで連携はできています。
Pythonを学ぶならやはりAIスキルにも興味があると思います。
そこでオススメのスクールがAidemy PREMIUMとなります。
未経験でもAIを使いたい人にオススメのスクールです。
無料で相談もできるので迷った方は個別相談をしてみてください。
\ 無料で個別相談 /
MEXCのAPIを使ってpythonで実行する方法 まとめ
本記事では「MEXCのAPIを使ってpythonで実行する方法」ついて解説しました。
- APIの取得方法
- APIの接続方法
APIの扱いは意外と簡単だったのではないですか?
プログラミング初心者は独学での学習は挫折しやすい傾向にあります。
私も何回も挫折しました。
この不安定な時代、スキルを身につけるためにも思い切ってプログラミングスクールで学ぶのもいいと思います。
この記事をきっかけにプログラミングにハマり、自動売買やbotで豊かになると嬉しく思います。
最後まで読んでくださいありがとうございました。
MEXCのAPI取得がまだの方はこちらを参考にどうぞ。
Cardanoについての記事を書いていますので興味のある方はぜひご覧ください。
まだブログで月1万円稼いでいない方はこちらからの記事を参考にしてみて下さい。
コメント