前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
本記事では「暗号通貨のパンプ&ダンプスキームの検出」に関する論文をベースにbot開発の過程をまとめていきます。
Detecting Crypto Pump-and-Dump Schemes: A Thresholding-Based Approach to Handling Market Noisehttps://t.co/ctCJEV1MBs
— よだか(夜鷹/yodaka) (@yodakablog) March 22, 2025
🚀 システム統合とデプロイ (Docker + Kubernetes)
次のステップとして、以下のタスクを進めます。
✅ システム統合:データ収集、異常検出、取引執行、監視システムの統合
✅ Dockerコンテナ化:各機能をDockerコンテナに分割し、管理しやすくする
✅ Kubernetesデプロイ:スケーラブルな環境構築と自動リカバリー対応
1. システム構成
/crypto_trading_bot ├── data_collector.py # データ収集 ├── pnd_detector.py # P&Dイベント検出 ├── trade_executor.py # 取引執行 ├── monitoring_system.py # 監視システム ├── Dockerfile # Dockerコンテナ設定 ├── docker-compose.yml # ローカルでの統合テスト用 └── k8s/ ├── deployment.yaml # Kubernetesデプロイメント ├── service.yaml # Kubernetesサービス設定 └── configmap.yaml # 環境変数の管理
2. Dockerファイルの作成
Dockerfile
# ベースイメージ FROM python:3.12-slim # 作業ディレクトリ WORKDIR /app # 必要なパッケージをインストール COPY requirements.txt . RUN pip install -r requirements.txt # アプリケーションのソースコードをコピー COPY . . # コンテナ起動時の実行コマンド CMD ["python", "monitoring_system.py"]
requirements.txt
flask pandas matplotlib websockets requests ccxt scipy
docker-compose.yml (ローカル開発用)
version: '3.8' services: data_collector: build: . command: python data_collector.py volumes: - .:/app restart: always pnd_detector: build: . command: python pnd_detector.py volumes: - .:/app restart: always trade_executor: build: . command: python trade_executor.py volumes: - .:/app restart: always monitoring_system: build: . command: python monitoring_system.py ports: - "5000:5000" volumes: - .:/app restart: always
3. Kubernetes設定
deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: crypto-bot spec: replicas: 3 selector: matchLabels: app: crypto-bot template: metadata: labels: app: crypto-bot spec: containers: - name: data-collector image: crypto_bot:latest command: ["python", "data_collector.py"] envFrom: - configMapRef: name: crypto-bot-config - name: pnd-detector image: crypto_bot:latest command: ["python", "pnd_detector.py"] - name: trade-executor image: crypto_bot:latest command: ["python", "trade_executor.py"] - name: monitoring-system image: crypto_bot:latest command: ["python", "monitoring_system.py"] ports: - containerPort: 5000
service.yaml
apiVersion: v1 kind: Service metadata: name: crypto-bot-service spec: selector: app: crypto-bot ports: - protocol: TCP port: 80 targetPort: 5000 type: LoadBalancer
configmap.yaml
apiVersion: v1 kind: ConfigMap metadata: name: crypto-bot-config data: SLACK_WEBHOOK_URL: "https://hooks.slack.com/services/YOUR_WEBHOOK_URL" BYBIT_API_KEY: "YOUR_BYBIT_API_KEY" BYBIT_API_SECRET: "YOUR_BYBIT_API_SECRET"
4. 実行手順
(1) Docker環境でのローカルテスト
1.Dockerイメージのビルド
docker-compose build
2.コンテナの起動
docker-compose up
3.モニタリングシステムの確認
- ブラウザで
http://localhost:5000
にアクセスし、ダッシュボードが表示されれば成功
(2) Kubernetesデプロイ
1.Docker Hubへのイメージのアップロード
docker tag crypto_bot:latest your_dockerhub_username/crypto_bot:latest docker push your_dockerhub_username/crypto_bot:latest
2.Kubernetesクラスタへデプロイ
kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml kubectl apply -f k8s/configmap.yaml
3.デプロイ状況の確認
kubectl get pods kubectl get services
5. デプロイ後の確認
✅ ログの確認
kubectl logs <POD_NAME> -c data-collector
✅ 稼働状況の確認
kubectl get deployments
✅ サービス確認
kubectl get services
6. 次のステップ
- ✅ テストとデバッグ:システム全体の統合テスト
- ✅ 本番環境の最適化:KubernetesのAuto Scalingやリソース制御の導入
- ✅ セキュリティ強化:APIキーの安全な管理と、監視機能の強化

次回の記事では、システム全体の動作確認とデバッグに取り組みます。
-
-
開発記録#148(2025/3/25)「論文ベースのbot開発フローpart.10」
続きを見る