前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
本記事では「暗号通貨のパンプ&ダンプスキームの検出」に関する論文をベースにbot開発の過程をまとめていきます。
Detecting Crypto Pump-and-Dump Schemes: A Thresholding-Based Approach to Handling Market Noisehttps://t.co/ctCJEV1MBs
— よだか(夜鷹/yodaka) (@yodakablog) March 22, 2025
以下に、自動デプロイ化 / ダッシュボード連携 / 複数戦略統合のための方法を、順に詳しく説明します。
🚀 ① 自動デプロイ化
🔧 方法1:HelmチャートによるBotの一括デプロイ
📁 Helm構成例
helm-bot-chart/ ├── templates/ │ ├── deployment.yaml │ └── configmap.yaml ├── values.yaml
✅ values.yaml
(複数通貨ペア定義)
bots: - pair: btcusdt strategy: breakout - pair: ethusdt strategy: ml image: repository: yourdocker/crypto-bot tag: latest
✅ テンプレート(templates/deployment.yaml
)
{{- range .Values.bots }} apiVersion: apps/v1 kind: Deployment metadata: name: bot-{{ .pair }} spec: replicas: 1 template: spec: containers: - name: bot image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}" args: ["bots/{{ .pair }}/config.yaml"] env: - name: STRATEGY value: "{{ .strategy }}" {{- end }}
✅ インストール手順
helm install crypto-bots ./helm-bot-chart
→ 新しいペアを追加したら values.yaml
に1行追加するだけ!
📊 ② ダッシュボード連携(Prometheus + Grafana)
✅ 必要な構成
- Prometheus:Botのメトリクスを収集
- Grafana:可視化(勝率/PnL/エラー数など)
- Pushgateway:Bot側からメトリクスを手動Push
📤 Prometheusメトリクス送信コード例(Python)
import requests def push_metrics(pair, pnl, trades): data = f""" # TYPE bot_pnl gauge bot_pnl{{pair="{pair}"}} {pnl} # TYPE bot_trades gauge bot_trades{{pair="{pair}"}} {trades} """ requests.post("http://prometheus-push:9091/metrics/job/crypto_bot", data=data)
📈 Grafanaでのダッシュボード項目例
bot_pnl{pair="btcusdt"}
rate(bot_trades[1h])
kube_pod_container_status_restarts_total
🧠 ③ 複数戦略の統合管理
✅ 戦略選択ロジック(例)
def select_strategy(name): if name == "breakout": from strategies.breakout import breakout_signal return breakout_signal elif name == "ml": from strategies.ml import ml_predict_signal return ml_predict_signal
→ config.yaml
に戦略名を記載し、Botごとに切り替え可能。
symbol: ETHUSDT strategy: ml
→ 複数Botが同時に異なる戦略を実行可能!
✨ 発展的な構成(全体イメージ)
+---------------------+ +-------------------+ | BTC Bot (breakout) | ---> | Pushgateway | +---------------------+ +-------------------+ ↓ +------------------+ | Prometheus | +--------+---------+ ↓ +------------------+ | Grafana | +------------------+
✅ 次のステップ候補
フェーズ | 内容 |
---|---|
🔧 Helmの雛形を生成 | 各Botをchart化して一括展開 |
📈 Grafanaパネルテンプレート作成 | ペア別勝率・P&Lダッシュボード |
🤖 複数戦略を1つのBotで自動切替 | 市況変化に応じてML or ブレイクアウト選択 |
今後は
- 🎁 Helmチャート雛形
- 📊 GrafanaダッシュボードJSONテンプレート
- 🧠 複数戦略の自動切替ロジック
などのアプローチが考えられます。

Yodaka
このシリーズも30回目となり、キリが良いので一旦ここまでにします。今後も追加・検証等を重ねながら更新していきます。
関連
-
-
開発記録#169(2025/4/3)「遅延を考慮したアプローチ」
続きを見る