金融

Pythonで仮想通貨自動売買ボットを作る — 初心者向け完全ガイド

USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。

Pythonで仮想通貨自動売買ボットを作る — 初心者向け完全ガイド

なぜPythonで自動売買ボットを作るのか

pile gold silver bitcoins cryptocurrency

仮想通貨市場は24時間365日稼働しており、人間が常に監視することは不可能だ。自動売買ボットを使えば、設定した条件で自動的に売買を実行できるため、感情的な判断ミスを排除し、チャンスを逃さない取引が可能になる。

PythonはシンプルなAPIとライブラリが充実しており、初心者でも取り組みやすい言語だ。このガイドでは、RSI(相対力指数)戦略を使った基本的な自動売買ボットを段階的に構築する方法を解説する。

必要な環境を準備する

person holding coin front computer

まずPython 3.8以上をインストールする。その後、必要なライブラリをインストールしよう。

bash
pip install requests pandas ta python-dotenv schedule

requestsはAPI通信、pandasはデータ処理、taはテクニカル指標の計算、python-dotenvは環境変数管理に使用する。

BithumbのAPIキーを取得する

BithumbのAPIはREST形式で提供されており、口座情報・注文・残高照会などに使用できる。

  1. 1Bithumbにログイン後、[API管理] ページへ移動
  2. 2API名を設定し、[照会/注文/出金]の権限を付与(出金は不要なら外す)
  3. 3発行されたAPI Keyと Secret Keyを.envファイルに保存
BITHUMB_API_KEY=ここにAPIキーを入力
BITHUMB_SECRET_KEY=ここにシークレットキーを入力

RSI戦略の基本ロジック

RSI(Relative Strength Index)は0〜100の数値で相場の過熱・過売を測る指標だ。

  • RSI < 30:売られすぎ → 買いシグナル
  • RSI > 70:買われすぎ → 売りシグナル
python
import pandas as pd
import ta

def calculate_rsi(prices, period=14):
    price_series = pd.Series(prices)
    rsi = ta.momentum.RSIIndicator(close=price_series, window=period)
    return rsi.rsi().iloc[-1]

メインのボットコード

以下が基本的な売買ロジックの実装例だ。

python
import requests
import time
import hmac
import hashlib
from dotenv import load_dotenv
import os

load_dotenv()

API_KEY = os.getenv("BITHUMB_API_KEY")
SECRET_KEY = os.getenv("BITHUMB_SECRET_KEY")
SYMBOL = "BTC"
RSI_BUY_THRESHOLD = 30
RSI_SELL_THRESHOLD = 70

def get_current_price(symbol):
    url = f"https://api.bithumb.com/public/ticker/{symbol}_KRW"
    response = requests.get(url)
    data = response.json()
    return float(data['data']['closing_price'])

def get_ohlcv(symbol, count=20):
    url = f"https://api.bithumb.com/public/candlestick/{symbol}_KRW/1h"
    response = requests.get(url)
    data = response.json()
    closes = [float(candle[2]) for candle in data['data'][-count:]]
    return closes

def trade_logic():
    closes = get_ohlcv(SYMBOL)
    rsi = calculate_rsi(closes)
    price = get_current_price(SYMBOL)
    
    print(f"現在価格: {price:,.0f}KRW | RSI: {rsi:.2f}")
    
    if rsi < RSI_BUY_THRESHOLD:
        print("買いシグナル検知 — 注文を検討")
        # ここに注文コードを追加
    elif rsi > RSI_SELL_THRESHOLD:
        print("売りシグナル検知 — 決済を検討")
        # ここに決済コードを追加

# 1時間ごとに実行
while True:
    try:
        trade_logic()
    except Exception as e:
        print(f"エラー発生: {e}")
    time.sleep(3600)

ストップロスの実装

ストップロスは資本を守る最も重要な安全装置だ。進入価格から一定割合下落したら自動で損切りする仕組みを必ず実装しよう。

python
ENTRY_PRICE = None
STOP_LOSS_PCT = 0.05  # 5%下落で損切り

def check_stop_loss(current_price):
    global ENTRY_PRICE
    if ENTRY_PRICE and current_price < ENTRY_PRICE * (1 - STOP_LOSS_PCT):
        print(f"ストップロス発動: {current_price:,.0f}KRW(進入価格: {ENTRY_PRICE:,.0f}KRW)")
        # 損切り注文を執行
        ENTRY_PRICE = None

実運用前に必ず確認すること

実際の資金を使う前に、以下を必ず実施しよう。

  1. 1ペーパートレード(模擬取引):実際の注文を出さずにロジックのみを検証する
  2. 2バックテスト:過去の価格データでシミュレーションし、勝率・ドローダウンを確認
  3. 3少額から開始:本番環境では最小単位から始め、動作を確認してから増額
  4. 4ログ記録:全ての取引と判断根拠をファイルに保存しておく

まとめ

Pythonによる自動売買ボットの基本構造は比較的シンプルだ。RSI戦略から始めて、バックテストで戦略を検証し、ストップロスを必ず実装した上で少額から本番稼働させることが安全な進め方だ。市場は常に変化するため、定期的に戦略の有効性を見直すことも忘れずに。

🔧 Related Free Tools

関連