1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自動売買Botを作って分かった日本の取引所API比較 ── 実装者視点の本音レビュー

1
Posted at

評価軸

取引所APIの比較記事は山ほどあるが、大半は公式サイトの表をコピーしただけ。

この記事は 実際にBot(FastAPI + ccxt)を組んで全取引所に接続した結果 分かった「実装者視点の違い」をまとめる。評価軸はこの4つ。

評価軸 意味
注文の通しやすさ 成行注文が使えるか、独自仕様のハンドリングが必要か
データ取得の充実度 OHLCV(ローソク足)・約定履歴が取れるか
テスト環境 サンドボックス/テストネットがあるか
手数料 Maker/Takerの実コスト

「APIドキュメントが読みやすいか」みたいな主観は入れない。コードで測れる違いだけを書く。

比較表

注文まわり

取引所 成行注文 約定確認方法 特記事項
Coincheck 指値フォールバック fetchMyTrades 手数料0%が魅力
GMOコイン 指値フォールバック fetchMyTrades ccxt対応が不完全
bitFlyer 指値フォールバック fetchMyTrades 取引量割引あり
Zaif 板追随(独自実装必要) fetchClosedOrders(時刻照合) order_id=0問題あり
bitbank 対応 fetchMyTrades Makerリベートあり
Binance Japan 対応 fetchMyTrades 海外版と同等の安定性

Zaifだけ異質。成行注文APIがないため、指値注文を出して板の動きを30秒追跡し、未約定分をキャンセルして再発注する「板追随ロジック」を自前で実装する必要がある。

# Zaifの板追随:指値→30秒待機→キャンセル→ベストプライスで再発注
order = await create_limit_order(symbol, side, amount, best_price)
await asyncio.sleep(30)

if order["remaining"] > 0:
    await cancel_order(order["id"], symbol)
    # ベストask/bidで再発注
    new_price = ticker["ask"] if side == "buy" else ticker["bid"]
    await create_limit_order(symbol, side, order["remaining"], new_price)
    await asyncio.sleep(10)

一方Binance JapanやbitbankはccxtのcreateMarketOrderがそのまま使える。実装コストが段違い。

データ取得

取引所 OHLCV(ローソク足) 代替手段 使える戦略
Coincheck 非対応 CoinGecko経由 DCA・スキャルピングのみ
GMOコイン 非対応 CoinGecko経由 DCA・裁定のみ
bitFlyer 非対応 CoinGecko経由 DCA・スキャルピングのみ
Zaif 一部対応(BTC/JPYのみ) CoinGecko経由 DCA・スキャルピングのみ
bitbank 全ペア対応 不要 ルールベース・グリッド含む全戦略
Binance Japan 全ペア対応 不要 全戦略

OHLCVが取れないとMA(移動平均)クロスやMACD判定ができない。つまりルールベース戦略やグリッド戦略が使えない。

# OHLCV未対応の取引所はDCAにフォールバック
if exchange_name in ["Zaif", "bitFlyer", "Coincheck"]:
    signal = get_dca_signal(bot, symbol, ticker)  # ローソク足なしで動く戦略
else:
    ohlcv = await fetch_ohlcv(symbol, timeframe="1h")
    signal = get_rule_signal(bot, symbol, ohlcv)  # MA/RSI/MACD判定

テスト環境

取引所 サンドボックス 影響
Coincheck なし 本番でテストするしかない
GMOコイン なし 本番でテストするしかない
bitFlyer なし 本番でテストするしかない
Zaif なし 本番でテストするしかない
bitbank あり 安全にテスト可能
Binance Japan あり 安全にテスト可能

国内取引所は全滅。テストネットがないので、最小ロットで本番環境に注文を出すしかない。Botのバグで意図しない注文が入るリスクがある。

自分は日次損失リミット・ドローダウンリミット・連続損失ストップなどの安全装置を多重に入れることで対処している。

手数料

取引所 Taker(成行) Maker(指値) 特徴
Coincheck 0.0% 0.0% 完全無料
Zaif 0.1% 0.0% Maker無料
GMOコイン 0.05〜0.09% -0.01〜-0.03% Makerはリベート(もらえる)
bitbank 0.12% -0.02% Makerはリベート
bitFlyer 0.15% 0.15% 取引量で変動
Binance Japan 0.1% 0.1% シンプル

Coincheckの完全無料は強い。高頻度取引なら手数料差は効いてくるので、スキャルピング系はCoincheckかZaif(Maker)が有利。

bitbankとGMOコインの「負のMaker手数料(リベート)」は指値注文を置くだけでお金がもらえる。マーケットメイキング戦略との相性がいい。

結論

「どの取引所が一番いいか」は戦略による。自分が実装して得た結論はこう。

やりたいこと おすすめ
とにかく簡単に始めたい Binance Japan(API安定・テストネットあり・全戦略対応)
国内で手数料を抑えたい Coincheck(完全無料)またはZaif(Maker無料)
MA/MACD使ったルールベース戦略 bitbank or Binance Japan(OHLCV対応必須)
マーケットメイキング bitbank or GMOコイン(Makerリベートあり)
実装の手間を最小にしたい Binance Japan(ccxtの標準機能がそのまま動く)

一つ言えるのは、ccxtで抽象化されていても取引所ごとの差異は消えないということ。特にZaifは独自実装が大量に必要になる。

初めてBot開発に挑戦するなら、API安定性とテストネット対応の観点でBinance Japanが一番ストレスが少ない。国内取引所に絞るならCoincheckが手数料無料+APIドキュメントが日本語で読みやすく、始めやすい。

確定申告の準備もお忘れなく

取引所を複数使い分けてBot運用すると、取引件数が爆増する。確定申告の損益計算は手動では不可能なので、ツールに任せるのが正解。


取引所のAPI比較を実際にやってみたい人は、まずAPIキーを発行して実際のレスポンスを見るのが最速の学習法。確定申告の損益計算も忘れずに → 利用者No1の仮想通貨税金計算サービス【CRYPTACT(クリプタクト)】

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?