前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
本記事では「暗号通貨のパンプ&ダンプスキームの検出」に関する論文をベースにbot開発の過程をまとめていきます。
Detecting Crypto Pump-and-Dump Schemes: A Thresholding-Based Approach to Handling Market Noisehttps://t.co/ctCJEV1MBs
— よだか(夜鷹/yodaka) (@yodakablog) March 22, 2025
ここでは、既存のBotに新しい戦略(ブレイクアウト戦略や機械学習モデル)を追加する方法を紹介します。
✅ 新戦略を追加する目的
- 📈 複数戦略でリスク分散(相場の変化に強い構成へ)
- 🧠 データ駆動型の意思決定(従来のルールベースと併用)
- 🔄 既存Botの柔軟な拡張(新モジュールとして組み込む)
🧩 戦略の追加方法:構成イメージ
strategies/ ├── breakout_strategy.py ← ブレイクアウト戦略 ├── ml_predictor.py ← MLモデル戦略 (e.g. XGBoost, LSTM) ├── __init__.py
メインロジック(executorなど)で戦略を切り替え可能にします:
from strategies.breakout_strategy import breakout_signal from strategies.ml_predictor import ml_predict_signal signal = breakout_signal(df) # or signal = ml_predict_signal(df)
📈 ① ブレイクアウト戦略の例
def breakout_signal(df, window=20): high = df['high'].rolling(window).max() low = df['low'].rolling(window).min() price = df['close'].iloc[-1] if price > high.iloc[-2]: return "buy" elif price < low.iloc[-2]: return "sell" else: return None
🔎 「過去N期間の高値を超えたら買い/安値を割ったら売り」というシンプルかつ強力なモメンタム型ロジック。
🧠 ② 機械学習モデルによる戦略の例
特徴量例(データ準備):
pythonコピーする編集するdf['returns'] = df['close'].pct_change()
df['ma_5'] = df['close'].rolling(5).mean()
df['volatility'] = df['returns'].rolling(10).std()
学習済みモデルを使った推論(例:XGBoost)
import joblib import pandas as pd model = joblib.load("models/xgb_model.pkl") def ml_predict_signal(df): latest = df.iloc[-1:][["returns", "ma_5", "volatility"]] pred = model.predict(latest)[0] return "buy" if pred == 1 else "sell" if pred == -1 else None
📌 学習モデルは過去データで「次の価格が上がる/下がる/横ばい」などを分類予測させます。
🔄 ③ 複数戦略を切り替えるロジック例
def select_signal(strategy_name, df): if strategy_name == "breakout": from strategies.breakout_strategy import breakout_signal return breakout_signal(df) elif strategy_name == "ml": from strategies.ml_predictor import ml_predict_signal return ml_predict_signal(df) else: return None
→ .env
やconfig.yaml
から選択戦略を動的に切り替え可能!
🔜 次のステップ候補
ステップ | 内容 |
---|---|
📁 strategies/ フォルダ構成の準備 | 既存Botから切り出し・共通化 |
⚙️ config.yaml に戦略切替パラメータを追加 | strategy: breakout など |
📉 学習モデルの作成 or 取得 | XGBoost / LSTMなど |
🧪 バックテストによる精度評価 | 各戦略の勝率・収益比較 |
次に進める内容としては:
breakout_strategy.py
を完成させたい- ML戦略の学習コード(XGBoost or LSTM)を作りたい
- 複数戦略を切り替える管理ロジックを構築したい
などがあります。

次回は、他通貨ペアのBotを追加し、複数のBotを並列で運用する方法について、設計から実装、運用までを具体的に説明します。
-
-
開発記録#166(2025/4/2)「論文ベースのbot開発フローpart.28」
続きを見る