Bot

開発記録#153(2025/3/25)「論文ベースのbot開発フローpart.15」

2025年3月25日

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。

本記事では「暗号通貨のパンプ&ダンプスキームの検出」に関する論文をベースにbot開発の過程をまとめていきます。

🟢 運用開始後の最初のチェックポイントの設定

本番稼働を開始した後の初期フェーズで、システムの安定性とパフォーマンスを確認するために、以下のチェックポイントを設定します。


1. チェックポイントの目的

✅ システムが安定稼働しているかの確認
✅ 意図した通りに取引が行われているかの検証
✅ データや通知システムが正常に動作しているかの確認


2. チェックポイントのスケジュール

期間チェック内容実施頻度
初日 (デプロイ直後)システム全体の動作確認、ログ確認1時間ごと
1週間目取引成功率、APIエラー、Slack通知の確認毎日1回
2週間目P&Dイベント検出の正確性、利益率の評価週2回
1か月後全体のパフォーマンスレポート作成、パラメータ調整週1回

3. チェック項目リスト

チェック項目チェック内容コマンド / 手順
Podの状態Botが正常に稼働しているかkubectl get pods
データ収集状況データが欠損なく収集されているかkubectl logs <data_collector_pod>
P&D検出精度実際の市場データと比較し、誤検出がないかGrafanaのダッシュボード確認
取引成功率取引成功/失敗の割合Slack通知確認、トレードログ解析
APIエラーAPIタイムアウトや認証エラーの有無kubectl logs <trade_executor_pod>
Slack通知重大エラーやBot再起動の通知が届くかSlackチャネル確認
PrometheusのメトリクスCPU/メモリ使用率、トラフィックの確認kubectl top pods / Grafana確認

4. チェック結果のログ管理

  • 各チェックの結果は、ログファイルとして保存し、問題発生時の原因特定に活用します。
  • checkpoints.log ファイルへの記録例:
[2025-03-25 10:00] ✅ Pod稼働状態確認 - 正常
[2025-03-25 11:00] ✅ データ収集確認 - データ欠損なし
[2025-03-25 13:00] ⚠️ P&Dイベント検出 - 3件中1件は誤検出

ログ出力スクリプト (checkpoint_logger.py)

import time
import subprocess
from datetime import datetime

LOG_FILE = "./checkpoints.log"

def log_message(message):
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
    log_entry = f"[{timestamp}] {message}\n"
    with open(LOG_FILE, "a") as file:
        file.write(log_entry)
    print(log_entry)

def check_pod_status():
    result = subprocess.getoutput("kubectl get pods")
    if "Running" in result:
        log_message("✅ Pod稼働状態確認 - 正常")
    else:
        log_message("❌ Pod稼働状態確認 - 異常検出")

def check_slack_alert():
    # Slack通知確認 (手動チェック用)
    log_message("✅ Slack通知確認 - 正常")

if __name__ == "__main__":
    while True:
        check_pod_status()
        check_slack_alert()
        time.sleep(3600)  # 1時間ごとにチェック

スクリプトの実行

python checkpoint_logger.py

5. 初回の評価基準

🔎 初回の重要指標

稼働率 99%以上
P&Dイベント検出成功率 85%以上
取引成功率 60%以上
APIエラー発生率 5%以下
CPU使用率 70%以下


6. 次のステップ

  1. ✅ 本番稼働の初日チェック
  2. ✅ 初週チェック結果の分析
  3. ✅ 結果に基づいたシステムの調整 (必要があれば)
Yodaka

次の記事では、運用開始直後の初日チェックを実施し、システムの安定性と正常稼働を確認します。

関連
開発記録#154(2025/3/25)「論文ベースのbot開発フローpart.16」

続きを見る

-Bot