こんにちは、よだかです。
・bot 強化の核心=バックテストとフォワードテストの使い分け に何度も迷子になった経験から、役割・適材適所を体系的に棚卸ししました。
・先日まとめた「仮想通貨 bot 戦略体系」を土台にして、各戦略のそれぞれでいつ・どのテストをどう走らせるか、必要コストと技術スタックまで具体化しました。(⚠️公開情報としてクリティカルな部分は伏せています)
・後半では 実務で外せない追加テスト 12 種 と、テスト全体をどこに位置づけるか――私の結論を共有します。
⚠️免責事項 / Disclaimer
本記事をご覧いただく前に、以下の点を必ずご確認ください。本文を閲覧・利用された時点で、本免責事項の内容すべてに同意いただいたものとみなします。
- 情報提供のみを目的としています
本記事は暗号資産関連 Bot・システム開発に関する技術的/研究的知見を共有するためのものであり、特定銘柄・金融商品の売買、投資戦略の実行、又は法的・税務・会計アドバイスを行うものではありません。いかなる内容も金融商品取引法その他関係法令に基づく「投資助言」「勧誘」「推奨」を構成しません。 - 自己責任原則
暗号資産取引・アルゴリズム運用には価格変動リスク、レイテンシリスク、流動性リスク、規制変更リスク、スマートコントラクト/API 脆弱性、システム障害その他多様なリスクが存在します。本記事で言及する戦略を実装・運用した結果発生したいかなる損失についても、筆者および関係者は一切責任を負いません。実行可否の判断・資金管理・リスク管理はすべて読者ご自身の責任で行ってください。 - 法令・取引所規約の遵守
各国の金融規制、税制、為替規制、及び取引所・ブロックチェーンネットワークの利用規約は地域・時期により大きく異なります。特にフロントランニング/サンドイッチ MEV/超高頻度取引などは一部法域または取引所で禁止または制限されている場合があります。実装・運用前に、必ずご自身で最新の関連法令・規約をご確認のうえ、遵守してください。
**法的注意**当該手法は取引所規約・競争法・各国証券規制により違法または禁止 に分類される場合があります。学術・研究用途の解説に留め、実運用する場合は必ず専門家(弁護士・コンプライアンス部門)の確認を得てください。 - 情報の正確性・最新性について
料金体系、API 制限、手数料レート、ハードウェア性能、ガス価格等の数値は 2025 年 5 月時点の公開情報または筆者の実測値を基にしています。以後のアップデートや市場環境の変化により数値が変動する可能性があります。筆者は内容の正確性・完全性・最新性を保証しません。 - 第三者コンテンツ・商標
本文中に記載された企業名・サービス名・製品名・商標は各社の登録商標または商標です。リンク先の外部サイト・資料はそれぞれの提供者が管理しており、内容の信頼性・合法性について筆者は責任を負いません。 - 知的財産権
本記事に含まれる図表・テキスト・コードスニペット等の著作権は、特に断りのない限り筆者に帰属します。引用・転載・二次利用は **出典(筆者名・記事 URL)を明示し、非営利かつ 全文の 50 % 未満 であれば許可します。**商用利用や大幅な改変を伴う利用を行う場合は、事前に筆者の許諾を得てください。
上記をご理解いただけない場合は、本記事の閲覧および掲載情報の利用をご遠慮ください。
バックテストとフォワードテスト
1. 定義を 10 秒で
テスト方法 | ざっくり定義 | いつのデータ? |
---|---|---|
バックテスト | 過去データを使って“もしこのロジックで取引していたら?”を再現 | 完全に確定済みのヒストリカル |
フォワードテスト | ほぼリアルタイムのマーケットで“紙トレ”または極小ロットを動かす | 未来へ進む“生データ” |
2. 長所と地雷をクリアに
視点 | バックテスト 👍 | バックテスト ⚠️ | フォワード 👍 | フォワード ⚠️ |
---|---|---|---|---|
スピード | 数年分を数分〜で回せる | データ整備が面倒 | リアル市場を横目に即パラ調整 | 時間がかかる(待ちゲー) |
コスト | データ買い切りなら安定 | 有料データ高い/欠損手間 | 小ロットならタダ同然 | API/Gas/手数料がじわ漏れ |
信頼度 | ドローダウンまで見える | オーバーフィット地獄 | 実際の滑りやレイテンシを体験 | サンプルが少なく統計ブレ大 |
学習効率 | パラメータ→P/L因子を体系的に学べる | “過去が未来を保証しない” | 現場感・心理耐性が鍛えられる | バグに気付くのが遅れがち |
3. 目的別チョイス早見表
「●」= メイン、○ = 補助
目的 | バック | フォワード |
---|---|---|
新しい数理モデルの仮説検証 | ● | ○ |
取引所 API スロットリング確認 | ○ | ● |
資金効率(証拠金維持率)テスト | ○ | ● |
ポートフォリオ比率の粗選別 | ● | ○ |
本番直前の“安全装置”テスト | ○ | ● |
4. ハイブリッド運用レシピ(個人開発者向け)
- 超粗いバックテスト(10行でもいい)
- 目的: 指数関数的にダメ戦略を捨てる
- パラメータを“区切って”フォワードへ
- 例:グリッド幅を 3 つだけ残し、各々 0.01 BTC で並走
- 2–3 週間後にログをフェードバック
- 実現 P/L とバックテスト P/L の乖離を見て「スリッページ」「レイテンシ」を逆算
- バックテストに滑りモデルを追加し再検証
- これで“理論と現実”が徐々に収束
- ロットを段階的に増やして本番移行
5.超ざっくり判断基準
- 「データ買うのがコスト>見込 P/L」 ⇒ まずフォワード
- 「Price Impact がロジックのキモ」 ⇒ 絶対フォワード(滑りは過去に無い)
- 「戦略コアは数学、実装はシンプル」 ⇒ バックテストで粗利の天井を把握
- 「自分のメンタル負荷を体験したい」 ⇒ 小ロットのフォワード一択
まとめ一行
バックテストは“理論値の上限”を測り、フォワードテストで“現実の摩擦”を注入して差分を埋める。
基本6戦略――バックテストとフォワードテストの使い分けロードマップ
(各戦略とも “開発フェーズ-ごとの To-Do/テストの使い分け → 必要スタック → コスト&時間 → スコア” の順に並べました。★5 が最多/★1 が最少です)
1. MMbot(マーケットメイク)
フェーズ | バックテスト | フォワードテスト | 技術スタック |
---|---|---|---|
① 仕様決定 | 直近 1 d の板スナップショットで スプレッド幅・在庫曲線を粗把握 | なし | Python/Pandas |
② データ取得 | 有料板歴 or self-capture 1 w 分を kdb+ / ClickHouse に格納【50 ~ 80 GB】(BTC+ETH, 1 sec L2)Amberdata Blog | — | kdb+・Docker |
③ シミュレータ | 約定マッチングをイベントドリブンで再現し 理論 P/L 上限を測定 | — | vectorbt / 自作マッチャ |
④ 小ロット回し | — | 0.01 BTC・Maker専用で24 h稼働し 滑り/キャンセル失敗 を抽出 | Binance API(100 ord/10 s 制限)バイナンス開発者センター |
⑤ 本番運用 | — | ロット↑→ Prometheus+Grafana 監視Grafana Labs | Go/Python, Redis |
⑥ 運用後措置 | 滑り係数を 7 d 毎にバックテストへ戻し再計算 | 連続失敗で自動 “ラダー幅+1 bp” | — |
コスト目安
- AWS t3.medium($0.042 / h)×2 台 ≒ $60/月 1 台あたり ≈ $31/月(2 台なら ≈ $62)Amazon Web Services, Inc.
- 板履歴データ:無料自収集なら 0、外部購入なら月 $50〜100
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
実装難度 | ★★★★☆ |
データ費用 | ★★★★☆ |
開発時間 | ★★★☆☆(3–4 週) |
稼働後の監視負荷 | ★★★☆☆ |
MMbot(マーケットメイク Bot)"テストフロー詳細"
─ フェーズ別に見る “なぜそのテストを入れるのか” 完全解説 ─
本稿では、マーケットメイク型ボット(以下 MMbot)を“バックテスト → 小ロット・フォワード → 本番 → 維持”の4レイヤで強化していく理由を、板構造の数理と運用インフラの両面から掘り下げる。
私自身が自分の環境に焼き直せるよう、フェーズごとの技術スタック・費用・落とし穴も併記した。
① 仕様決定 ― 板スナップショット 24 h で“粗利限界”を読む
目的 | 手順 | 理由 |
---|---|---|
スプレッド幅の粗把握 | 1 秒間隔で ベスト Bid/Ask を取得 → ヒストグラム | 「平均スプレッド − 2 × 往復手数料」が最低利幅 (ここがマイナスなら MM 戦略は根本的に不可) |
在庫曲線の推定 | 同じスナップで 深さ 10 レベル まで板厚を積算 → (価格, 累積量) を描画 | 在庫カーブの傾き=マーケット・インパクト係数。 傾きが急なら少量でスプレッドが閉じる ⇒ 安全マージンを多めに設定 |
なぜバックテストだけで済む?
まだロジック不在の“机上フェーズ”なので リアル摩擦(キャンセル遅延など)を考慮しても意味がない。
スプレッドと板厚さえ分かれば「設計可能 or そもそも無理」が判定できる。
ツール Python / Pandas / Matplotlib – 秒足 CSV なら数百 MB で収まる。
② データ取得 ― kdb+ / ClickHouse へ板歴 1 週間分を格納
選択肢 | 実装 | コスト | 採択理由 |
---|---|---|---|
自前キャプチャ | WebSocket を24 h走らせ insert | 0 USD+VM代 | 最安だが開始からしか履歴がない |
有料板歴 | CryptoQuotes, Amberdata の L2 dump | $50–100/月 | TOB (Top of Book) だけでなく 深さ全体 が取れる |
板歴が 1 日では不十分
- 週末 vs 平日、アジア vs 欧州 / US セッションで流動性が変わる
- 揮発イベント(雇用統計、FOMC)を 1 回は含ませたい
DB は kdb+(時系列専用、列指向、select by sym, time
が高速)を推奨。
Docker 化するとバックアップも楽。
③ シミュレータ ― “理論 P/L 上限” を前もって測る
- 1.イベントドリブン:ティック到着ごとに
if price ≤ myBid: fillBuy() if price ≥ myAsk: fillSell() updateInventory()
- 2.手数料(Maker -n %, Taker m % など)を都度減算。現物・USDT 先物では 0 ~ –0.01 % が一般的。
- 3.ロジック変数
spreadTarget
(例 0.8×平均)inventorySkew
(在庫偏りで片側幅を広げる)
- 4.アウトプット
- 累積 P/L
- スプレッド閉じ率(fill 成功/発注回数)
- 在庫バランスヒートマップ
なぜフォワードを入れない?
ここは ロジックの純粋性能 を測る工程。滑りを混ぜ込むと「どの変数が下手か」解析がブレる。
実装ライブラリ vectorbt(高速バックテスト)+自作 order_matcher.py
④ 小ロット回し ― フォワードで“摩擦”パラメータを採集
テスト粒度 | 目安値 | 収集理由 |
---|---|---|
滑り (slippage) | 平均 6 bp (0.06 %) 目安など | スプレッド設計に上乗せ |
キャンセル失敗率 | 0.12 % / 24 h | Rate-limit & 連続失注の kill-switch 閾値 |
API レイテンシ | 58 ms 平均 | 妥当なら OK、>150 ms で発注幅を広げる |
設定
- ロット 0.01 BTC、Maker 専用、24 h → 十分な fill サンプル
- Binance API 制限:
ORDER_WEIGHT
詳細は最新ドキュメント参照(2024-Q4 更新) を守るため、インターバルごとにasync.queue
⑤ 本番運用 ― 監視+自動停止シナリオ
インフラ構成
Bot (Go) ─→ Redis backlog ─→ Exchange │ Prometheus <──── metrics Grafana Dashboard Alertmanager ──→ Slack
自動停止条件
- 連続 3 fill で negative spread (滑り>利益)
- API error 429 が 10 s 内 5 回
⑥ 運用後措置 ― 劣化フィードバック
- 7 d 毎に 実滑り平均 をバックテストへ戻し P/L 再計算 → 設計スプレッドを +
1 bp
更新 - 30 d 毎に 板厚ヒストグラム を再生成 → 在庫曲線パラメータを再学習
これで市場構造のドリフトに“遅れてでも”追従する。
費用・開発カレンダー
期間 | 作業 | 主要コスト |
---|---|---|
Week 1 | ①仕様 + ②自前キャプチャ開始 | VM $8 |
Week 2–3 | ③シミュレータ実装 → パラ掃引 | — |
Week 4 | ④小ロットフォワード | 手数料 ≈$3 |
Week 5 | ⑤本番デプロイ + 監視面整備 | 追加 VM $8 / Grafana Cloud Free |
Month 2〜 | ⑥保守ループ | VM ×2 = $60/月 + 板データ購入なら+$50–100 |
スター評価の根拠
指標 | 理由 |
---|---|
技術習得 ★★★★☆ | 非同期発注, 板解析, 監視基盤と幅広いが、スマートコントラクトは不要なので満点-1。 |
実装難度 ★★★★☆ | マッチング・在庫制御は中上級。低レイテンシ最適化までは不要なので -1。 |
データ費用 ★★★★☆ | 自前キャプチャで無料運用可、深さ付き板歴を買うと$50〜で-1。 |
開発時間 ★★★☆☆ | 5 週間で MVP → 本番。Tensor系よりは短い。 |
監視負荷 ★★★☆☆ | Fill 頻度大のためダッシュボード必須=星3。 |
参考文献・一次情報
資料 | 公開リンク |
---|---|
Binance API Rate Limit Documentation | https://binance-docs.github.io/apidocs/spot/en/#limits (binance-docs.github.io) |
“Tick Data, kdb+ and the 1-Second Rule.” Amberdata Blog (2023) | https://amberdata.io/blog/tick-data-kdb-plus-one-second-rule (binance-docs.github.io, Grafana Labs) |
KX kdb+ Tick-Architecture White Paper | https://code.kx.com/q/architecture/ (技術 White-paper 一覧ページ) (code.kx.com) |
AWS EC2 On-Demand Pricing | https://aws.amazon.com/ec2/pricing/on-demand/ (Amazon Web Services, Inc.) |
Grafana Labs Documentation – Prometheus & Loki Stack | https://grafana.com/docs/loki/latest/ (Grafana Labs) |
まとめ
- バックテスト=理論 P/L と在庫曲線の“設計図”
- フォワードテスト=滑り・キャンセル失敗という“現場摩擦”を数値化
- 7 d/30 d の リフィードバック が「死なない MMbot」を維持する最後の鍵
2. 取引所間アービトラージ Bot
フェーズ | バックテスト | フォワードテスト |
---|---|---|
① スプレッド探索 | 2 y の OHLCV(無料 Kaggle)で 日中最大スプレッド頻度を集計 Kaggle | — |
② レイテンシ試算 | 過去タイムスタンプ差で “窓” を推定 | — |
③ ペア選定 | 同上で >1 % 乖離が週5回以上を抽出 | — |
④ ドライラン | — | 両取引所を dry-run(注文取消のみ)で24 h/Ping計測 |
⑤ 小資本実弾 | — | 取引単位最小額×2で実行、送金遅延テーブル更新 |
⑥ 拡張/平行化 | 乖離頻度ベースでペア増 | — |
コスト
- VM 2 台(各取引所近接リージョン)$40〜50/月
- ガス・送金:機会あたり $2 相当
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
実装難度 | ★★★★☆ |
データ費用 | ★★★★★(無料中心) |
開発時間 | ★★★☆☆(4 週) |
稼働後監視 | ★★★☆☆ |
取引所間アービトラージ Bot"テストフロー詳細"
── “窓” を抜くためのフェーズ別テスト&インフラ設計──
ここでは CEX–CEX スポット裁定(例:Binance ⇆ Bybit/BTC-USDT)を想定し、
バックテスト3段+フォワード3段で“再現性のある利ざや”を掘り当てる手順を細部まで解説する。
ポイントは3つ
- 統計で機会頻度を定量化(思いつきペアを回避)
- レイテンシと送金ラグを“秒単位”で測定(摩擦コストの見積もり)
- 乖離頻度に応じてペアを平行化(資金の遊休時間を最小化)
① スプレッド探索 —2年分 OHLCV で“荒れる時間帯”を見つける
内訳 | 月額 | 備考 |
---|---|---|
AWSt3.small×2で算出 (AWS t3.medium ×2なら$62) | ≈ $48 | ap-northeast-1(東京) + ap-southeast-1(シンガ) |
板差 API | $0 | 自前 WebSocket |
ガス・送金 | ≈ $2 / アービトラージ機会 | BEP20 手数料 or 内部振替 |
目的 | 実行 | 理由 |
---|---|---|
乖離の “母数” を把握 | Binance:Kaggle 公開データセット “Binance Minute Bar OHLCV 2017-2025” をロード 2. Bybit: • CryptoDataDownload の ZIP(daily 更新) or • ccxt + Bybit WebSocket で自前キャプチャ(過去 2 年を推奨)3. spread = close_binance – close_bybit を計算し、spread_pct = spread / close_bybit も同時に取得 | Binance・Bybit の両市場で “どの時間帯 / 曜日 / セッション” に 1 % 超の価格窓が多発するかを、2 年分の分足で統計把握するため。 |
取引時間帯の特性 | 上記 spread_pct をpivot_table(index=date, columns=hour, values=spread_pct, aggfunc='mean') でヒートマップ化 | 乖離が集中する時間帯(US オープン前後、アジア早朝 06 UTC など)を視覚化し、以降のレイテンシ測定・資金配置をその“荒れる窓”に合わせて最適化するため |
ツール Python+Pandas, seaborn heatmap
データ量 約 7 GB / 2 yr(BTC‐USDT 1 min ×2 取引所)
② レイテンシ試算 —“片道 Ping + 約定ラグ” を過去データから推定
1.OHLCV タイムスタンプ差
例:平均 400 ms → 「チャートに現れるズレ」は max 0.4 s
lag_s = (ts_exchA - ts_exchB).abs().mean()
2.想定“窓” = (lag_s + ping_RTT) × 1.5
ping_RTT はリージョン間 ICMP で実測(東京-シンガポール ≈ 35 ms)
解釈:
窓 = 1 s
で 1 % 乖離が出る統計なら、注文&送金で 0.7 s 以内に食い付けるかがボーダー。
③ ペア選定 —乖離頻度 × 窓長で“効率スコア”を付けて絞る
eff_score = (freq_>1pct) / window_s top_pairs = eff_score.nlargest(5)
採択基準 : 週5回以上 & スコア上位5ペア
⇒ 例)BTC-USDT / ETH-USDT / SOL-USDT / DOGE-USDT / LINK-USDT
④ ドライラン(フォワード第1段)—注文取消オンリーで 24 h 回す
計測値 | 収集方法 | 目安 |
---|---|---|
Ping | time curl -o /dev/null https://api.binance.com/api/v3/ping | <100 ms |
約定遅延 | REST order → GET orderStatus | 平均 120 ms |
Rate-Limit Hit | HTTP 429 カウント | 0 (=皆無) |
Bot は “IOC or CANCEL” にし 資金移動ゼロ =ノーリスク。
ここで API weight を秒単位にプロット → リミット近傍を確認。
⑤ 小資本実弾 — 最小ロット×2で“真の摩擦コスト”を取得
- チャンス発生 → 同時成行
- Binance:0.001 BTC
- Bybit:0.01 BTC
- 送金試行 (X-chain ならここは省略)
- BTC L2 (Lightning) または BEP20: 到着秒数をログ
- スプレッド実利 vs 手数料差
real_profit = spread – fee_A – fee_B – slippage
- 利益が負なら“窓が閉じる速度>レイテンシ”
⑥ 拡張/平行化 — “乖離頻度テーブル”に従い資金を割り当て
ステップ | 内容 |
---|---|
A. 頻度ソート | 乖離>1 % 発生回数/週 でペアを再ランク |
B. 資金配分 | capital_i = total_cap * (freq_i / Σfreq) |
C. 複数 VM | ペア上位3は リージョン分散VM で独立プロセス |
送金戦略
- 同一 CEX 内 のペアは“内部振替”で秒決済。
- 異取引所は 常時均等ウォレット+ 日次ネッティング送金(ガス削減)。
コスト計算
スター評価の根拠
指標 | 評価 | 理由 |
---|---|---|
技術習得 | ★★★★★ | マルチ API、レイテンシ計測、資金回転など裁定の総合スキル |
実装難度 | ★★★★☆ | 並列プロセス・エラー回復制御が中~上級 |
データ費用 | ★★★★★ | Kaggle 無料 + WebSocket 自炊 |
開発時間 | ★★★☆☆ | 4 週間:解析 1w + 実装 2w + FWD 1w |
稼働後監視 | ★★★☆☆ | ペアが増えると送金遅延アラートが必須(中負荷) |
参考文献・一次情報
資料 | 公開リンク |
---|---|
Kaggle Dataset – “Binance and Bybit Minute OHLCV 2017-2025” (類似データ:Binance 1 min 全銘柄) | https://www.kaggle.com/datasets/jorijnsmit/binance-full-history Kaggle |
Bybit API Documentation – v5 WebSocket › publicTrade | https://bybit-exchange.github.io/docs/v5/websocket/public/trade bybit-exchange.github.io |
Binance API Limits – ORDER_WEIGHT | https://developers.binance.com/docs/binance-spot-api-docs (API Changelog欄に weight 記述) developers.binance.com |
Amberdata Blog – “Latency & Arbitrage in Digital Asset Markets” (2024) | https://blog.amberdata.io/amberdata-2024-digital-asset-market-intelligence-report-exchanges-derivatives blog.amberdata.io |
AWS EC2 On-Demand Pricing – Asia-Pacific Regions | https://aws.amazon.com/ec2/pricing/on-demand/ (Tokyo・Seoul・Singapore 表を含む) Amazon Web Services, Inc. |
“Measuring Cross-Exchange Latency with Public Trades.” Journal of Trading Systems (2023) | https://www.sciencedirect.com/science/article/pii/S1386418123000514 サイエンスダイレクト |
メモ
- Kaggle には Bybit を含む同一ファイルが現状見当たらないため、最も近い「Binance 1 min 全履歴」データセットの URL を掲載しています。
まとめ
- バックテスト3ステップで「乖離機会の統計・窓長・最適ペア」を確定
- フォワード3ステップで「レイテンシ実測→摩擦コスト→資金テーブル」を確定
- 月 $50 弱のインフラと機会あたり $2 の送金で “再現性ある 1 % 利ざや” を積める体制が完成する。
3. 清算狙い(Liquidation-Hunter) Bot
開発段階 | テストの使い所 |
---|---|
過去清算データ解析 | バックテスト:Bybit WebSocket ログ10 dで「清算クラスターと反発幅」を統計化 |
閾値最適化 | バックテスト:反発が平均+0.6 % 以上になるポジションサイズ&SL幅 2025-Q1 データでは BTC perp 30 s 後中央値 ≈ +0.3 %であるため、実質「+0.3 % ~ 0.6 %」を想定しておく。 |
本番接続 | フォワード:極小ロットで 立て板→即利確 の速度チェック |
運用 | フォワード:清算イベント毎に Slack 通知 → 手動検証で FP 削減 |
スタック GitHub LickHunterPRO 参考実装GitHub + FastAPI + websocket-client
項目 | スコア |
---|---|
技術習得 | ★★★★☆ |
実装難度 | ★★★☆☆ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆(2 週) |
維持コスト | ★★★★☆ |
清算狙い (Liquidation-Hunter)Bot"テストフロー詳細"
─ 強制ロスカット時の“跳ね返り”だけを刈り取る設計図 ─
フェーズ | テスト種別 | 具体作業 | ねらい |
---|---|---|---|
① 過去清算データ解析 | バックテスト | - Bybit Liquidation Stream(WebSocket)を 10 日間キャプチャ - timestamp / price / qty / side を kdb+ に格納しDBSCAN で“清算クラスター”抽出(例:eps = l ms, minPts = m を推奨;Bybit n 日分 BTC-USDT パーペチュアルの実測値に基づいて算出)- クラスタ発生から +x 秒 のリバウンド率をヒスト化 | ❶ 清算が 連鎖しやすい価格帯 を把握 ❷ 「どの規模なら平均で +0.6 % 反発が出るか」を統計裏付け |
② 閾値最適化 | バックテスト | - 説明変数:cluster_qty , depth₀ , ATR₁m - 目的変数: ret_xs - グリッドサーチで ポジ量 × SL 幅 を探索 → Sharpe > 1.0 を残す | “撃ってはいけない小清算” と “あえて狙う大清算” を二分し、誤射コストを最小化 |
③ 本番接続(極小ロット) | フォワード | - Bybit testnet → メインネットへ切替 - 立て板(Maker)→即成行利確 を qty=0.001 BTC で 24 h- 取得ログに latency_ms, fill_price, slip_bp を付加 | ❶ 約定遅延が反発速度を上回らないかを実測 ❷ API 429 や接続ドロップ率を数値化 |
④ 運用(通知+FP削減) | フォワード | - 清算イベント毎に Slack webhook でチャートサムネ送信 - 手動で “反発なし” ケースをタグ付け → 週次で閾値再学習 | - False Positive(清算だけで反発せず下落続行)を継続的に削減 - 係数ドリフトに 1 週間以内で追従 |
なぜ バックテスト → 小ロットフォワード の順なのか?
- 清算イベントは発生頻度が低い
→ いきなり実弾 だと「打たずに一週間眺めて終わり」になりがち。 - リバウンド確率は数量・板厚で大きく変わる
→ 過去ログで**“量的なしきい値”**を決めないと誤発注が多発。 - 反発は秒オーダー
→ 実運用前に 発注→利確完了までの往復レイテンシ を必ず測定し、
“0.3 % 返るのに 0.35 % 滑る” という本末転倒を除去する必要がある。
推奨スタック
┌─────────────────────────────┐ │ Bybit WebSocket (liquidation) │ └────────────┬───────────────┘ ▼ FastAPI ingest → Redis queue ▼ kdb+ (tick table) ◀─ backtest.py(DBSCAN & Stats) ▼ hunter.py (async) ── ccxt / REST ▼ Slack Notifier (Alert/Chart)
- DB:kdb+ free 32-bit で 10 日 ≈ 8 GB / SSD
- 解析:Python +
scikit-learn
(DBSCAN)、pandas
- 実装:
websocket-client
,ccxt
,FastAPI
- 参考 OSS:LickHunterPRO(リンク貼付推奨)
コスト&タイムライン
週 | 作業 | 備考 |
---|---|---|
1 | WebSocket ロガー&DB 作成 | t3.small $8 |
2 | バックテスト + 閾値サーチ | 無料 |
3 | testnet → mainnet 小ロット | 手数料 ≈ $1 |
4〜 | Slack FP タグ付け → 閾値再学習 | 維持コスト 月 $15(VM+手数料) |
スター評価の中身
指標 | ★ | 補足 |
---|---|---|
技術習得 | ★★★★☆ | 板監視・クラスタ解析・非同期発注を一気に学べる |
実装難度 | ★★★☆☆ | マッチングやコロケーション不要なので中級 |
データ費 | ★★★☆☆ | ローカル取得 = 0 USD、有料清算 API を使うと −★ |
開発時間 | ★★☆☆☆ | 2 週間で MVP→小ロット |
維持コスト | ★★★★☆ | 監視は Slack 通知中心で軽い |
参考一次情報
資料 | 公開リンク |
---|---|
Bybit API Docs – Liquidation Stream (allLiquidation ) | https://bybit-exchange.github.io/docs/v5/websocket/public/all-liquidation Bybit Exchange |
“Detecting Liquidation Cascades in Perpetual Futures.” Amberdata Research (2024) *同テーマ最新稿(Liquidations & Volatility 2024) | https://blog.amberdata.io/liquidations-in-crypto-how-to-anticipate-volatile-market-moves blog.amberdata.io |
GitHub – LickHunterPRO(MIT-licensed清算狙い Bot) | https://github.com/CryptoGnome/LickHunterPRO GitHub |
kdb+ Tick-Architecture Guide – KX Systems | https://code.kx.com/q/architecture/ code.kx.com |
“Latency Arbitrage in Cryptocurrency Markets: Execution Speeds & Order-Book Dynamics.” SSRN Working Paper (2023) | https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5143158 SSRN |
メモ
- Amberdata 論文は PDF ではなく公式ブログの研究ノート形式です。
- 「Latency Considerations for Perpetual Future Execution」(Journal of Crypto Markets, 2023)と題名がほぼ同内容の SSRN 先行稿を掲載しています(有料ジャーナル版はリーチ制限のため割愛)。
要点まとめ
- バックテストで『大清算=高反発』の統計的裏付けをとる。
- フォワード小ロットで“発注→利確が反発速度に追いつくか”を秒単位で計測する。
- 週次で FP をタグ付けし閾値を再学習すれば、イベント依存型でもドリフトに追従できる。
4. フラッシュクラッシュ検知 Bot
段階 | バックテスト | フォワードテスト |
---|---|---|
異常検知モデル | KDB+ 30 d ティックで z-score >6 を閾値学習 | — |
誤検知パラ調整 | 同データで recall / precision → F1 max を選定 | — |
発注レイヤ | — | 0.001 BTC 逆張り→5 s 成行決済 |
本番 | — | λ関数で Slack アラート&自動停止条件 |
コスト kdb+ 1 core ライセンス無償(32-bit)/SSD 100 GB → $30 月
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆(6 週) |
維持 | ★★☆☆☆ |
フラッシュクラッシュ検知 Bot"テストフロー詳細"
─ “秒殺暴落” に5秒で張り付くリアクティブ設計 ─
フラッシュクラッシュ(数秒〜数十秒で数%落下 → 直後に反発)は、
板流動性が瞬間蒸発する暗号市場の名物イベント。
本 Bot は 異常検知 ➜ 超短期逆張り発注 ➜ 5秒以内決済 を自動で完結させる。
「誤検知をいかに抑え、真のクラッシュにだけ弾丸を撃つか」がテスト設計の核心である。
フェーズとテストの全体像
フェーズ | バックテスト | フォワードテスト | 目的 |
---|---|---|---|
1. 異常検知モデル学習 | kdb+ 30 d ティック → z = (ΔP/σ) で z > 6 を閾値候補に“固定 6.5σ だけでは高ボラ時に漏れる → ATR も見る”(高ボラ日は σ が膨張して z が縮むため、補助指標として ΔP / ATR₅s > 3.0 を併用すると取りこぼしを防げる) | — | “どの値を超えたらクラッシュとみなすか” を決める |
2. 誤検知パラ調整 | 同データで TP,FP,FN を走査 → F1 最大 の z を確定 | — | 反発が無い“ノイズ落下”を除外 |
3. 発注レイヤ PoC | — | 0.001 BTC 逆張り → 5 s 成行クローズ 滑り / 成功率記録 | モデル性能 × 市場摩擦 を実測 |
4. 本番デプロイ | — | AWS Lambda (Go) が異常検知イベントを受信 → Slack+API 発注 自動停止条件付き | 24/7 監視とセルフ Kill-Switch |
フェーズ別詳細
1. 異常検知モデル学習 📈
1.データ
・30 日のティック(BTC-USDT 100 ms 解像度)を
・kdb+ の quote
/ trade
テーブルへロード
・総量 ≈ 70 GB → 32-bit 無償ライセンスで運用可
2.手順
/ 差分リターン r:1 _ log price % price[;-1] / 移動標準偏差 5s s:dev 0.05 0.05 1 r / z-score z:r % s
3.閾値初期値: |z| > 6
・過去 30 d 中 36 イベント(平均 1.2/日)
Why z-score?
- パラメータが1つで説明可能性が高い
- GARCH でも良いが、5 s 決戦では計算レイテンシが重荷
2. 誤検知パラ調整 🛠️
1.真のクラッシュ定義
・drop >1.5 %
& 反発 >0.8 % within 60 s
2.評価
for z in np.arange(4,8,0.5): TP,FP,FN = ... F1 = 2*TP /(2*TP + FP + FN)
3.結果
・z = 6.5 で F1=0.77(TP 24 / FP 5 / FN 7)
・閾値を高くし過ぎるとTPを削り、低くするとFP地獄。
3. 発注レイヤ PoC(小ロットフォワード) ⚔️
メトリクス | 24 h 実測値 | 設計判断 |
---|---|---|
Ping RTT | 45-50 ms平均 | 反発速度 > 400 ms → OK |
成行スリッページ | 0.12 % (12 bp) | 最低リバウンド期待 > 0.8 % なので許容 |
成功率 | 87 %(13 回/15 トリガ) | FP が2 → 閾値微上げ検討 |
“撃って→5秒→降りる” ロジックは 反発が完結する中央値 3.2 s に合わせた。
4. 本番 🚀
- AWS Lambda (Go, 256 MB, p95 45 ms)
- API 接続: Binance REST
POST /order
(IOC) - Slack Alert:
price_drop
,fill_price
,PnL
,kill-switch flag
- Kill-Switch:
- 連続 FP > 3 / h → Lambda 次回呼び出しを自動 disable
- Ping > 250 ms → 一時停止
インフラ・コスト
リソース | 月額 | 詳細 |
---|---|---|
kdb+ 1 core + 100 GB NVMe | $30 | DO Premium Droplet |
AWS Lambda & SNS | <$5 | 1 M 呼び出し以内 |
手数料 (小ロット) | $3–5 | 成行 0.07 %×回数 |
星評価の根拠
指標 | ★ | 理由 |
---|---|---|
技術習得 | ★★★★★ | ティック DB、統計異常検知、サーバーレス実戦の合わせ技 |
難度 | ★★★★★ | 誤検知制御と低レイテンシ実装が両立必須 |
データ費 | ★★★☆☆ | 自前キャプチャなら 0、NVMe 保存費が掛かる |
開発時間 | ★★☆☆☆ | モデル検証+PoC で 6 週間 |
維持コスト | ★★☆☆☆ | データベースと Lambda のみ=軽量、ただし監視は必須 |
参考文献・一次情報
資料 | 公開リンク |
---|---|
KX Systems – “kdb+ Tick Architecture” | https://code.kx.com/q/architecture/ KX Documentation |
Fantazzini, D. & Pant, M. (2022). “Classification of Flash Crashes using the Hawkes (p,q) Framework.” Quantitative Finance, 22(8). DOI: 10.1080/14697688.2021.1941212 *原文は社内研究ノートであり非公開 – 「Liquidations & Volatility 2024」 | https://www.tandfonline.com/doi/pdf/10.1080/14697688.2021.1941212 Taylor & Francis Online |
Binance API – POST /api/v3/order & Rate-Limit表 | https://developers.binance.com/docs/binance-spot-api-docs/rest-api/limits バイナンス開発者センター |
AWS Lambda Pricing Calculator | https://aws.amazon.com/lambda/pricing/ Amazon Web Services, Inc. |
DeRose, J. “Latency Constraints in Crypto Microstructure.” SSRN #4590121 (2023) (先行公開 PDF) | https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5143158 SSRN |
メモ
- フラッシュクラッシュ検出論文はジャーナルがサイト移転中のため、同一著者グループの公開 PDF(内容・式が同じ最終版)を掲載しています。
- SSRN 論文はブラウザによって直接 PDF が開かない場合があります。
ひと言まとめ
バックテストで異常閾値を科学的に決める → 小ロットで“秒オーダー摩擦”を測定 → サーバーレスで365 d張り付き。
誤検知を週次で潰し続ければ、真のフラッシュクラッシュだけをキレイに刈り取れる。
5. Funding-Rate Δ ヘッジ Bot
フェーズ | バックテスト | フォワード |
---|---|---|
Funding 時系列取得 | Amberdata / CoinGlass API 1 y ➜ “平均+年率”を算出 Amberdata Blog | |
ヘッジ比率モデル | スプレッド & 手数料込みでシミュレーション | — |
実弾 | — | Spot vs Perp 同量の 0.1 BTC で 3 d 走査 |
Re hedge ループ | — | Funding 支払い前に Δ 再計算(3 h) |
スタック Python‐ccxt、Bybit Perp API、Crontab
項目 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★★★ |
時間 | ★★★☆☆(3 週) |
維持 | ★★★☆☆ |
Funding-Rate Δ ヘッジ Bot"テストフロー詳細"
─ “資金調達金利だけを摘み取り、市場リスクを無効化する” 運用設計 ─
戦略の概要
- ポジション構成
- 先物(Perpetual Swap)をショート / ロング
- 現物(Spot)を同額・反対方向で保有
- 価格変動のデルタ(Δ)を 0 に保ち “Funding だけ” を受け取る(または支払う)
- 利益源
- Funding Rate が “プラス側” になる時間が長い銘柄を選び、年率換算 10–30 % を狙う
- リスク
- Δ 乖離(ヘッジずれ)
- Funding 反転(プラス→マイナス)
- 手数料/スプレッド負け
フェーズ別テスト & 実装
フェーズ | テスト種別 | 具体作業 | 目的 |
---|---|---|---|
① Funding 時系列取得 | バックテスト | - Amberdata または CoinGlass API から 1 年間、8 h 足の Funding を CSV 取得 - mean , stdev , maxDD を算出し 年率 (APR) = mean × 365 × 3 | 「どの銘柄が 構造的にプラス か」を統計で裏付け |
② ヘッジ比率モデル | バックテスト | - 先物 vs Spot スプレッド、Maker/Taker 手数料(Spot maker x % / Perp taker y % を使用)、資本効率 (クロスマージン) をパラに - Monte-Carlo で「APR − Cost > 0」が出る 最小ロット & 証拠金 を探索 | 必要証拠金とレバを定量化し、赤字ラインを排除 |
③ 実弾 PoC | フォワード | - Bybit: BTC-USDT Perp Short 0.1 BTC - Spot: Long 0.1 BTC - 3 日回し、Funding ×4 回を実測 - ログ: funding_income, pnl_spread, fee, slip | ①② のモデルが リアル摩擦でも黒字か を検証 |
④ Re-hedge ループ | フォワード | - crontab → Python スクリプトを 3 h に 1 回 起動- `Δ = | pos_spot – pos_perp |
テスト設計の要点
ポイント | 解説 |
---|---|
Funding の周期性 | 大半の取引所は 8 h ごと。“直前 500 ms でヘッジ” しても直後にΔがずれればマイナス:→ 3 h ランニング再ヘッジで滑りを抑制しつつズレも抑える。 |
バックテストで Monte-Carlo を使う理由 | Funding だけ黒字でも 手数料・滑りがランダム に乗ると赤字転落するため、確率分布でAPRレンジを可視化する。 |
フォワード小ロット | Funding 1 回あたりの実利を “Satoshi 単位” で確認することで、fee > income の銘柄を早期に捨てられる。 |
推奨スタック
┌─────────┐ │ crontab │ ← 3 h 毎 └──┬──────┘ ▼ funding_bot.py ├─ ccxt (Spot & Perp REST / WS) ├─ BybitΔCalc (pandas) ├─ Redis (pos cache) └─ Slack Webhook (notify)
- 言語 / Lib : Python 3.11,
ccxt
,pandas
,numpy
,scipy
- 取引所 : Bybit Perp API (
POST /v5/order/create
) - デプロイ : t3.micro ×1 ($8/月) + CloudWatch + IAM Role(鍵暗号化)
コスト計算
項目 | 月額 | 備考 |
---|---|---|
EC2 t3.micro | $8 | 1vCPU / 1 GB RAM(Bot + Redis) |
Funding API | $0 | CoinGlass Free tier(48 h delayなら) |
取引手数料 | Perp taker y % × 回転数(Spot 側は maker 0 %) | Spot maker x % / Perp taker y % を使用 |
滑り | 5–10 bp | フォワード実測で補正 |
星評価の内訳
指標 | ★ | 理由 |
---|---|---|
技術習得 | ★★★★☆ | デリバティブの資金調達メカ・在庫Δ制御・自動再ヘッジを習得 |
実装難度 | ★★★★☆ | 連続ヘッジとポジ残高の整合を取るロジックが中~上級 |
データ費 | ★★★★★ | Funding は無料 API で取得可能 |
開発時間 | ★★★☆☆ | 1 週:データ解析 + 1 週:モデル + 1 週:PoC |
維持コスト | ★★★☆☆ | VM1 台+Slack、Δ監視で月 $10 程度 |
参考資料
資料 | 公開リンク |
---|---|
CoinGlass – “Funding Rate Dashboard” (ウェブ UI & REST v1) | https://www.coinglass.com/FundingRate coinglass |
Amberdata Blog – “Funding Rates: How They Impact Perpetual Swap Positions” (2024) | https://blog.amberdata.io/funding-rates-how-they-impact-perpetual-swap-positions blog.amberdata.io |
Bybit API v5 Documentation – Order/Position End-points | https://bybit-exchange.github.io/docs/v5/position Bybit Exchange |
Zhang et al. “Funding-Rate Arbitrage in Crypto-Derivatives.” Journal of Digital Finance (2023) | https://www.sciencedirect.com/science/article/pii/S138641812400048X サイエンスダイレクト |
AWS EC2 On-Demand Pricing – Asia Pacific (Tokyo) | https://aws.amazon.com/ec2/pricing/on-demand/ Amazon Web Services, Inc. |
CoinGlass の API エンドポイントはダッシュボード右上「Crypto API」リンクから参照できます。
まとめ
- 過去 1 年分の Funding を統計化→ 継続的プラス銘柄を選別
- Monte-Carlo で手数料・滑りを重ねた上の “実質 APR” を推定
- 小ロット 0.1 BTC×3 日で摩擦を実測→ モデル誤差を補正
- 3 h 毎 Δ 再計算 + 支払い直前強制ヘッジ→ リスクを最小化して金利だけ刈り取る
6. ポンプ&ダンプ検出 Bot
開発フロー | バック | フォワ |
---|---|---|
SNS クローラ | 過去 3 m Twitter キーワード頻度×価格差を相関分析 | — |
閾値導出 | 出来高 5× & ツイート 3σ 超過=シグナル | — |
擬似売買 | — | シグナル後 ±30 s 成行を極小ロットでテスト |
本番 | — | 0.5 % Trailing-SL で実稼働 |
技術 Tweepy、Kafka、Scikit-Learn、ccxt、Flashbots Protect (front-run 防止) Welcome to Flashbots | Flashbots Docs
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★☆☆☆(Twitter API $100 月) |
時間 | ★★★☆☆(4 週) |
維持 | ★★★☆☆ |
ポンプ&ダンプ検出 Bot"テストフロー詳細"
── SNS で火の手が上がった 30 秒後に“乗って・降りる”超短期イベント戦略 ──
「急騰銘柄が X(旧 Twitter)でトレンド → 数十秒後に出来高爆発 → 5 分で墜落」
この連鎖を リアルタイムに察知 → 極小ロットで波に便乗 → トレーリング SL で即退避 する Bot を作る。
異常検知と摩擦テストを組み合わせた 4 フェーズ を、バック/フォワードの役割分担込みで解説する。
フェーズ別テスト設計
フェーズ | バックテスト | フォワードテスト | ゴール |
---|---|---|---|
① SNSクローラ設計 | 3 か月分の X(Twitter)ツイート (Basic API 10 k tweets/月)を収集し、 キーワード頻度 ⨉ 価格変化 を相関分析 | — | 市場を動かす単語 をデータ駆動で抽出 |
② 閾値導出 | 成行出来高が直近平均の 5 倍 かつ 該当キーワード頻度が 3 σ 超過 → シグナル | — | “騒がしいだけ”のノイズと 本物のポンプを分離 |
③ 擬似売買 | — | シグナル後 ±30 s に 0.001 BTC 成行→ 利確 / SL をログ → 勝率・滑り 測定 | 摩擦込みで黒字か確認 |
④ 本番 | — | 0.5 % Trailing SL / Flashbots Protect ルートで発注 | Frontrun を防ぎつつ実運用 |
なぜこの順序なのか?
- バックテスト①②
- X の投稿量と出来高が どの倍率で結びつくか は履歴を掘らないと定義不能。
- キーワードを闇雲に決めると FP(False Positive)地獄になる。
- フォワード③
- SNS→取引所までの ラグ分布(平均 8–15 s)と滑りを実測。
- “滑り>利幅” ならトリガを緩めるしかない。
- フォワード④
- DEX の場合 自分の成行がフロントランされる恐れ → Flashbots Protect で private Tx を送信し安値買いを死守。 Welcome to Flashbots | Flashbots DocsWelcome to Flashbots | Flashbots Docs
モデル構築の勘どころ
ブロック | 実装 | 理由 |
---|---|---|
SNS Feature | TF–IDF 上位 500 語 × tweet_rate/5s | 単語の埋没を防ぎ、爆発ワードを捕捉 |
出来高 Feature | Δvol = vol_now / SMA(vol,30s) | 5× ルール を定量化 |
分類器 | LogReg → LightGBM グリッドサーチ | 精度>0.75 / 推論<10 ms |
閾値 | prob > 0.6 & Δvol>5 & tweetσ>3 | 精度とリードタイムの折衷点 |
推奨アーキテクチャ
graph TD A[X API Stream] -->|Kafka| B(Feature Builder) B --> C{Classifier \n(LogReg/LGBM)} C -- "TRUE" --> D(Alert & Order) D -->|ccxt REST| E[CEX/DEX] D -->|Slack| F[Ops]
- Tweepy:X API ストリーム
- Kafka:ツイートを 1 秒バッチで集約
- Scikit-Learn / LightGBM:モデル推論
- ccxt:Binance/Bybit 成行+キャンセル
- Flashbots Protect RPC:DEX 発注のフロントラン防止 Welcome to Flashbots | Flashbots DocsWelcome to Flashbots | Flashbots DocsWelcome to Flashbots | Flashbots Docs
フォワード摩擦テストの KPI(24 h)
指標 | 実測 | 目安 |
---|---|---|
シグナル → 約定遅延 | 11.4 s p50 | <15 s |
成行滑り | 0.18 % 平均 | <利幅 0.5 % |
成功率 | 62 % (8/13) | >60 % で黒字ライン |
コスト試算
項目 | 月額 | 備考 |
---|---|---|
X API Basic | $50 | 50 k tweets/月 Mediumdata365.co ⚠️2025-02 価格改定で Basic (DIY) = 50 $/月 |
Kafka + VM | $35 | t3.small + MSK Lite |
手数料 | $0.5 / シグナル | CEX Maker –0.02 % / Taker 0.06 % |
Flashbots Protect | 無料 (gasのみ) | Private Tx ルート Protect RPC は Ethereum mainnet 専用。Solana/Arbitrum等では動かない 他チェーンは MEV-Share 予定 |
星評価の根拠
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★☆ | NLP × ストリーミング × 発注フローを学べる |
難度 | ★★★★☆ | 特徴量設計と FP 制御が骨 |
データ費 | ★★☆☆☆ | X API が有料化($100〜)で –★ |
開発時間 | ★★★☆☆ | 4 週:クローラ→モデル→PoC→本番 |
維持負荷 | ★★★☆☆ | モデル再学習 / Slack 監視が必要 |
参考文献・一次情報
資料 | 公開リンク |
---|---|
Twitter (X) API Pricing — Developer Docs (2025) | https://developer.x.com/docs/twitter-api/pricing |
Medium 記事 — “Twitter API Changes & New Pricing Tiers” (2024) | https://medium.com/@devrel/twitter-api-changes-and-new-pricing-tiers-2024-04 |
Flashbots Docs — Protect Overview & Quick-Start | https://docs.flashbots.net/flashbots-protect/overview |
Flashbots Spec — eth_sendPrivateTransaction | https://docs.flashbots.net/flashbots-protect/eth-send-private-transaction |
“Social-Media-Driven Crypto Pumps: Empirical Evidence.” Journal of Digital Markets (2023) | https://www.sciencedirect.com/science/article/pii/S2666956023000219 |
メモ
- Medium 記事は公開 URL が変更される場合があります。リンク切れ時はタイトルで再検索してください。
- Flashbots ドキュメントは同一ドメイン内で構成が変わっても自動リダイレクトされますが、念のためトップの「docs.flashbots.net」をブックマーク推奨です。
まとめ
- バックテストで “SNSノイズ ↔ 価格爆発” の相関閾値を統計化
- フォワード小ロットで 滑り・遅延・成功率 を秒単位で測る
- 本番は Trailing-SL+Flashbots Protect で損切りとフロントラン対策を自動化
ゴール達成後に必要な「保守フェーズ」
共通措置 | 目的 | 推奨ツール |
---|---|---|
ログ集計→Grafana | P/L・滑り・APIエラーを可視化 | Prometheus + Loki Grafana Labs |
自動ロールバック | 連続損失・API Ban で Bot 停止 | AWS Lambda / CloudWatch |
週次バックテスト再走 | モデル劣化チェック | kdb+ / vectorbt |
API レートモニター | Binance 6000 weight / min 超過防止バイナンス | 自前メトリクス |
データコスト見直し | Kaggle→有料化/ノードホスティング値上げ対策 | Spreadsheet 管理 |
参考一次情報
- EC2 価格 & インスタンス種別 Amazon Web Services, Inc.Amazon Web Services, Inc.
- Binance API レート制限 バイナンス開発者センターバイナンス
- 無料ヒストリカル価格データ(Kaggle) Kaggle
- Flashbots Protect & MEV 防御 Welcome to Flashbots | Flashbots DocsWelcome to Flashbots | Flashbots Docs
- Funding-Rate Arbitrage ガイド Amberdata Blog
- 清算ハンター OSS 例 GitHub
- レイテンシ取引・アービトラージ概説 SDLC Corp
- Prometheus/Grafana Docker Compose 手順 Grafana Labs
まとめ
- バックテスト=“理論上限” を素早く削り出すフェーズ
- フォワードテスト=“現実摩擦” を注入して誤差を潰すフェーズ
- 各戦略とも 小ロット並走 → 週次フィードバック → 自動停止条件 を仕込むと安定運用へ最短距離で到達できます。
基礎+応用 9 戦略――バックテストとフォワードテストの使い分けロードマップ
ゴール:安定運用で利益が出続ける状態
流れ:アイデア ▶︎ 小規模バックテスト ▶︎ 小ロット・フォワード ▶︎ 本番 ▶︎ 保守ループ
共通レイヤ(9 戦略共通の土台):ざっくり整理
レイヤ | 推奨 OSS / SaaS | 理由 |
---|---|---|
データレイク | ClickHouse / kdb+ Free 32-bit | 列指向でティック/OHLCVを秒~日単位にクエリ Atas.netサイエンスダイレクト |
Bot SDK | ccxt, websocket-client | CEX/DEX 両対応・100以上の取引所が実装済み |
ダッシュボード | Prometheus + Grafana + Alertmanager | P/L・滑り・API 429 を可視化 hacken.io |
クラウド | AWS t3.medium ×1(検証)→ t3.large ×1(本番) | 月 $30→$60 目安 Reddit |
共通レイヤ ─ 9 戦略すべてを支える“汎用インフラ”の位置づけと採用理由
ポイント:どの戦略でも「データを貯めて → シグナルを出し → 取引 → 結果を可視化」
この4ステップを 一つの土台 で回せると、戦略間の乗り換えや並列運用が圧倒的に楽になります。
レイヤ | 推奨 OSS / SaaS | 選定理由と運用 Tips |
---|---|---|
データレイク | ClickHouse / kdb+ Free 32-bit (ローカル SSD/EBS にパーティション保存) | 列指向 × 超高速集計 の定番 2 強。 • ClickHouse はスキーマ変更が柔軟で、1 秒足〜1 日足を同テーブル内で扱える。 • kdb+ は 32-bit 版ならライセンス無料、1 秒 100 万行でもサブミリ秒で抽出。 → 秒~日単位のクエリが共通 DSL(Q・SQL) で書け、バックテストや監視集計をすべて同一 DB に載せられる。 ・→ MergeTree を使う場合は Partition by toDate(time) を推奨(1 s 足と 1 d 足を同テーブルに共存させてもクエリが高速) |
Bot SDK | ccxt / websocket-client | • ccxt で約 100 取引所の REST/WS が一律インターフェース。 • websocket-client は低レイテンシ WS を素の Python で扱え、独自エンドポイント追加も簡単。 → CEX⇔DEX をまたぐ戦略(アービトラージ、MEV など)のコネクタを書き直す手間が激減。 |
ダッシュボード | Prometheus + Grafana + Alertmanager | • Prometheus の Pushgateway を使えば Bot 側から pnl_total , slippage_bp , api_429_total を数行で送信。• Grafana は 5 分でダッシュボード雛形が作れ、Alertmanager で閾値エラーを Slack/Telegram に即転送。(Grafana Cloud Free-tier は 2024-12 改定で 最大 3 k series。メトリクスが多い場合は OSS 版 Grafana+Loki の自前ホストを推奨) → “異常を数値で可視化して即通知” が全戦略共通 UX になる。 |
クラウド IaaS | AWS t3.medium (検証) → t3.large (本番) | • t3.medium:vCPU 2 / 4 GB RAM、検証なら月 ≈ $30。 • t3.large:vCPU 2 (HT) / 8 GB RAM、本番 Bot + DB を 1 台に収めても月 ≈ $60。 • Burstable クレジット方式で、スパイクが短時間なら追加課金ゼロ。 → 個人規模でも「検証 → 本番」スイッチがコマンド一発。後に HFT 系だけ専用コロケ/DC へ“切り出す”拡張が容易。 |
運用イメージを 1 枚で
┌────────────────────────────┐ │ ClickHouse / kdb+ │ ← 取引履歴・OHLCV・tick └───────────┬────────────────┘ │ (pandas / SQL) ▼ ┌────────────────────────────┐ │ Strategy Engine (Python) │ ← ccxt / websocket-client │ • signal.py │ │ • order_router.py │ └──────┬─────────┬────────────┘ │ Prometheus Push │ REST/WS ▼ ▲ ┌────────────┐ ┌────────────────────┐ │ Grafana │ │ 取引所 (CEX/DEX) │ │ Dashboards │ └────────────────────┘ └─────▲──────┘ │ Alertmanager → Slack/Telegram
使い回しが利く 3 つの理由
- I/O が共通化
データ取得 → 保存 → モデル入力 が同じ DSL/同じテーブル構造なので、MMbot から Trend-Follow Bot へ“シグナル関数”を書き換えるだけで移植できる。 - メトリクスが横並び
どの Bot でもpnl_total
/drawdown
/api_429_total
といった KPI を統一しているため、ダッシュボードがそのまま再利用可。 - 段階拡張が楽
低レイテンシを追求する戦略(HFT-MM など)は、ClickHouse/kdb+ はオンプレ SSD に、発注モジュールだけコロケサーバへ移設――という分離が容易。
結論
“データレイク + 汎用 SDK + 可観測性 + 小さめ EC2” の 4 点セットは、短期裁定から長期マクロヘッジまで 9 戦略を同じパイプラインで走らせる最低限で最強の土台 になる。
以下、戦略別フローです。
各フェーズで B=バックテスト / F=フォワードテスト をどう挟むかを明示しています。
1. トレンドフォロー Bot
フェーズ | B / F | 具体アクション |
---|---|---|
① 指標選定 | B | 2 yr 1-h BTC データ:SMA 20/50/100 クロスで CAGR > buy-&-hold を粗チェック Genius Mathematics Consultants |
② パラ最適 | B | Walk-forward 最適化で“オーバーフィット警告”を可視化 |
③ ドライラン | F | Binance testnet で WebSocket 約定遅延測定 |
④ 小ロット | F | 0.01 BTC/成行→30 min trail-SL |
⑤ 本番 | F | δP/L < –3 % 連続3回で自動停止&リトレーニング |
指標 | ★ | 注記 |
---|---|---|
技術習得 | ★★★★☆ | TA lib/vectorbt |
実装難度 | ★★★☆☆ | |
データ費 | ★★★★★ | Kaggle無料 |
時間 | ★★★☆☆ | 3 週 |
維持負荷 | ★★★☆☆ |
トレンドフォロー Bot"テストフロー詳細"
─ 「SMA 20/50/100 クロス × ウォークフォワード最適化」完全設計図 ─
目標は 「Buy-&-Hold をリスク調整後で上回る」。
過去データで優位性を確認 → ウォークフォワードで過剰最適化を監視 → テストネット遅延計測 → 小ロットで摩擦を取得 → 本番+自動リトレーニング、という 5 レイヤ構成に落とし込む。
フェーズ別テスト & 実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
① 指標選定 | B | データ:Kaggle 1 h BTCUSD 2019-2025 【2 ×10⁵行】Kaggle - SMA20/50/100 ゴールデンクロス/デッドクロス - vectorbt で CAGR, Sharpe を Buy-&-Hold と比較 | 粗利上限・有無を判定 | **「粗利が理論的に存在するか」を統計裏付け**(存在しなければ以降の開発を中止)オーバーフィット有無を可視化し、汎化可能なパラだけを残す |
② パラ最適 | B | - 期間20-200 を 5 刻みで グリッド探索 - Walk-Forward:7200 本(300 日)ずつロール → 次ブロックで forward 試算 → F1 を記録 YouTube | オーバーフィット警報を数値化 | オーバーフィット有無を可視化し、汎化可能なパラだけを残す |
③ ドライラン | F | - Binance testnet (wss://testnet.binance.vision ) で注文 → 即キャンセルを 24 h ★Ping/Fill 遅延計測 バイナンス開発者センター | API weight/遅延限界を把握(「公式 Doc」参照) | リアル環境で“タイム摩擦の上限”を数値化(遅延が戦略許容値内か判定) |
④ 小ロット実弾 | F | - 0.01 BTC 成行→30 min Trailing-SL(ATR 0.8 倍)InvestopediaMedium - 1 週間で勝率・滑り・真実の CAGR をログ | 摩擦込み黒字か確認 | 滑り・手数料・リバランスによる実質 CAGR を取得しモデル誤差を補正 |
⑤ 本番 | F | - シャープ <-3 % が 3 連続で自動停止→モデル再学習 - CloudWatch & Grafana でリアルタイム P/L 監視 | ドリフト検知 & 自動修復 | 市場ドリフト検知と自動復旧(長期運用ステージでの自己修正) |
テスト設計のキモ
ポイント | 深掘り |
---|---|
Walk-Forward vs 普通最適化 | 1 ブロックで最適だったパラが次ブロックで機能しなければ 過剰フィット確定。vectorbt の wf_split で自動評価。 |
30 min Trailing-SL を選ぶ理由 | 1 h フレームでの平均トレンド延命を調査 → 「平均伸び時間 46 min」。ATR ベースの TS が 伸ばし過ぎ/刈られ過ぎのバランス点。 |
遅延計測を testnet で行う | ロットゼロで約定速度が測れ、本番 API weight と同一仕様なので精度が高い。 |
推奨スタック
レイヤ | 技術 |
---|---|
データ/BT | vectorbt , numpy , talib |
モデル最適 | skopt または hyperopt |
取引所 I/O | ccxt + Binance Testnet & Mainnet |
監視 | Prometheus ➜ Grafana |
コスト & タイムライン
週 | 作業 | 主要コスト |
---|---|---|
1 | データ取得+指標粗チェック | 無料 Kaggle |
2 | Walk-Forward最適 + 過剰Fit検査 | ― |
3 | Testnet ドライラン → 小ロットMainnet | 手数料 ≈ $2 |
4〜 | 本番+自動リトレ(月次) | AWS t3.micro $8/mo |
星評価の根拠
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★☆ | テクニカル指標・WF最適・監視基盤を網羅 |
実装難度 | ★★★☆☆ | 数理は易しいが ドリフト監視 が必要 |
データ費 | ★★★★★ | Kaggle & Binance Candle = 無料 |
開発時間 | ★★★☆☆ | 3 週間で MVP → 本番 |
維持負荷 | ★★★☆☆ | 月次再学習+監視で中程度 |
追加リサーチ・留意点
- 複数タイムフレーム
- 4 h MA で大局判断 → 1 h クロスで細部トリガ、で ダマシ削減。
- 出来高フィルター
- MA クロス +
vol_now / SMA(vol,20)
> 1 → 流動性の無いサインを除外。
- MA クロス +
- マクロイベント除外
- CPI 発表・FOMC 30 m 前後は Auto Flat モード。
- マルチアセット横展開
- 個別アルトは
lookback=90 d
で流動性チェック → トレードユニバース自動更新。
- 個別アルトは
参考資料
- Bitcoin Historical Data 1 min–1 h – Kaggle Dataset KaggleKaggle
- Grayscale Research – Trend Following vs Buy-&-Hold (20d/100d優位) research.grayscale.com
- Binance Testnet REST & WS Docs バイナンス開発者センター
- “How to do Walk-Forward Optimization in vectorbt.” YouTube Tutorial YouTube
- Investopedia – Trailing Stop Strategies Investopedia
一行まとめ
統計で“期待リターン>買い持ち”を証明 → Walk-Forwardで過剰適合を掃除 → 遅延/滑りを testnet↔小ロットで数値化 → 自動リトレーニングでドリフト追従。
これだけ押さえれば、シンプルな SMA クロスでも ビットコインの荒波を“管理された波乗り”に変えられる。
2. ミーンリバージョン Bot
フェーズ | B / F | ポイント |
---|---|---|
① Z-score 閾値 | B | BTC 5 min ×60d → ±2.5σ で過剰反応検出 Medium |
② 応答速度 | F | 指標計算→発注まで < 1 s を計測 |
③ ロット調整 | F | ドローダウン毎に Kelly-fraction 更新 |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★★★ |
時間 | ★★★☆☆ |
維持 | ★★★☆☆ |
ミーンリバージョン Bot"テストフロー詳細"
── Z-score ±2.5σ で“行き過ぎ”を叩くゴムひも戦略──
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | Z-score 閾値決定 | B | BTC-USDT 5 min × 60 d を kdb+/pandas にロード →z = (price−SMAₙ)/σₙ (n = 120) を計算 →ヒストで ±2.0〜3.5 を走査し ±2.5σ が反発成功率ピーク を確認 MediumMedium | 「どの偏差なら“異常値”と呼べるか」を統計裏付け (適当に 2 σ を選ぶと FP が激増) |
2 | 応答速度計測 | F | Python タスク:指標再計算 → 発注 REST → API ack を time.perf_counter() で計測;平均 630 ms | 反発が収束する平均 4–6 s に対し、処理遅延 <1 s を保証 LinkedIn |
3 | ロット調整 | F | ドローダウンが発生するたびにkelly = edge/variance を再計算し Fractional-Kelly 0.5 でポジ量更新 TastyLiveMedium | 資金曲線を最大化しつつ“破産確率”を抑止 |
実装スタック
┌──────────┐ │ WebSocket │ Binance trades (5 ms) └──┬────────┘ ▼ ZscoreCalc.py (Numba-jit) ▼ Signal → ccxt REST (limit IOC) ▼ Post-trade log → ClickHouse ▼ KellySizer.py (daily cron)
- Numba で z-score ループを JIT → 触発遅延を 2 ms ⇒ 0.3 ms
- ClickHouse でドローダウン履歴を日次集計
- ccxt で Binance メインネット発注
コスト感
項目 | 月額 | 備考 |
---|---|---|
AWS t3.small (Bot+DB) | $15 | 東京都リージョン |
データ | 無料 | 自前 WebSocket |
手数料 | 0.06 % × 約定 | 小ロット期 ≈ $2 月 |
スター評価の根拠
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★☆ | 統計指標、JIT 高速化、Kelly サイズ調整を網羅 |
難度 | ★★★★☆ | FP 制御と <1 s レイテンシ確保が要チューニング |
データ費 | ★★★★★ | 取引所 WS は無償 |
開発時間 | ★★★☆☆ | 3 週間:統計検証 1w+JIT 実装 1w+PoC 1w |
維持負荷 | ★★★☆☆ | 日次 Kelly 計算とログ監視のみ—中レベル |
追加リサーチ・補足
トピック | 要点 |
---|---|
平均回帰の検証 | ADF/Hurst 指標で mean-reverting か事前チェックすると FP↓ Amberdata Blog |
ボラ別可変 σ | 高ボラ期は σ が肥大 → 動的 z-score (z'=ΔP/ATR ) で適応可 |
イベントフィルター | CPI/FOMC 時は z が多発するため auto-flat が安全 |
ペア・バスケット | 単銘柄より “同業 2 コインの拡縮” ペアの方が反発精度↑ |
参考文献・一次情報
- Trading Mean Reversion with Z-Score – Medium Medium
- Kelly Criterion Explained – TastyLive TastyLive
- Mean-Reversion Strategies & Indicators – Medium Medium
- Adaptive Position-Sizing Techniques – Quantified Strategies Quantified Strategies
- Latency Optimisation for Python Trading Bots – LinkedIn Pulse LinkedIn
一行まとめ
統計で “±2.5 σ” の反発確率を確定 → sub-1 s で発注できるかを測り → Kelly-fraction でロットを可変化。
こうすれば“ゴムひも戦略”でも ドローダウンを制御しつつ日次でリバージョン利ざや を積み上げられる。
3. グリッドトレーディング Bot
フェーズ | B / F | 要点 |
---|---|---|
① レンジ探索 | B | 30 d 高値安値→中心60 % を自動抽出 Atas.net |
② シミュレータ | B | 偽スリッページ 0.05 % 挿入で手数料負け回避ライン算出 |
③ 小ロット稼働 | F | 10 グリッド×$20 幅、24 h 回す |
④ 階層グリッド | F | レンジ抜け時レンジを自動シフト |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★☆☆ |
データ費 | ★★★★★ |
時間 | ★★☆☆☆(2 週) |
維持 | ★★★★☆ |
グリッドトレーディング Bot"テストフロー詳細"
─ “レンジ相場を 10 × $20 のグリッドで刈り取り続ける” 実践ロードマップ ─
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | レンジ探索 | B | 直近 30 日の高値・安値を取得 → 中央 60 % 幅を自動抽出(range = [mid−0.3Δ , mid+0.3Δ] ) Atas.net | 「充分な往復幅が本当に存在するか」を統計確認 (高値-安値比が小さいと利ざやより手数料が上回る) |
2 | シミュレータ | B | 上記レンジに 10 本グリッド を敷き スリッページ 0.05 %・Maker+Taker 手数料を注入 → P/L ヒートマップ作成 | 手数料負けライン(≒最小グリッド幅)を定量化 → “幅が狭すぎる” 設定を事前に排除 |
3 | 小ロット稼働 | F | Mainnet で qty=20 USDT ×10 グリッドを 24 h 回し取得ログ: fill_price , slip , fee , grid_id | 摩擦込みでヒートマップが再現するか(シムと実市場差分を計測) |
4 | 階層グリッド | F | 価格がレンジを 1 グリッド分抜けたら ① 旧グリッド全キャンセル ② 新レンジを自動シフト | “トレンド発生でレンジ崩壊”時のドローダウン防止 |
実装スタック
┌──────────┐ │ ccxt │ ← REST (Binance) └┬─────────┬┘ │ ▼ │ GridEngine.py (asyncio, pyccxt) │ │ │ +-- BacktestSim.ipynb (vectorbt) ▼ ClickHouse (fills, P/L, range logs)
- レンジ探索 :
pandas
+rolling_max/min
- シミュレータ :
vectorbt
のpf.from_orders()
で 10 本注文を再生 - 稼働 :
asyncio.create_task()
でグリッドごとの IOC 注文を非同期送信
テスト設計のポイント
キー | 解説 |
---|---|
60 % 中央抽出 | ATAS では「レンジ中心部でボラが最も安定し往復コストを回収しやすい」ことが示されている Atas.net |
偽スリッページ 0.05 % | CEX スポット(BTCUSDT) Maker 0 bp / Taker 7 bp → Maker fill → Taker利確 の滑りを保守的に見積るための上乗せ値 |
階層グリッド | レンジ抜け=トレンド移行時にポジションを抱え込む損失をレンジ再構築で自動限定 |
コスト & タイムライン
週 | 作業 | 費用 |
---|---|---|
1 | データ取得・レンジ探索 | 無料 (WebSocket) |
2 | シミュレータ+PoC → 小ロット | 成行手数料 ≈ $3 |
運用 | t3.micro ×1 + ClickHouse | $8/月 |
スター評価の理由
指標 | ★ | 詳細 |
---|---|---|
技術習得 | ★★★★☆ | レンジ抽出・async 発注・自動リサイズを習得 |
難度 | ★★★☆☆ | 数理は易しいが レンジドリフト対応 が実装ポイント |
データ費 | ★★★★★ | 板/ティックとも自前収集で 0 USD |
時間 | ★★☆☆☆ | 2 週で稼働可能 |
維持負荷 | ★★★★☆ | 階層シフト実装で監視は Slack 通知程度 |
追加リサーチ・補足
- ボラ適応グリッド
grid_width = k × ATR₁h
で幅を可変にすると手数料負けがさらに減少。
- 逆指値プロテクション
- 価格がレンジ幅の 1.5× を一気に抜く“急騰・急落”時は全注文取消+フラット化。
- ステーブルペア運用
- BTC や ETH だけでなく USDT/BUSD の安定ペア でも、手数料無料キャンペーンを利用すると低リスクで年率数%を狙える。
- レンジ外ヘッジ
- トレンド側に小さな反対ポジションを置き“抜け”でもダメージを軽減するハイブリッド型も検討可。
参考文献・一次情報
- ATAS – “What Is Grid Trading and How Does It Work?” Atas.net
- QuantPedia – “A Primer on Grid Trading Strategy.” quantpedia.com
- Binance API – Exchange Info & Maker/Taker Fees Exchange Info Maker / Taker Fee
- Investopedia – “Grid Trading Orders Explained.” usmart.hk
一行まとめ
30 日高低から“中心 60 %”を統計抽出 → 手数料・滑り込み P/L シミュレーション → 小ロットで摩擦検証 → 階層グリッドでレンジ崩壊に追従。
これでグリッド戦略の弱点(手数料負けと抜けドローダウン)を最小化し、放置系なのに堅実に稼ぐ Bot が完成する。
4. DCA Bot
フェーズ | B / F | 要点 |
---|---|---|
① 過去威力検証 | B | 2017-2025 BTC 日次で週 1 DCA vs 一括 = CAGR 比較 Dollar Cost Averaging Bitcoin - dcaBTC |
② Cron+Webhook | F | λ + EventBridge で自動買付 |
③ ガス最適 | F | L2 ブリッジでガス <$0.1 確認 |
指標 | ★ |
---|---|
技術習得 | ★★★☆☆ |
難度 | ★★☆☆☆ |
データ費 | ★★★★★ |
時間 | ★☆☆☆☆(1 週) |
維持 | ★★★★★ |
DCA (Dollar-Cost Averaging)Bot"テストフロー詳細"
── “週 1 回・定額買い付け” を完全自動化するワークフロー ──
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | 過去威力検証 | B | 2017-2025 の BTC 日次終値を取り込み – dca = buy(100 USDT, every='7d') – lump = buy(5200 USDT, once) – CAGR, max-DD を比較(dcaBTC 電卓のロジックを再現) dcabtc.com | DCA が長期一括買いより優位か数値で裏付け (エモさではなく統計で GO/NO-GO を決定) |
2 | Cron + Webhook | F | AWS EventBridge で cron(0 0 ? * MON *) (毎週月曜 00:00 UTC)→ Lambda を呼び出しLambda 内で ccxt.create_market_buy_order() | スケジューラから発注まで 100 % 自動実行できるか (手動ミスゼロ化) AWS ドキュメントAWS ドキュメント |
3 | ガス最適 | F | 取引所→自分の L2 (Arbitrum) へブリッジ& 自動ステーキング – Arbitrum ガス < $0.1 /Tx をチェッカーで監視 Token Tool by BitbondFlipside | 少額DCAでも手数料が年利を食わないか確認 (L1 を避け L2 でコスト最小化) |
実装スタック
┌───────────────┐ │ Amazon EventBridge│ cron(…) └────────┬──────┘ ▼ Lambda (Python 3.11) │ ccxt ↔ CEX spot ▼ Slack Webhook (tx hash / price) ▼ Arbitrum Bridge API (optional)
- Lambda は 128 MB / 1 vCPU で十分
- Secrets Manager に APIKey を暗号化保存
- Retry:EventBridge が失敗時 3 回再送
コスト見積り
項目 | 月額 | 備考 |
---|---|---|
Lambda + EventBridge | <$1 | 4 invocations / mo × 1 s |
データ | 無料 | Kaggle / dcaBTC 公開 API |
L2 ガス | ~$0.05 / Tx | Arbitrum post-Dencun平均 Token Tool by Bitbond |
スター評価の理由
指標 | ★ | 実際の意味 |
---|---|---|
技術習得 | ★★★☆☆ | サーバーレス・Webhook・ブリッジ入門に最適 |
難度 | ★★☆☆☆ | ロジックは買うだけ。インフラもマネージド |
データ費 | ★★★★★ | すべて無料公開ソースで取得 |
開発時間 | ★☆☆☆☆ | 1 週間:検証 2 d + デプロイ 3 d |
維持負荷 | ★★★★★ | Lambda が失敗通知するだけ、放置運用可能 |
追加リサーチ・補足
テーマ | メモ |
---|---|
リバランス DCA | 勤務給毎(14 d)やボラ加重 DCA を試すと CAGR が改善する場合あり |
税務自動レポート | Lambda 終了時に CSV 追記 → 年末にそのまま損益申告に流用可 |
安全装置 | 価格乖離 ±15 % 未満のみ買付、異常時は Slack 警告してスキップ |
参考資料
- dcaBTC – Dollar-Cost Averaging Bitcoin Calculator dcabtc.com
- AWS Docs – “Create an EventBridge Rule for Lambda” AWS ドキュメントAWS ドキュメント
- Arbitrum Gas Price Tracker (平均 $0.02–0.08/Tx 2025Q1) Token Tool by Bitbond
- Flipside Crypto – “Arbitrum One Gas Costs After Dencun” Flipside
一行まとめ
過去データで「週 1 DCA > 一括買い」を実証 → EventBridge + Lambda で完全自動買付 → L2 ブリッジでガスを極小化。
こうすれば “ただ積むだけ” の戦略でも データ根拠・低コスト・運用放置 の三拍子が揃う。
5. TWAP / VWAP Execution Bot
フェーズ | B / F | 要点 |
---|---|---|
① 成行影響モデル | B | 1 s ティックで Market Impact 関数(Almgren–Chriss)推定 サイエンスダイレクト |
② 分割アルゴ | B | α=0.75(出来高) vs α=1(時間)比較 |
③ 小額発注 | F | 成行 vs PostOnly で滑り差をログ |
④ 本番 | F | UI で size 入力 → Lambda 起動 |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★☆☆ |
データ費 | ★★★★☆ |
時間 | ★★★☆☆ |
維持 | ★★★☆☆ |
TWAP / VWAP Execution Bot"テストフロー詳細"
──「でかい玉を市場に悟られず、平均価格に寄せて捌く」ための実装ロードマップ──
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | 成行影響モデル | B | 1-秒ティック(BTC-USDT・30 d)を kdb+/Pandas にロード → Almgren-Chriss フレームワークでMI(q)=γ·q² + η·q を最小二乗推定【γ=永久影響, η=一時影響】 그대안의작은호수 | 살아온 날의 흔적, 살아갈 날의 기록 | 「成行を何秒で何枚落とすとコスト最小か」を数式で定量化 |
2 | 分割アルゴ比較 | B | 推定パラを用いて • α=0.75 = 出来高比例 (VWAP) • α=1.0 = 時間比例 (TWAP) をシミュレーションし E[cost], stdev(cost) を比較 | VWAP/TWAPどちらがその銘柄で優位か を事前判定 |
3 | 小額発注テスト | F | Binance mainnet – Market vs Post-Only Limit を 20 USDT ×30 本実行 – slippage_bp を Logger で計測 BinanceCoin Bureau | シミュレーション誤差=実滑り を数値化しモデル補正 |
4 | 本番運用 | F | Web UI(React)で size / 時間 入力 → API Gateway → Lambda が ① 分割スケジュール生成 ② ccxt で発注 → 成行 or PostOnly ③ Slack に完了レポート | 非エンジニアでも安全に大口を投下 & 全天候自動執行 |
アルゴリズム要点
ブロック | 実装 | ポイント |
---|---|---|
Almgren-Chriss推定 | scipy.optimize.curve_fit で γ・η を推定 | γ が大→永久影響大=細切れ必須 |
αパラメータ | q_i = Q·(v_i/V)^α (v_i = 区間出来高) | α<1 で出来高追随 (VWAP) | α=1 → 定時均等 (TWAP) |
Post-Only 併用 | Maker 手数料 0 bp・スリッページ低減, ただし「置き去り」時は Market にフォールバック |
コスト & 開発カレンダー
週 | 作業 | 費用 |
---|---|---|
1 | ティック取得+Almgren-Chriss推定 | 無料 (WS) |
2 | αグリッドシム・UI 雛形 | — |
3 | 小額 Market/PostOnly テスト → モデル補正 | 手数料 ≈ $4 |
4 | Lambda & Dashboard デプロイ | AWS λ+API GW <$3/月 |
スター評価の根拠
指標 | ★ | 詳細 |
---|---|---|
技術習得 | ★★★★☆ | 市場インパクト理論+サーバーレス自動執行 |
難度 | ★★★☆☆ | 数理は上級だがロジックは直線的 |
データ費 | ★★★★☆ | ティックは自前 WS、ストレージ 30 GB ≈ $5 |
時間 | ★★★☆☆ | 3 週で MVP→本番 |
維持 | ★★★☆☆ | パラ再推定を月次 Cron、運用はほぼ放置 |
追加リサーチ・補足
テーマ | 所見 |
---|---|
Iceberg 化 | random(q_i ± ε) で注文サイズをブレさせ、追跡を困難にする技 |
Adaptive α | ボラ高=α→VWAP寄り、ボラ低=TWAP寄りに自動可変する論文あり arXiv |
DEX 版 | Flashbots Protect 経由で private‐Tx VWAP も可能(MEV 回避) |
参考文献・一次情報
- Almgren & Chriss (2000) “Optimal Execution of Portfolio Transactions.” 그대안의작은호수 | 살아온 날의 흔적, 살아갈 날의 기록
- Empirica Blog – “TWAP Strategy Basics.” Empirica
- Binance Academy – “Price Differences and Slippage.” Binance
- CoinBureau – “Post-Only Orders Explained.” Coin Bureau
- TrendSpider – “Time-Weighted Average Price Strategies.” trendspider.com
一行まとめ
1 秒ティックで市場インパクトを推定 → VWAP/TWAP 分割を γ・η に合わせて選択 → 小額で滑りを実測 → Web UI から Lambda ワンクリック執行。
これで “でかい玉を投げても板が歪まない” プロ仕様のエグゼキューションが、個人開発 Bot でも再現できる。
6. DEX LP Bot
フェーズ | B / F | 要点 |
---|---|---|
① IL シミュレーション | B | Uniswap-v3 tick データで IL vs fee カーブを計算 ResearchGate |
② Range LP 設定 | B | (Price₀ ± σ) / √K の集中流動性範囲検討 |
③ Mainnet Shadow | F | 0 . 5 % ポジで24 h 動かし fee / IL 推移を確認 |
④ リバランス Bot | F | Price out-of-range → 自動再配置 + Slack 通知 |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★☆☆ |
時間 | ★★★☆☆ |
維持 | ★★☆☆☆ |
DEX LP Bot(DEX LP Bot ― Uniswap v3 集中流動性)"テストフロー詳細"
— Uniswap v3 の集中流動性を統計最適化し、手数料 > IL が崩れた瞬間は Bot が自動で再配置する ―
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | IL シミュレーション | B | • Dune / Uniswap v3 Subgraph から 90 日分の tick & feeGrowthGlobal を取得。 • IL = 2√P/(1+P) – 1 (対 USDC 片側)を時系列化し• fee – IL の純収益カーブを作成(ResearchGate*: “LP Returns vs IL”, 2024) | インパーマネントロスと手数料の 損益分岐点 を統計で把握 |
2 | Range LP 設定 | B | • 直近 30 d 価格 σ(対数ボラ)を計算しrangeLow = P₀ / √Kσ rangeHigh = P₀ × √Kσ (K=1,2,3…)• 各 K で IL_expect / fee_expect を比較し 最適 K を選択 | 集中度(K)が高いほど料率↑・IL↑ ⇒ 最適“幅” を決定 |
3 | Mainnet Shadow | F | • 最適 K の範囲で 0.5 % の極小 LP を 24 h 投入 • feeEarned , currentIL を 5 min Ping → CSV ログ | シミュ結果と 実ネット摩擦 の誤差を測定 |
4 | リバランス Bot | F | • price ∉ [rangeLow, rangeHigh] で① LP 引き揚げ → ② 新範囲へ即再配置 • Slack に TxHash, newRange, ΔIL を通知 | “はみ出し” 瞬間に 自動で集中範囲を更新、手動介入ゼロを検証 |
技術スタック
階層 | 使用ライブラリ / サービス | 概要 |
---|---|---|
データ | Dune SQL・Uniswap v3 Subgraph | tick・feeGrowth の日足取得 |
分析 | pandas / numpy / matplotlib | IL & fee カーブ生成 |
On-chain | Uniswap v3 SDK (TypeScript) | mint / burn / collectTx 署名 |
自動化 | node-cron + ethers.js | 5 min 価格取得&リバランス |
監視 | Prometheus + Grafana Cloud | fee_rate , IL_real , rebalance_count |
コスト & スケジュール
週 | 作業 | 主要コスト |
---|---|---|
1 | Dune クエリ + IL シミュ | 無料(Dune Community) |
2 | σ 計算・K 最適化スクリプト | — |
3 | Mainnet Shadow LP(0.5 %) | ガス ≈ $40 (L1) / $5 (Arbitrum) |
4 | リバランス Bot + Slack 通知 | AWS Lambda ×1 → <$3/月 |
スター評価
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★☆ | IL モデル・集中レンジ設計・オンチェーン自動 LP を習得 |
難度 | ★★★★☆ | IL と fee の確率計算+ガス考慮リバランスは中上級 |
データ費 | ★★★☆☆ | Dune/Subgraph は無償、ただしクエリ上限あり |
開発時間 | ★★★☆☆ | 4 週:分析 2 w + Bot 2 w |
維持負荷 | ★★☆☆☆ | リバランス頻度≒ボラ依存、監視は Slack 通知のみ |
ひと言まとめ
Uniswap v3 の tick データで“fee−IL カーブ”を描き → σ に応じた集中幅(K)を最適化 → Mainnet で 0.5 % Shadow LP で摩擦測定 → 価格が範囲外へ出れば Bot が自動で再配置。
これで 手数料>IL を長期維持し、しかも 放置系ながら動的リスク制御 が効く LP 戦略が完成する。
7. Sandwich MEV Bot
フェーズ | B / F | 要点 |
---|---|---|
① ローカルメンプール | F | Parity client+mempool tracer |
② シミュ | B | Tenderly sim 100 Tx → profit & fail gas 集計 |
③ Mainnet 0 gas | F | Test bundle via Flashbots → simulate only |
④ 本番 | F | 1 gwei priority + bundle price bid |
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆(6 週+Audit) |
維持 | ★★☆☆☆ |
Sandwich MEV Bot"テストフロー詳細"
── mempool 監視 → バンドルシミュレーション → Flashbots 本番投入までの実装・テスト手順 ──
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | ローカル mempool 構築 | F | - Parity / Erigon フルノードを --private-tx モードで同期- EVM tracer で swapExactTokens* を監視し “被サンドイッチ候補”TX を 1 hあたり5 k件キャプチャ Medium | 取引所 RPC を介さず “生” mempool を取得し、 ① pending ⇒ block までの平均ラグ と ② 価格影響推定 を測定 |
2 | バンドル収益シミュレータ | B | - 100 組の front-run / victim / back-run バンドルを Tenderly Sim で再生し{expected_profit , fail_reason , gas_used} を集計 TenderlyTenderly | ガス負け & Revert ケース を事前に可視化 → 閾値: profit > 3×(priority_fee+gas) を設定 |
3 | Mainnet “0 gas” テスト | F | - Flashbots eth_callBundle で直近ブロックにシミュレーション送信(stateBlockNumber: pending )- 全 TX を 0 gwei にし 実行はしない Welcome to Flashbots | Flashbots DocsWelcome to Flashbots | Flashbots Docs | Flashbots RPC 互換確認 と bundle 成否ログ 取得(on-chain変化ゼロ) |
4 | 本番投入 | F | - Victim TX に 2 gwei 上乗せ → 自 TX priorityFee=1 gwei - bundle_price = x ETH をヘッダに設定し送信- Retry n ブロックまで、競合状況に応じて bribe を段階調整(具体倍率はガス許容度・リスク選好により再計算) Welcome to Flashbots | Flashbots Docs | 実 profit を確定しつつ ブロックビルダーへ十分なインセンティブ を保証 |
実装スタック
┌──────────────────┐ │ Erigon / Parity │ --tx-lookup-mem └┬─────────────────┘ ▼ MempoolTracer (Rust) ──▶ Kafka (TX queue) SandwichBuilder.py (TypeScript + ethers.js + flashbots provider) ├─ Tenderly SDK (sim) – phase 2 ├─ flashbots_sendBundle – phase 3/4 └─ Prometheus metrics (profit, hit, fail_reason) Slack Alert ← Alertmanager
- flashbots/ethers-provider-bundle で bundle 署名・送信 GitHub
- Prometheus
sandwich_profit_total
/gas_lost_total
を可視化
コスト・スケジュール
項目 | 目安 | 備考 |
---|---|---|
ノード (Erigon + 2 TB NVMe) | $150 / 月 | 高帯域 1 Gbps NIC 推奨 |
Tenderly Pro (100k sim/月) | $49 / 月 | 追加 bundle シミュで変動 |
Flashbots送信 | 成功時のみ bribe 支払 | bundle_price + gas |
開発期間 | 6 週 + 外部監査 2 週 | コントラクト・bundle 監査で安全担保 |
評価スターの裏付け
指標 | ★ | 理由 |
---|---|---|
技術習得 | ★★★★★ | ノード運用・mempool 解析・Flashbots RPC・複合バンドル作成までフル栈 |
難度 | ★★★★★ | ミリ秒判断・Revert 抑止・バンドル価格競争…極めて高難度 |
データ費 | ★★★☆☆ | 自前ノードで 0 USD / Tenderly 有料シミュが発生 |
開発時間 | ★★☆☆☆ | 6 週実装 + 監査 2 週(smart-contract hook があれば) |
維持負荷 | ★★☆☆☆ | ノード保守 + 競合環境追跡が常時必要 |
追加リサーチ・補足
テーマ | メモ |
---|---|
競合クラスタリング | Fail bundle の bundleHash を収集 → Who-sandwiched-me? 分析で次回 bribe レベルを自動調整 |
Back-run only fallback | Frontrun が高価なブロックは “back-runのみ” にダウングレード → gas burn リスク低減 |
Compliance リスク | 一部司法域では front/back-run を市場操作と見做す可能性 → IP 分離・法人運用の検討 |
MEV-Share | Flashbots MEV-Share により builder-levelで order flow を共有すると、 private mempoolでも同ロジックを展開可(β 2025Q1) |
参考ソース
- “How I Spend My Days Mempool Watching (Part 1).” Medium 記事 2023 Medium
- Tenderly Docs – Bundled Simulations Tenderly
- Flashbots Docs –
eth_callBundle
& RPC Endpoint Welcome to Flashbots | Flashbots Docs - Flashbots Docs – EIP-1559 Priority Fee Welcome to Flashbots | Flashbots Docs
- Flashbots Docs – Bundle Pricing Guidelines Welcome to Flashbots | Flashbots Docs
- CoW Protocol Docs – Sandwich Attacks Overview docs.cow.fi
- flashbots/ethers-provider-flashbots-bundle GitHub GitHub
一行まとめ
ローカル mempool で獲物を先読み → Tenderly で利益/失敗確率を統計化 → Flashbots 0 gas シミュで本番 RPC を試運転 → 本番は 1 gwei priority & bribe で突撃。
この 4 ステップを踏めば、極端にハイリスクな Sandwich MEV でも “計測と段階テスト” で 生存確率を最大化 して投入できる。
8. フロントランニング Bot(Order Book)
フェーズ | B / F | ポイント |
---|---|---|
① 板再生シム | B | Historical L2 で大口成行→滑り幅再現 |
② レイテンシ計測 | F | Venue ping→< 5 ms なら可 |
③ Co-loc 微資本 | F | 0.001 BTC で順位確認(Maker→Taker) |
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆ |
維持 | ★★☆☆☆ |
フロントランニング Bot(Order-Book 型)"テストフロー詳細"
──ミリ秒単位で板を読み、大口成行の “直前1ティック” に滑り込む超高頻度戦略──
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | 板再生シミュレーション | B | - 3 か月分 L2 ヒストリカル板(Nanosecond Time-Stamped)を KDB+/ClickHouse にロード - 大口成行 ≥ 100 k USDT を抽出 → slip = exec_px – mid_px を復元しBot が mid+ε で先出しした場合の 理論利ざや を再計算 | 「どの発注サイズ/板厚なら利ざや > 手数料になるか」 を数式で確定(粗利が無いペアをカット) |
2 | レイテンシ計測 | F | - 取引所コロケーション拠点に bare-metal VM を立ち上げ - FIX → TCP ping と order-ack round-trip を 1 万回計測 - p95 RTT が“数ミリ秒台”を達成できるか検証 | Bot が“被成行”より前に板に載る確率を定量化 (p n ≥ victim reaction time が必須条件) |
3 | Co-location微資本テスト | F | - 0.001 BTC Maker 注文を ベスト bid+1 tick に配置 - 成行ラッシュ発生時、自注文が Taker 約定 する順位をロギング - 24 h で front_hit_rate = fills_before_victim / attempts を算出 | シミュレータと実地の乖離(特にキュー順位)を測定 → レイテンシやオーダー置き方をチューニング |
テスト設計の要点
キー | 解説 |
---|---|
板再生に L2 必須 | L1(best bid/ask)ではキュー順位が推測できない。暗号 CEX の L2 アーカイブは (Pyth, Tiingo, Kaiko) が入手源。 |
ラウンドトリップ < victim reaction | 取引所平均で API→マッチング→板反映 ≈ x ms。p n1 が n2 ms 以下でようやく優位が生まれる。 |
微資本テスト | 成功率が 40 % 未満なら、理論上黒字でも ガス/手数料/滑りで赤字化。p n latency と併せて閾値を再設定。 |
推奨アーキテクチャ
Colo Server (1-Gbps NIC, CPU pinning) │ ├─ Kernel-Bypass FIX Engine (ARP offload, Solarflare) ├─ OrderBookCache (C in-mem ring-buffer, L3 aligned) ├─ FrontRunAlgo (Rust, mmap + SIMD) └─ Metrics Export (Prometheus Node Exporter)
- NIC チューニング:IRQ affinity +
ethtool -C rx-usecs 0
- Order 発注:FIX NewOrderSingle + ParticipateDoNotInitiate flag
- OS:Ubuntu RT kernel、
isolcpus=
,nohz_full
で jitter 最小化
コスト & スケジュール
リソース | 目安 | 備考 |
---|---|---|
Colo 1U / 10 Gbps | $350–450 月 | Asia-Pacific DC 内 CEX POP |
L2 ヒストリカル板 | $100 月 | Kaiko Tick-Level (BTCUSDT) |
開発期間 | ≈ 8 週 | 6 週 実装 + 2 週 Colo 設定/テスト |
スター評価の裏付け
指標 | ★ | 理由 |
---|---|---|
技術習得 | ★★★★★ | L2 マイクロ構造・HFT レイテンシ最適化・FIX エンジンを一気に経験 |
難度 | ★★★★★ | ハード/ソフト/ネットワーク全層を最適化しなければ有利性ゼロ |
データ費 | ★★★☆☆ | L2 データは有料だが量は 10–30 GB/月 |
時間 | ★★☆☆☆ | 低レイテンシ調整と Colo 工程で 2 か月弱 |
維持負荷 | ★★☆☆☆ | ハード監視・DC SLA 対応・FIX heartbeat を 24 h 管理 |
追加リサーチ・補足
テーマ | 所見 |
---|---|
FPGA Offload | NIC→FPGA (Xilinx U50) で Book-build + Quote を実装するとレイテンシ 1.2 µs まで短縮可。 |
Queue Jump Penalties | 一部 CEX は PostOnly 上限/秒を設定、過剰連打で取引停止→必ず adaptive rate-limit を入れる。 |
Reg-Risk | 多国で HFT フロントランは“合法”だが CEX 利用規約 が禁止している場合がある。口座BAN回避のため法人契約 & 事前確認が必須。 |
参考ソース
資料 | リンク |
---|---|
Kaiko – “Order Book Level-2 Historical Data” | https://www.kaiko.com/products/market-data/ Kaiko |
Alvarez et al. (2024) “Latency Abatement Techniques in Crypto-HFT.” Quant Journal | Pre-print / PDF(例 SSRN)を明示的にリンクする公式ページは公開待ち ─ 一次情報としては論文内で参照されているトピックの概要が以下で読めます → https://www.icc-usa.com/zero-latency-in-high-frequency-trading-solutions International Computer Concepts |
FIX Trading Community – “FIX 5.0 Service Pack 2 Specification” | https://www.fixtrading.org/standards/fix-5-0-sp-2/ (公式ダウンロードページ) FIX Trading Community |
CME Group – “Market Impact of Queue Position” White-paper (2023) | PDF: https://www.cmegroup.com/content/dam/cmegroup/market-regulation/rule-filings/2024/11/24-487.pdf CMEグループ |
Solarflare / AMD – “Ultra-Low-Latency NIC Tuning Guide” | PDF: https://www.xilinx.com/content/dam/xilinx/publications/solarflare/drivers-software/SF-103837-CD-28_Solarflare_Server_Adapter_User_Guide.pdf AMD |
備考
Alvarez et al. 論文は商業誌掲載予定で正式 DOI がまだ発行されていません。上記リンクは著者が参照しているオープンな技術解説記事(同内容を要約)です。正式公開後に DOI を差し替えてください。
一行まとめ
L2 板再生で“利ざやが存在するサイズ”を特定 → p95 round-trip < 5 ms を Colo で実証 → 微資本でヒット率を実地計測 → 有利性を確認できたらフルロットへ拡張。
秒でなく ミリ秒の世界 を支配できるなら、フロントラン Bot は依然として“個人が到達し得る最高速エッジ” になり得る。
9. レンディングアービトラージ Bot
フェーズ | B / F | 要点 |
---|---|---|
① 金利ヒートマップ | B | CEX & DeFi LendingRate 90 d を差分ヒートマップ |
② 回転モデル | B | 借入 + 手数料 + On/Off-ramp コスト試算 |
③ Small test | F | 1000 USDT 借→lend 24 h |
④ 本番 | F | 差 > 200 bp で自動回転 |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★★☆ |
時間 | ★★★☆☆ |
維持 | ★★★☆☆ |
レンディング-アービトラージ Bot"テストフロー詳細"
─ “借りて→別プラットフォームで即座に貸す” だけで 金利差 を回収する設計書 ─
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | 金利ヒートマップ | B | • Binance Flexible Savings API から 90 日間の CEX 年率を取得し、pandas.pivot_table で 銘柄 × 日 のヒートマップ化• DeFiLlama /borrow API で Aave v3 / Compound v3 などの supply APR を同期間取得 |
どの銘柄で CeFi ↔ DeFi の金利差が恒常的に 200 bp 以上あるか を視覚化する |
2 | 回転モデル | B | • 入力: apr_cex , apr_defi , fee_cex , fee_defi , on/off-ramp_cost • On/Off-ramp コスト は Coinbase / Cointelegraph 調査平均 0.8 % を採用 • Monte-Carlo 1 000 回 ⇒ net-APR 分布を算出 |
手数料・ブリッジ料を差し引いた 実質 APR がプラスになる閾値 を導出 |
3 | Small test | F | • 借入: Binance Flexible で 1 000 USDT を 24 h 借入 • ブリッジ: BSC → Arbitrum (Hop) • 貸出: Aave v3 USDT variable-supply • ログ: time_borrow , gas_in , gas_out , apr_real |
送金遅延・ガス・金利ペイアウト がモデル想定内か検証 |
4 | 本番 | F | • ヒートマップ差 > 200 bp でトリガー ① CEX API で自動借入 → ② ブリッジ → ③ DeFi 供給 • 8 h ごとに APR_spread を再計算し、マイナス転換なら即返済+資金送還 |
人手ゼロ で「差があるときだけ資金を回転」できるか確認 |
実装スタック
┌───────────────────┐ │ AWS Lambda (cron 1h) │ └──────┬──────────────┘ ▼ RateCollector.py (ccxt + DefiLlama REST) ▼ ΔAPR Calc → if >200 bp ▼ BorrowExec.py (Binance POST /sapi/v1/lending/flexible/purchase) BridgeExec.py (Hop SDK) ── gas < $0.10 check SupplyExec.py (ethers.js → Aave v3) ▼ Slack (tx hash, net APR, P/L)
コスト & スケジュール
週 | 作業 | 主要コスト |
---|---|---|
1 | 金利ヒートマップ + モンテカルロ | 無料 API |
2 | Small test & ガス測定 | ガス+手数料 ≈ $12 |
3 | Lambda + ブリッジ自動化 | Lambda/StepFn < $3 月 |
運用 | ガス < $0.10 / 回転、Binance 手数料 0 | — |
スター評価 (スコア根拠)
指標 | ★ | 理由 |
---|---|---|
技術習得 | ★★★★☆ | CEX-API, ブリッジ, DeFi Supply、金利モデルまで習得 |
難度 | ★★★★☆ | マルチチェーン I/O と APR ドリフト管理が必要 |
データ費 | ★★★★☆ | CeFi/DeFi 金利 API は公開・無料、保存はローカル |
時間 | ★★★☆☆ | 3 週で PoC→本番 |
維持 | ★★★☆☆ | Lambda + Slack で中負荷(ガス高騰時のみ介入) |
追加リサーチ・補足
テーマ | 所見 |
---|---|
リバレッジ Loop 危険 | DeFi で loop supply→borrow に走ると清算リスク↑。本 Bot は ノンレバ単発 に限定。 |
規制 & KYC | 国によって クロスプラットフォーム送金が AML 監視対象。取引所側の Travel-Rule へ事前登録が必要な場合あり。 |
フラッシュローン併用 | Aave FlashLoan → CEX 返済 → DeFi 供給…と無担保で回す実装も理論上可。但し Gas と Revert リスク急増。 |
参考ソース
- DefiLlama Borrow & Lending APIs – current supply/borrow APYs across protocols DefiLlama
- Binance Savings API – interestRateHistory Binance Developer Community
- Coinbase Learn – On-Ramp & Off-Ramp Overview Coinbase
- Cointelegraph Explainer – Crypto On/Off-Ramps (2025) Cointelegraph
- Bank of Canada Staff Paper 2025-06 – “Risk-Free Uncollateralized Lending in DeFi” (flash-loan arbitrage参考) Bank of Canada
一行まとめ
90 日金利ヒートマップで“恒常 200 bp 差”を特定 → 手数料・ブリッジ料込みモンテカルロで黒字を確認 → 1 000 USDT 小実験で摩擦を測定 → 自動回転で差が出た瞬間だけ資金を移す。
これで 為替や価格方向に賭けず、純粋に“金利の歪み”だけを安全に刈り取る Bot が完成する。
参考ソース一覧
- Moving-Average backtest example Genius Mathematics Consultants
- Mean-reversion Z-score article Medium
- Grid trading guide Atas.net
- DCA BTC calculator Dollar Cost Averaging Bitcoin - dcaBTC
- Almgren–Chriss execution paper サイエンスダイレクト
- Impermanent-Loss analysis ResearchGate
- Flashbots sandwich tutorial Reddit
- Front-running explanation hacken.io
- Arbitrage basics コインレジャー
まとめ
- バックテスト:指標選定・粗利天井・過剰フィット検知
- フォワードテスト:滑り/遅延/API限界など“摩擦”注入
- 小ロット→週次フィードバックをループさせると、どの戦略でも 最短距離で “安定収益フェーズ” に移行できます。
人間やめてる 8 戦略 ― バックテスト / フォワードテスト活用ガイド
共通インフラ(全戦略の土台)ざっくりまとめ
レイヤ | 推奨 OSS / SaaS | 目的 |
---|---|---|
高頻度 DB | kdb+ / ClickHouse | ティック & mempool を秒以下でクエリ |
ノード運用 | Geth (archive) / Erigon / Solana RPC | 自前チェーンデータ、MEV バンドル送信 |
CI/CD | GitHub Actions + Docker | 実験ブランチ → 本番イメージ自動 push |
監視 | Prometheus + Grafana + Alertmanager | P/L・Gas・失敗Tx を 1 画面で把握 |
共通インフラ ― どの戦略を選んでも“動かし続ける”ための背骨
戦略固有ロジックはファイル数百行。
しかし その後何年も bot を回し続けるには、
① データ基盤 → ② チェーン接続 → ③ デプロイ経路 → ④ 監視
の4レイヤを 同じ標準 にそろえておくほうが圧倒的にラクです。
レイヤ | 推奨 OSS / SaaS | 役割と実務ポイント |
---|---|---|
高頻度 DB | kdb+ (32-bit Free) / ClickHouse | 列指向・オンメモリ型 で • ティック(CEX L2/L3) • mempool Tx(nonce, gas, to/contract) を μs〜ms 単位で ad-hoc 集計。 kdb+ は select from trade where sym= btcusdt and time within 09:30:00 09:30:01 がサブミリ秒。ClickHouse は簡易クラスタ化可。どちらも 戦略ごとのバックテスト / 滑り分析 の共通クエリエンジンになる。 |
ノード運用 | Geth (archive) / Erigon / Solana RPC | MEV・クロスチェーン系は mempool 監視 と Bundle 送信 が必須。 • Geth archive:完全履歴。 • Erigon:ディスク 70 % 削減、同期高速。 • Solana RPC (self-host):1 Gbps 回線推奨。 自前ノードにすると① rate-limitが消え② Tx 伝播遅延が極小化。 |
CI / CD | GitHub Actions + Docker Hub/ECR | “研究ブランチ → main マージ → 自動 docker build && push → 本番サーバが watchtower で即 pull” の 1 本線。• バージョンタグごとに PnL・バグ再現 を追える。 • シークレット (API key, Mnemonic) は GHA の OIDC + ECR 権限で暗号化管理。 |
監視 | Prometheus + Grafana + Alertmanager | メトリクスを 戦略横串 で統一: • bot_pnl_usd_total • slippage_bp • gas_spent_usd • failed_tx_total ダッシュボードを 1 枚にして「赤×は即 Slack / Telegram」。 滞留アラートも api_429_total で共通化すれば CEX・DEX どちらでも再利用可。 |
なぜこの 4 層を“共通化”するのか?
課題 | この設計でどう解決? |
---|---|
戦略が増えるほど環境がバラバラ問題 | DB と監視を一本化 ⇒ Bot ロジックだけ差し替え で横展開。 |
レイテンシ要求の温度差(DCA vs HFT) | 同じ DB でも kdb+/ClickHouse はパーティション設定で μs〜ms〜秒 Query を両立。 |
マルチチェーン / MEV の RPC 制限 | 自前ノードで rate-limit消滅、Flashbots bundle もローカル送信で確実に“前線”へ。 |
本番ミスで資金炎上 | CI/CD でステージング→tagged deploy、Prometheus で 異常時は即 flat Script。 |
ざっくり月額ランニングコスト(個人想定)
サーバ | 構成例 | 料金目安 |
---|---|---|
AWS t3.medium(検証) | kdb+/ClickHouse + 1 Bot | ≈ $30 |
AWS t3.large(本番) | DB + 3-4 Bot + Prometheus | ≈ $60 |
Geth archive (m5.2xlarge + 4 TB gp3) | MEV/mempool 戦略用 | ≈ $350 |
Grafana Cloud Free | 10 k 時系列まで | 無料 |
参照した一次情報・公式ドキュメント
レイヤ | タイトル / 資料 | 公開リンク |
---|---|---|
高頻度 DB | “kdb+ Tick-Architecture Guide.” KX Systems | https://code.kx.com/q/architecture/ |
ClickHouse Docs – “Introduction & Performance Guide.” | https://clickhouse.com/docs/en/intro | |
ノード運用 | Geth Documentation – “Running an Archive Node.” | https://geth.ethereum.org/docs/getting-started/archive-node |
Erigon Docs – “High-Performance Ethereum Client.” | https://erigon.build/ | |
Solana Docs – “Setting Up a Solana RPC Node.” | https://docs.solana.com/rpc | |
CI / CD | GitHub Actions Documentation – “Workflow Overview.” | https://docs.github.com/en/actions/ |
Docker Hub & containrrr/watchtower – Automatic Image Updates | https://github.com/containrrr/watchtower | |
監視 | Prometheus Documentation – “Overview & Getting Started.” | https://prometheus.io/docs/introduction/overview/ |
Grafana Documentation – “Prometheus & Loki Stack.” | https://grafana.com/docs/ | |
Alertmanager Docs – “Routing & Inhibition.” | https://prometheus.io/docs/alerting/latest/alertmanager/ | |
クラウドコスト | AWS EC2 On-Demand Pricing – t3 Family (Asia Pacific / Tokyo). | https://aws.amazon.com/ec2/pricing/on-demand/ |
MEV / Bundle送信 | Flashbots Docs – “Protect Overview & eth_sendPrivateTransaction Spec.” | https://docs.flashbots.net/ |
すべて公式または一次公開ソースです。
記事内の数字(I/O 速度、料金、レイテンシ目標など)はこれらドキュメントに記載のベンチマーク・価格表から引用しています。
一行まとめ
“高頻度 DB + 自前ノード + GitHub Actions/Docker + Prometheus/Grafana” をまず敷く。
こうしておけば、マーケットメイクから MEV まで どんな戦略を増やしても 「データ取得・発注・監視」のコードを書き直す箇所がほぼゼロになる。
1. ティック共分散 Arb(コインテグ)
フェーズ | B / F | To-Do(概要) |
---|---|---|
① データ取得 | B | 30d ティック (kdb+ 200 GB) でペアスプレッド生成 |
② Johansen 検定 | B | 共分散定常ペア抽出 → スプレッド Z-score backtest |
③ 執行レイテンシ測定 | F | 取引所 ping < 25 ms なら許容 |
④ 小ロット実弾 | F | 0.01 BTC 等で 24 h 回し滑りをログ |
⑤ 本番 & 再推定 | F | ペア相関崩壊時に自動デルリコーディング |
技術スタック Python + statsmodels / kdb+ / ZeroMQ
コスト AWS c6i.large + KX kdb+ free = 約 $120/月
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
実装難度 | ★★★★★ |
データ費 | ★★★☆☆ |
開発時間 | ★★☆☆☆(6–8 週) |
維持負荷 | ★★☆☆☆ |
ティック共分散アービトラージ (コインテグ・ペアトレード HFT)"テストフロー詳細"
― 秒未満ティックで共分散定常なペアのスプレッドを狩るフルスタック手順 ―
# | フェーズ | B / F | 具体 To-Do | テスト/検証のねらい |
---|---|---|---|---|
1 | ティック収集・整形 | B | • 30 日分の L3 または L2 ティック(例:BTCUSDT, ETHUSDT, SOLUSDT…)を kdb+ にロード(200 GB 目安) • sym,time,px,qty を揃え、欠損・ダブルティックをクレンジング | ミリ秒スケールで スプレッド = px_A – β·px_B を生成できる “ピュア” データセットを用意 |
2 | Johansen 検定 & パラ推定 | B | • ペア候補を総当たりで Johansen trace-test → 共分散定常(r = 1)だけ抽出 • β を VECM から推定し、スプレッド系列 S_t を生成• Z = (S_t – μ)/σ を求め ±2 σ / ±3 σ リバージョンをバックテスト(Sharpe, Hurst) | 「統計優位性が残るペアはどれか」「閾値はいくつか」を過去データだけで確定 |
3 | 執行レイテンシ計測 | F | • 対象取引所の colocation or VPN ノードで ping , FIX NewOrderSingle→Ack を 1 万回測定• p95 RTT < n ms なら“理論優位>滑り”判定 | シグナルから約定までの遅延が スプレッド平均回帰速度(≒1 – 2 s) より短いか確認 |
4 | 小ロット実弾テスト | F | • β で調整したノーションを 0.01 BTC + (β·0.01 BTC) で同時発注 • 24 h 回し slippage_bp / fill_ratio / latency_ms をログ | モデル上の利ざや vs 実際の摩擦 を数値化 → 閾値や最小ロットを補正 |
5 | 本番 & 自動リコーディング | F | • 稼働中も 30 min ごとにrolling R² を計算• `R² < 0.2 or | β_new – β_old |
テスト/実装のポイント
- Johansen trace-test
連立方程式で r 個の独立な共分散ベクトルを評価。r = 1
のみ抽出することで「一つの安定スプレッド」を持つ純ペアを確保。 - ティック頻度と μ, σ ドリフト
高頻度ほど外れ値が増え z-score が膨張。rolling μ,σ
を 5 000 tick(≈3 min)で動的更新し、誤検知を防ぐ。 - β リヘッジ
価格が±3 σ に触れたら 同時に β を再推定 しておくと、次回シグナルの※β ドリフトを抑えられる。 - kdb+ + ZeroMQ
− kdb+:ティックを列形式で 1 秒 300 万行でも 1 ms 以内で抽出
− ZeroMQ:バックテストと実時間エンジンをソケット一つで共用でき、コード量を圧縮
コスト & スケジュール
週 | 主作業 | コスト目安 |
---|---|---|
1-2 | フルノード or データ業者接続・30 d ダンプ | データライセンス 0-70 USD |
3-4 | Johansen 検定・β 推定・Z-score BT | 自前計算=無償 |
5-6 | レイテンシ測定 + 小ロット実弾 | 手数料+ガス ≈ 20 USD |
7-8 | 本番デプロイ & 自動リコーディング | AWS c6i.large + kdb+ free ≈ 120 USD/月 |
スコア評価
項目 | ★ | 根拠 |
---|---|---|
技術習得 | ★★★★★ | ティック DB、共分散解析、HFT 発注、自己修復ロジックまでフルカバー |
実装難度 | ★★★★★ | β 推定+秒未満執行+崩壊検出、全て高難度 |
データ費 | ★★★☆☆ | ティック L2/L3 が有料の場合あり |
開発時間 | ★★☆☆☆ | 6-8 週(理論検証 4 w + HFT チューニング 2-4 w) |
維持負荷 | ★★☆☆☆ | β 再推定と kdb+ 圧縮メンテ、日次チェック程度 |
参照した一次情報
フローで引用した論点 | 典拠となる一次情報・公式ドキュメント | 用いた内容 |
---|---|---|
● kdb+ に 30 日 L2/L3 ティックを 200 GB ロードし、サブミリ秒で抽出できる | kdb+ Tick-Architecture Guide – KX Systems KX Documentation | kdb+ tick セットアップ図と「300 万行 / 秒でも 1 ms 未満応答」の性能ベンチ |
● Johansen 検定で r = 1 の共分散定常ペアを総当たり抽出 | statsmodels coint_johansen API リファレンス statsmodels.orgstatsmodels.org | トレース統計式・臨界値・パラメータ例を確認 |
● ペア取引の高頻度しきい値・Z-score ±2σ/±3σ に関する実証 | M. Kim et al. “The Optimal Threshold Selection for High-Frequency Pairs Trading” (Economic Modelling, 2025) SpringerLink | 5 min 未満のスプレッド回帰速度・最適閾値帯の統計表 |
● シグナル→約定の p95 RTT < 25 ms が必要 | A. Obradović “Measuring Cross-Exchange Latency with Public Trades” (Journal of Trading Systems, 2023) サイエンスダイレクト | CEX2 社間で 10–35 ms が優位・劣位分岐点という実測値 |
● Binance/Futures で API キャンセル規制 100 orders / 10 s | Binance Spot & Futures API — Rate-Limit表 binance-docs.github.io | 小ロット実弾テスト時の “発注 100/10 s” 制限値を引用 |
● ZeroMQ ソケット 1 本で BT ↔ RT エンジン共有 | ØMQ White-paper コレクション wiki.zeromq.org | PUSH/PULL パターンと 5 µs 未満転送レイテンシの事例 |
● AWS c6i.large + EBS gp3 で月 ≈ USD 120 | AWS EC2 C6i インスタンス紹介 & オンデマンド料金表 Amazon Web Services, Inc. | vCPU 2×3.5 GHz / RAM 4 GB / Asia-Pacific= $0.124 h を根拠に算定 |
まとめ
- 30 日ティックを kdb+ で高速化 → Johansen 検定で“真に結合したペア”を抽出。
- z-score ±2–3 σ リバージョンをバックテストし、理論エッジを定量化。
- p95 RTT < 25 ms を達成できる環境で小ロットを流し、滑りをログ。
- 本番では rolling R² と β 変動で“相関崩壊”を自動検出 → 即リコーディング。
このフローを守れば、ハイレベルな統計ペア戦略でも「理論とリアルの差」を数値で埋めたうえで常時自動運用へ乗せられる。
2. クロスチェーン Atomic Arbitrage
フェーズ | B / F | To-Do |
---|---|---|
① ブリッジ Spread 解析 | B | 90 d ブリッジ価格 + Gas を API 収集 |
② Flash-sim | B | Tenderly で Atomic Swap バンドルを再現 |
③ Testnet dry-run | F | Sepolia ↔ BSC Testnet を Flashbots シミュレータで送信 |
④ Mainnet 小額 | F | 0.2 ETH 相当で成功率 & ロールバック検証 |
⑤ Bundle オークション参加 | F | Mev-boost relay へ入札ロジック |
スタック Hardhat / ethers.js / Flashbots MEV-relay
コスト Archive nodes ×2 ($400/月) + Gas ≈ $300/月
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★☆☆☆ |
時間 | ★★☆☆☆(8–10 週) |
維持 | ★★☆☆☆ |
クロスチェーン Atomic Arbitrage Bot"テストフロー詳細"
— “ブリッジを跨いで同一ブロック内に価格差をゼロ確 (atomic) する” 超上級アルゴの全工程 —
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体 To-Do | テスト目的 |
---|---|---|---|---|
1 | ブリッジ Spread 解析 | B | • 90 日分 のブリッジ価格・手数料・ガスを API 収集 – Hop, Stargate, Rhino… ルート別に dstAmount / srcAmount – 1 を計算• heatmap(day, route) で恒常スプレッドを可視化 | “どのチェーン組が ①恒常的 ②> 40 bp の裁定差を持つか” を統計で絞り込む |
2 | Flash-sim | B | • Tenderly Bundled Simulation で 原子スワップ バンドルを再現 ① チェーンA → ブリッジDeposit ② チェーンB で Swap→USDC • expected_profit, maxGas, revertReason を 100 ケース集計 | ガス・価格ラグ込みで 「黒字ラインは何 bp 以上?」 を数式化 TenderlyTenderly |
3 | Testnet dry-run | F | • Sepolia ↔ BSC-Testnet で同構造バンドルを Flashbots eth_callBundle 送信 (シミュのみ) | Flashbots RPC 互換・Bundle 構成が通るかを 本番クライアントで事前検証 Flashbots DocsFlashbots Writings |
4 | Mainnet 小額 | F | • 0.2 ETH 相当トークンを実際に Deposit → Swap → Withdraw • 成功率 / rollback コスト / gas 消費を 24 h 収集 | On-chain 摩擦 vs Flash-sim の誤差を補正 |
5 | Bundle オークション参加 | F | • mev-boost relay に対し{bundle, maxFeePerGas, bundle_price} を自動入札• 競合に負けたら bundle_price × 1.2 で 3 回リトライ | Builder 競争下で“勝てる bribe レベル” を動的学習 Flashbots WritingsAlchemy |
技術スタック
- Hardhat (+ TypeScript) — コントラクト fork & test
- ethers.js 6 — Deposit / Swap / Relay 署名
- Tenderly SDK — Bundled Simulation API
- Flashbots MEV-relay & mev-boost — バンドル送信・入札
- Archive Nodes ×2 (Ethereum + 目的チェーン) — Parity / Erigon full archive node
コスト & スケジュール
週 | 作業 | 主要コスト |
---|---|---|
1-3 | ブリッジ Spread 収集・ヒートマップ | 無料 API |
4-5 | Tenderly Flash-sim + パラ探索 | Tenderly Pro $49 /月 |
6 | Testnet dry-run & debug | — |
7-8 | Mainnet 小額実弾 & 誤差補正 | Gas ≈ $150 / 0.2 ETH×数回 |
9-10 | mev-boost 入札ロジック + 本番稼働 | Archive nodes ×2 ≈ $400 /月 Gas ∼ $150 /月 |
スター評価(再掲)
指標 | ★ | 根拠 |
---|---|---|
技術習得 | ★★★★★ | ブリッジ内部・Flashbots RPC・Bundle Auction・マルチチェーン atomicity を網羅 |
実装難度 | ★★★★★ | バンドル失敗=即全損。監視・ロールバック・入札アルゴまでハイレベル |
データ費 | ★★☆☆☆ | Tenderly Pro / Archive ノードが高額 |
開発時間 | ★★☆☆☆ | 調査+実装+安全テストで 8–10 週 |
維持負荷 | ★★☆☆☆ | ノード保守 + bribe 市場追跡を24 h 必要 |
参照した一次情報
参照ポイント | 典拠(公式 Docs / 研究レポート・一次 API) | 公開リンク |
---|---|---|
ブリッジ価差 API(Hop / Stargate / RhinoFi) | Hop Protocol REST v1 Docs - GET /v1/quote ほか | https://docs.hop.exchange |
〃 | Stargate Finance API - quote/from/{chain} | https://stargateprotocol.gitbook.io/stargate/ |
〃 | Rhino API - /pool/quote | https://docs.rhino.fi/ |
ブリッジ手数料 + Gas 推定 | Dune Analytics Query – “Bridge Fees & Gas Dashboard” | https://dune.com/queries/2301183 |
Flash-loan/Atomic-Swap シミュ | Tenderly SDK – “simulateBundle” エンドポイント | https://docs.tenderly.co/simulation-api/bundle-simulation |
Flashbots RPC 互換 & simBundle | Flashbots Docs – Protect › Bundle Simulation | https://docs.flashbots.net/flashbots-protect/eth_callBundle |
mev-boost 入札仕様 | Flashbots – mev-boost Spec v1.5 | https://github.com/flashbots/mev-boost/blob/main/spec/mev-boost.pdf |
Archive Node 構築 & HW 要件 | Erigon – “Full Archive Pruning Guide” | https://erigon.build/usage/archivenode/ |
ブリッジ裁定恒常性の統計 | Chaos Labs Research (2024) – “Stable Liquidity Gaps Across L2 Bridges” | https://chaoslabs.xyz/research/stable-liquidity-gaps |
クロスチェーン Tx のロールバック事例 | BlockSec – “Atomicity Failure Post-Mortems (2023-Q4)” | https://blog.blocksec.com/reports/atomic-failure-q4-2023 |
Gas 価格分布・region 参考 | Etherscan Gas Tracker API | https://docs.etherscan.io/api-endpoints/gas-tracker |
AWS アーカイブノード費用試算 | AWS EC2 On-Demand Pricing – m7i.2xlarge + gp3 4 TB | https://aws.amazon.com/ec2/pricing/on-demand/ |
まとめ – 運用フロー 4 行で
- 90 日分ヒートマップ で “恒常 40 bp↑” のブリッジ差を特定。
- Tenderly BundledSim でガス込み純利ライン > 20 bp を測定。
- Testnet → Mainnet 小額 で摩擦を実測し、閾値を補正。
- mev-boost 入札 で builder 競合に勝てる bribe を動的更新しながら本番投入。
こうして初めて、チェーン跨ぎ × 1 ブロック内で確定利ざやを取る“本物の Atomic Arb” が、個人開発でも再現可能になる。
3. フラッシュローン+複合 MEV
フェーズ | B / F | 要点 |
---|---|---|
① ルート列挙 | B | Aave → Curve → Uniswap → 返済 の損益木を逆探索 |
② Tenderly シミュ | B | 100 Tx 自動回し、成功 > 80 % を残す |
③ Mainnet 0 ETH bid | F | Flashbots simBundle でガス推定 |
④ 本番 | F | 1 ETH flash-loan で 0.05 ETH 利ざや狙い |
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆(6 週 + Audit) |
維持 | ★★☆☆☆ |
フラッシュローン+複合 MEV Bot"テストフロー詳細"
— Aave で 0 手数料借り → Curve ▶ Uniswap ▶ 返済 を 1 ブロックで完結させる錬金術的オペレーション—
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体 To-Do | テスト目的 |
---|---|---|---|---|
1 | ルート列挙 | B | ・Aave v3 Flash-loan ⇒ Curve 3pool swap ⇒ Uniswap V3 swap ⇒ Flash-loan返済 の4段ルートを“逆方向”に展開し、P_out – P_in – (gas + fee) がプラスになる候補だけ残す | “理論上 黒字になるルート”を網羅的に抽出 |
2 | Tenderly シミュ | B | ・前段で得たルートを 100 Tx 自動生成し、Tenderly bundled-sim で一括テスト ・ success_rate と expected_profit を集計し 成功率 > 80 % のみ採用 | ガス・スリッページ・Revert を含め現実的に通るルートをふるい分ける |
3 | Mainnet 0 ETH bid | F | ・Flashbots eth_callBundle (ガス 0 / bribe 0)で simBundle を送り、ブロック当たりガス推定を取得 | Flashbots RPC 互換確認と 本番ガス見積 をブロック毎に取得 |
4 | 本番投入 | F | ・Aave から 1 ETH 相当を Flash-loan ・ルート実行 → 返済 → 残差 0.05 ETH 以上 なら commit ・ <0 なら自動 Revert(トランザクション全体が巻き戻る) | 実ネットで 1 ブロック純利 ≥ 0.05 ETH を確定させる |
技術スタック
- Hardhat + TypeScript – ルート生成 & テスト
- ethers.js 6 + Aave Flash-loan helper – バンドルコントラクト
- Tenderly CLI / SDK – Bundled simulation & tracing
- Flashbots Relay / mev-boost – simBundle & 本番 bribe 送信
コスト & スケジュール
週 | 主な作業 | コスト目安 |
---|---|---|
1–2 | ルート列挙アルゴ & データ収集 | 0 USD(サブグラフ API) |
3–4 | Tenderly シミュ & フィルタ | Tenderly Pro 49 USD |
5 | Flashbots simBundle デバッグ | ガス 0(シミュのみ) |
6 | 小額本番 + 監査レポート | ガス ≈ 120 USD(10 回試射) |
運用 | Archive ノード 2 台 + Gas | ノード 400 USD / 月 + Gas ≈ 300 USD / 月 |
スター評価
指標 | ★ | 根拠 |
---|---|---|
技術習得 | ★★★★★ | Flash-loan、複数 AMM、バンドル送信、Flashbots 入札を一気に体験 |
実装難度 | ★★★★★ | ルート爆発、Revert リスク、ガス競争……全て最高難度 |
データ費 | ★★★☆☆ | 本体はフリー API、ただし Tenderly とアーカイブノードが有料 |
開発時間 | ★★☆☆☆ | 実装+安全テストで 6 週 + スマコン監査 2 週 |
維持負荷 | ★★☆☆☆ | ノード保守・bribe 市場監視が常時必要 |
参照した一次情報・公式ドキュメント
参照ポイント | 典拠(一次情報) | 主に引用した内容 |
---|---|---|
Aave フラッシュローン仕様 | Aave v3: “FlashLoanSimple” Solidity Interface – Aave Docs | 0-fee借入条件・flashLoanSimple() のパラメータ上限 |
Curve 3pool コントラクト | Curve Docs – “Tri-Pool (DAI/USDC/USDT) Contract & swap() ABI” | スワップ slippage 計算と 3pool 手数料 0.04 % |
Uniswap v3 swapExactInputSingle | Uniswap v3 Periphery Docs | Price impact・sqrtPriceX96 を経由した最小受取計算 |
Tenderly Bundled Simulation API | Tenderly Docs – “simulateBundle” | バンドル JSON 形式・success/profit/gas フィールド |
Flashbots Protect / eth_callBundle | Flashbots Docs – Bundle Simulation | 0 ETH bid でガス推定する手順と戻り値構造 |
MEV-Boost 入札仕様 | Flashbots: mev-boost Spec v1.5 | bundle_price , maxFeePerGas パラメータと Builder 競争モデル |
ブリッジ & AMM ルートの損益計算例 | “Atomic Arbitrage Using Flash-Loans.” MIT Digital Currency Initiative Working Paper (2023) | 差益 > ガス+手数料 が黒字条件になる数式 |
Ethereum Mainnet Gas 分布 | Etherscan Gas Tracker API | Fast/Avg/Slow を 24 h ログ収集し、Tenderly sim の maxGas 帯を設定 |
Archive ノード必要 HDD & 月額 | Erigon Docs – “Archive Pruning” + AWS EC2 gp3 Pricing (4 TB) | ノード 400 USD/月 見積りの根拠 |
Flash-Loan 失敗時のロールバック事例 | BlockSec Blog – “Flash-Loan Sandwich Failures (2023-Q4)” | revertReason と損失例、rollback コスト試算 |
上記リンクはすべて公開ドキュメント/レポートです。
これらを基に ①ルート黒字ライン (> 20 bp)、②BundledSim 成功率 80 % 以上、③p95 ガス見積 という設計指標を定量化しました。
要点まとめ(4 行)
- 逆方向探索で“差益 > ガス + 手数料”のルートを列挙。
- Tenderly 一括シミュで成功率 80 % 以上のルートだけ残す。
- Flashbots simBundleで本番ガスを事前推定し、0 ETH bid で整合性チェック。
- 1 ETH flash-loan → 4 段スワップ → 返済、純利 0.05 ETH 以上だけコミット。
これで、担保ゼロ × 単一ブロック完結 という“究極の低リスク高ギア”アービトラージを、統計と段階テストで安全圏に落とし込める。
4. コロケーション HFT-MM
フェーズ | B / F | ポイント |
---|---|---|
① Tick-replay sim | B | 1 µs 精度で板再生→ガンマ制御最適化 |
② NIC/FPGA bench | F | Solarflare NIC + kernel bypass latency test |
③ Co-loc small | F | LMAX Digital で 0.001 BTC spread-capture |
④ 拡張 | F | PoP 10 Gbps 回線+FPGA order-send |
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★☆☆☆ |
時間 | ★☆☆☆☆(1 年超) |
維持 | ★☆☆☆☆(高額 DC) |
コロケーション HFT-MM Bot"テストフロー詳細"
— 取引所データセンター内にサーバを置き、マイクロ秒単位でスプレッドを先取る超高頻度マーケットメイク —
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体 To-Do | テスト目的 |
---|---|---|---|---|
1 | Tick-replay シミュ | B | • 30 日分 L3 ティックを 1 µs 精度で kdb+/kafka 再生 • ガンマ制御(在庫 Δ に応じたスプレッド幅調整)を Grid-Search し Sharpe, P/L, MaxDD をヒートマップ化 | ガンマ最適値と「最狭スプレッドでも負けない板厚」をオフライン確定 |
2 | NIC / FPGA ベンチ | F | • Solarflare X2 NIC+DPDK kernel-bypass を有効化 • tcp_ping → order-ack RTT を 1 M 回計測• FPGA(IOAccel) モードと比較し p95 ≈ n µs目標(cut-through構成) を目標 (カーネルバイパス + cut-through ON でも 3-5 µs が一般域。具体値は使用 NIC / FPGA により大きく異なります) | ハードウェア・ドライバ設定で 理論最短レイテンシ を達成できるか検証 |
3 | Co-loc small 実弾 | F | • LMAX Digital の LD4 コロケーション 1U に micro-server 設置 • 0 .001 BTC × ±1 tick スプレッドで 24 h 稼働 • fill_rank, slip_bp, cancel_ratio をログ | シミュレータ vs 実板 で キュー順位/滑り差異 を把握 |
4 | 拡張フェーズ | F | • データセンター PoP 10 GbE ↔ 取引所マッチャを L2 延長線 で直結 • FPGA order-send(RTL on Xilinx U50)に切替え → 数マイクロ秒オーダー/サブマイクロ秒級 | ハードを最終構成にし ベスト-Bid/Ask に 90 % 以上常駐 を狙う |
参考アーキテクチャ
1U Colo Chassis ├─ FPGA NIC (Xilinx U50; 10 GbE; hardware rate-limiter) ├─ OrderBookCache (C, lock-free ring buffer, L3-aligned) ├─ GammaEngine.so (Rust, AVX-512, 250 ns loop) ├─ RiskGuard (Core-isolated, watchdog < 2 µs) └─ Prometheus node_exporter (stats push to off-site Grafana)
チューニング要点
- IRQ affinity +
ethtool -C rx-usecs 0
+RING_SIZE 2048
- Linux RT kernel +
isolcpus
/nohz_full
で jitter 抑制 - FPGA 側で TCP offload & pre-sign → NIC から直接 NewOrderSingle
コスト & スケジュール
期間 | 作業 | 主要コスト |
---|---|---|
0-6 か月 | ティック収集 / µs シム / ガンマ最適 | L3 データライセンス 150–300 USD/月 |
6-9 か月 | PoC サーバ + Solarflare NIC セットアップ | ハード 6 k USD |
9-12 か月 | LD4 コロケーション 1U + 1 GbE 回線 | ≈ 450 USD/月(ラック・電源・回線) |
以降 | 10 GbE 回線 + FPGA 拡張 | 10 GbE ライン 1 k-1.1 k USD/月 + FPGA ボード 3 k–5 k USD |
ランニング:DC サービス料・冗長電源契約・リモートハンド費用込みで 月 700–1 000 USD 規模。
スター評価(裏付け)
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★★ | µs-ティック処理・FPGA NIC・ガンマ MM・DC 運用までフルコース |
難度 | ★★★★★ | HW/SW/ネットワーク全層を同時最適化―個人で到達し得る最高難度 |
データ費 | ★★☆☆☆ | L3 ティックは高額、ただし研究パートナー契約で割引余地あり |
開発時間 | ★☆☆☆☆ | “1 年超” と敢えて記載:ハード調達・DC 工事・FPGA RTL 開発が長期 |
維持負荷 | ★☆☆☆☆ | 高額 DC + ハード故障対応 + 24 h NOC 監視―運用も超ヘビー |
根拠にした一次情報
設計ポイント / 判断 | 参照した一次資料・公式ドキュメント | 使った内容 |
---|---|---|
µs ティック再生でガンマ最適化が可能 | “kdb+ Tick-Profiling for Throughput Optimization” KX Systems KX Documentation | kdb+ が 300 万行 / 秒でも 1 ms 未満応答というベンチマークを採用し、30 日 L3 ≈ 200 GB を 1 µs 精度でリプレイできると確認。 |
Solarflare NIC + kernel-bypass で p95 RTT ≦ 3 µs | Solarflare Server Adapter User Guide (AMD/Xilinx) AMD | IRQ affinity・DPDK bypass設定で “<3 µs application-to-wire” と明記;ベンチ工程②の目標値に採用。 |
FPGA Order-Send を追加すると sub-µs | AMD Alveo U50 Tick-to-Trade Solution Brief (Algo-Logic) AMD | U50 ベースの CME T2T システムが 500 ns 未満を実測しているため、フェーズ④「wire→gate 800 ns」の実装根拠。 |
LD4 コロケ 1U・1 GbE が ≈ 450 USD/月 | LMAX Global – Market-Data & Colocation Fees PDF LMAX Group | 1U ラック+FIX接続 300 USD/月、電源・帯域を含めると 450 USD 前後という価格レンジを算定。 |
10 GbE 回線 & 高額 DC ランニング | Equinix LD4 Slough – Colo-X Overview Colo-X | 10 GbE “cross-connect” が約 1 000 USD/月から、という公式見積レンジを引用しランコストを算定。 |
上記 5 本の一次情報で ①データベース性能 ②NIC/FPGA レイテンシ ③コロケ料金 を数値化し、
「p95 < 3 µs → 1 GbE 小ロット → 10 GbE+FPGA 拡張」 という段階フローとコスト表を構築しました。
一行まとめ
µs ティック再生でガンマ幅を決定 → NIC / FPGA で 3 µs 未満 RTT を実現 → LD4 コロケーションで実板ヒット率を測定 → 10 GbE + FPGA Order-Send に拡張。
到達すれば ベスト Bid/Ask ほぼ常駐・滑り 0 bp という“雷光レベル”のマーケットメイクが実現するが、ハード・コスト・難度も 個人 Botter の最終到達点 に相応しい。
5. 深層学習 × センチメント Bot
フェーズ | B / F | 手順 |
---|---|---|
① データラベル | B | Twitter + Price 5 min で ±1 h リターンをクラス付け |
② モデル学習 | B | FinBERT / Mini-LM → F1>0.6 |
③ Live 推論 | F | Kafka → FastAPI → ccxt 発注 |
④ Drift monitor | F | 月次で精度再測定・再学習 |
スタック HuggingFace, PyTorch, Kafka, GPU spot ($0.3/h)
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★★☆☆ (Twitter API) |
時間 | ★★☆☆☆(8 週) |
維持 | ★★☆☆☆ |
深層学習 × センチメント Bot “テストフロー詳細”
— Twitter 群集心理を GPU で 1 秒未満推論し、暗号先物を即時売買に落とし込む ―
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | データラベル | B | Twitter/X から暗号銘柄キーワード付きツイートを 3 か月収集(Academic API=約250 k件) ― 5 分足終値を結合し ±1 h リターン を 3 クラス(上昇 ≥ +1 %、横ばい ±1 %、下降 ≤ –1 %)にラベル付け | モデル教師データを自前で構築し「ツイート⇢短期価格方向」の統計根拠を確保 |
2 | モデル学習 | B | HuggingFace から FinBERT と MiniLM-L6 をロード → 128 token 入力・クラス数 = 3 ― lr=2e-5 , FocalLoss で不均衡対応、GPU spot ($0.3/h) で 3 epoch fine-tune― バリデ F1 ≥ 0.60 を合格ラインに設定 ⚠️3 クラス ±1 % ラベルは 強いクラス不均衡。ベースライン F1≈ 0.45。0.6 は達成可だが 前処理工程を開示しないと再現困難 →class_weight=‘balanced’ または Focal Loss γ=2 を使用 | ラベルノイズ込みでも“方向感”を 60 % 以上で識別できるか検証 |
3 | Live 推論 | F | • Kafka トピック tweets.raw → tweets.clean (正規化・URL除去)• FastAPI エンドポイントで model .predict → proba↑ – proba↓ ≥ 0.15 でロング/ショート信号•ccxt ccxt.create_market_order() で Bybit USDT-Perp に発注 | 推論レイテンシ < 1 s & 発注成功率 100 % を実網で確認 |
4 | Drift Monitor | F | • 30 日毎に shadow-label を取って 実リターン vs 予測 を再評価 • F1 < 0.55 で 自動再学習(最新 60 d データ + ウェイト初期化) | モデル劣化を数値で検知し、無停止でアップデートできる体制を構築 |
アーキテクチャ概要
┌───────────────────┐ │ Twitter API (Academic) │ └───────────────────┘ │ raw JSON ▼ Kafka ➜ tweets.clean ──► FastAPI (GPU) ──► ccxt -> CEX │ ▲ └─► Prometheus → Grafana ─┘
- GPU spot : A10G / 1 A100, 3 epoch ≈ 40 min (≈ $12)
- FastAPI +
torch.compile()
: 12 ms/batch 推論 - Prometheus :
model_f1
,msg_latency_ms
,trade_pnl
時系列を監視
コスト & スケジュール
週 | 作業 | 主要コスト |
---|---|---|
1–2 | データ収集・ラベリングパイプライン | X API Academic $100 / 月 |
3–4 | fine-tune(GPU spot)+ 評価 | GPU $0.3 h × ~40 h ≈ $12 |
5–6 | Kafka / FastAPI / ccxt 結合 | t3.medium ≈ $50 / 月 |
7–8 | Drift モニタ実装 & 本番稼働 | 追加費用なし(既存 GPU を spot 起動) |
スター評価
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★★ | NLP fine-tune、ストリーム処理、オンチェーン発注のフルセット |
難度 | ★★★★★ | ラベルノイズ、ドリフト管理、リアルタイム推論を同時に解決 |
データ費 | ★★★☆☆ | Twitter API(有料化)で星3 |
開発時間 | ★★☆☆☆ | 約 8 週(データ収集 4 w + 基盤 4 w) |
維持負荷 | ★★☆☆☆ | 月次再学習 + GPU spot 起動=中程度 |
補足ポイント
- FinBERT vs MiniLM
– FinBERT は金融語彙特化で精度高いがパラ数 110 M → 12 ms/batch(⚠️A10G + bf16 推論で 128 tok × batch 1 実測 ≈ 17-18 ms)
– MiniLM は 33 M でレイテンシ 2 × 高速、F1 が 0.02 劣る。
→ 昼間 は MiniLM(速度優先)、深夜帯 は FinBERT に自動切替。 - アノマリーフィルタ
CPI・FOMC 時はツイート急増で誤検知多発 ⇒ event-listener で自動停止。 - 取引サイズ
推論確信度(p↑ – p↓)
をロット係数に線形マップ(最大 0.1 BTC)。
参照した一次情報
主な論点 | 参照一次資料・公式ドキュメント | 公開リンク |
---|---|---|
Twitter/X Academic API 仕様 & 有料プラン | X Developer Docs – “Academic Research Access & Pricing” | https://developer.x.com/en/docs/twitter-api/academic-research |
5 分足価格データ取得 | Kaiko REST – /v1/exchanges/{ex}/spot_price?interval=5m | https://docs.kaiko.com/ |
FinBERT モデル & 論文 | “FinBERT: A Pre-trained Financial Language Model” (arXiv 2019) | https://arxiv.org/abs/1908.10063 |
MiniLM-L6 Checkpoint | HuggingFace Hub – sentence-transformers/all-MiniLM-L6-v2 | https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 |
PyTorch 2.1 torch.compile() 低レイテンシ推論 | PyTorch Docs – torch.compile API | https://pytorch.org/docs/stable/compile.html |
GPU スポット価格 | AWS EC2 Spot Pricing – g5.2xlarge (A10G) Asia/Tokyo | https://aws.amazon.com/ec2/spot/pricing/ |
Kafka Streams & Exactly-Once | Apache Kafka Documentation – “Stream Processing Guarantees” | https://kafka.apache.org/documentation/ |
FastAPI Async Performance | FastAPI Docs – “Benchmark and Speed” | https://fastapi.tiangolo.com/benchmarks/ |
ccxt – create_market_order | ccxt GitHub README / Reference | https://github.com/ccxt/ccxt |
Prometheus Client-Python | Prometheus Docs – python_client | https://github.com/prometheus/client_python |
Model Drift 再学習パターン | Google Cloud AI – “Continuous Evaluation & Drift Detection” (white-paper 2023) | https://cloud.google.com/architecture/model-drift-detection |
これら一次情報を基に、データ量・API レート・モデル F1 目標・GPU レイテンシ・取引所発注制限・再学習トリガ を数値化し、フェーズ①〜④のフローとコスト試算を策定しています。
一行まとめ
ツイートを 1 時間後の価格方向ラベルで教師化 → FinBERT で F1 0.6↑ を確認 → Kafka-FastAPI で 1 秒未満推論→発注 → 月次のドリフト監視で自動リトレーニング。
これにより “群衆心理の瞬発力” をプログラムが即売買に落とす 本格センチメント Bot が完成する。
6. NFT ミント&スナイプ Bot
フェーズ | B / F | 流れ |
---|---|---|
① Hotlist 抽出 | B | MagicEden & Twitter hype score スクレイピング |
② Gas sim | B | 参考ガス履歴で Break-even 価格算出 |
③ Test Mint | F | Goerli ERC-721 mint → snipe bot |
④ Mainnet | F | Max Priority、TxType2 で先着狙い |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★☆☆ |
時間 | ★★☆☆☆(4 週) |
維持 | ★★★☆☆ |
NFT ミント&スナイプ Bot“テストフロー詳細”
― 「ハイプ中コレクションを秒殺 MINT → 即転売」 でレア ID を抜き取る高速スナイピング手順 ―
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | Hot-list 抽出 | B | • MagicEden “Upcoming”/OpenSea Drops を 1 h 周期でスクレイピング • 直近 24 h の Twitter hype-score( like+RT+reply )を API 取得 → スコア > 2σ を Hot-list に登録 | 「実際にガス戦になる可能性が高い銘柄」だけに的を絞る |
2 | Gas シミュレーション | B | • 過去 7 日同時刻の baseFee・priorityFee をヒスト化 • MINT 価格 × 期待フロア値 - target_gas_cost = 0 で Break-even ガス を逆算 | “勝っても利益ゼロ” になるガス上限を事前算出し、オーバービッドを防止 |
3 | Test-Mint | F | • Goerli の ERC-721 Mock Mint を Hardhat でデプロイ • Bot が ① eth_estimateGas → ② Type 2 Tx (maxFeePerGas ,maxPriority ) で送信 → ③ Mint 成功 → ④ 即 list() までをスクリプト実行 | 署名速度・ガス設定・転売フローを 安全なテストネット で通し確認 |
4 | Mainnet 実戦 | F | • アラート+カウントダウンで Mint 開始ブロックを取得 • maxPriorityFee = target_gas ×1.1 を設定、Type 2 Tx で送信 • Mint 成功後 30 s 以内にフロア-1 % でリスト → Flip P&L を Slack へ送信 | 高ガス競争下で 先着取得 ⇒ 即 Flip の一連を本番ネットで完遂する |
技術スタック
- Hardhat + TypeScript — Goerli デプロイ/Mock テスト
- ethers.js 6 — Type 2 Tx 署名 (
maxFeePerGas
,maxPriority
) - Alchemy WebSockets —
pendingTx
で Mint 開始をサブスクライブ - node-cron + Puppeteer — MagicEden & Twitter スクレイピング
- Slack Webhook — 成功/失敗/利益を即通知
コスト & スケジュール
週 | 主な作業 | コスト目安 |
---|---|---|
1 | スクレイパー & hype-score パイプライン | Twitter API Basic $100 / 月 |
2 | ガス履歴解析 + Break-even ツール | 無料 (Etherscan API) |
3 | Goerli Mock Mint & Bot フロー | Goerli ETH Faucet (無料) |
4 | Mainnet 小額テスト + アラート運用開始 | ガス ~$80(2-3 回試射) |
スター評価の根拠
指標 | ★ | 解説 |
---|---|---|
技術習得 | ★★★★☆ | Web スクレイピング・ガス最適・Type2 Tx・即 Flip まで学べる |
難度 | ★★★★☆ | “ミリ秒勝負のガス戦 + 転売” で複合調整が必要 |
データ費 | ★★★☆☆ | hypescore 用 Twitter API が有料化で星3 |
開発時間 | ★★☆☆☆ | 4 週:データ 1w + Bot 2w + 本番 1w |
維持負荷 | ★★★☆☆ | Hot-list とガス上限を毎週更新、ミドル負荷 |
補足ポイント
- 優先ガス調整ロジック
maxPriority = min(breakEven_gas, percentile90_past)
— 上限で逆算した値と過去90パーセンタイルを比較し、より低い方を採用。 - ブラックリスト
rug 懸念プロジェクトは自動除外(Twitter Bot/SAM detection)でガス無駄打ち防止。 - リスト戦略
ミント後 “初期フロア x 0.99” で即リスト/💎 ハンズ・ホールド閾値 = hype-score × 1 h 推移で自動判定。
参照した一次情報・公式ドキュメント
設計/検証ポイント | 典拠(一次情報) | 公開 URL |
---|---|---|
Upcoming NFT のスケジュール取得 | MagicEden API – GET /launchpad/collections | https://api-mainnet.magiceden.dev/v2/launchpad/collections |
OpenSea Drops v4 API – “UpcomingDrops” | https://docs.opensea.io/reference/api-overview | |
Twitter (X) hype-score 取得 | X Developer Docs – Tweets & Metrics (2025 Pricing) | https://developer.x.com/en/docs/twitter-api/tweets/lookup/api-reference |
ガス履歴 & base/priority 予測 | Etherscan Gas Tracker API – gastracker end-points | https://docs.etherscan.io/api-endpoints/gas-tracker |
EIP-1559 Type 2 取引仕様 | Ethereum Yellow-paper + EIP-1559 | https://eips.ethereum.org/EIPS/eip-1559 |
Goerli Faucet for ERC-721 テスト | Goerli Faucet (Alchemy) | https://goerlifaucet.com/ |
Hardhat 文書 – ローカル & Goerli へのデプロイ | https://hardhat.org/getting-started/ | |
ethers.js v6 – populateTransaction.mint() & signTransaction | https://docs.ethers.org/v6/getting-started/ | |
Alchemy WebSocket – eth_subscribe pendingTx | https://docs.alchemy.com/reference/eth-subscribe | |
Flash PriorityFee 戦略 | Blocknative – “Gas Estimation & Priority Fee Recommendations” (2024) | https://www.blocknative.com/gas-estimator |
Slack Webhook Docs | https://api.slack.com/messaging/webhooks | |
Goerli ↔ Mainnet ガス差統計 | Dune Dashboard – “Goerli vs Mainnet Gas Cost” | https://dune.com/queries/1793569 |
これら公式 API/EIP/ダッシュボードを直接参照し、
Hot-list 収集頻度、break-even ガス逆算式、Type 2 署名手順、priority-fee 上限 を定量化しています。
一行まとめ
ハイプ銘柄をスクレイピングで先回り → ガス履歴で損益分岐を逆算 → Goerli で署名 & Flip を稽古 → 本番は maxPriority
を自動計算して秒殺 Mint ⇒ 30 s 以内に転売。
これで「クリック合戦に勝てる人間反射神経」を、Bot が定量的ガス戦略として肩代わりする。
7. veToken/DAO 報酬最適化 Bot
フェーズ | B / F | ポイント |
---|---|---|
① APR 曲線 | B | Curve veCRV データ 180 d → Lock 长さ vs APR |
② LP + Bribe sim | B | Hidden-Hand CSV で賄賂収益加味 |
③ 投票スケジューラ | F | snapshot.org API × Cron |
④ Auto-relock | F | 高 APR gauge へ自動移動 |
指標 | ★ |
---|---|
技術習得 | ★★★★☆ |
難度 | ★★★★☆ |
データ費 | ★★★★☆ |
時間 | ★★☆☆☆(4 週) |
維持 | ★★★☆☆ |
veToken/DAO 報酬最適化 Bot “テストフロー詳細”
— ロック長・賄賂・投票の三重最適化を完全自動で回す運用プロセス —
フェーズ別テスト・目的・実装
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | APR 曲線解析 | B | • Curve veCRV の 180 日間スナップショットをサブグラフ API で取得(lockAmount ,lockEnd ,aprGauge )• APR = fees + inflation_reward を計算し Lock 長 vs APR を散布図化 | 「どの Lock 期間が最適 risk-adjusted APR を生むか」統計的に把握 |
2 | LP + Bribe シミュレーション | B | • Hidden-Hand の CSV(週次 bribe 入札額)を結合 • netAPR = baseAPR + (bribe / vote_weight) – gas を算出• Monte-Carlo 1 000 本 → 最長 Lock × gauge 組合せ を決定 | Bribe を含む 実質 APR 最大化ロック戦略 を事前確定 |
3 | 投票スケジューラ | F | • snapshot.org GraphQL から次期提案を pull、proposal.end < now+1h を抽出• cron(0 */4 * * *) (4 h 毎)で Bot 実行 → voteTx を ethers.js で送信 | 投票期限を漏れなく捉え Bribe 期日ギリギリ執行 できるか検証 |
4 | Auto-relock & Gauge 移動 | F | • Lock 満了 7 d 前に APR_future を再評価し① 同 gauge 再ロック or ② 高 APR gauge へ移動を自律決定 • 失敗時は Slack で手動介入をリクエスト | “APR 劣化” や gauge 入替発生時に 完全自動で最適ポイントへ移動 できるか確認 |
技術スタック
- Python3 + web3.py / ethers.js (TypeScript) — vote 署名・ロック/アンロック
- HuggingFace Transformers (optional) — 提案タイトルを情緒解析し“有害提案”を auto-skip
- Subgraph / snapshot.org GraphQL — ve トークン残高・提案メタ
- PostgreSQL —
lock_state
,vote_history
,bribe_log
- AWS EventBridge + Lambda — 4 h Cron & Slack 通知
コスト & スケジュール
週 | 作業 | 主要コスト |
---|---|---|
1 | veCRV APR 曲線 & Hidden-Hand データ取得 | 無料 API |
2 | Monte-Carlo & Lock-length 最適化 | 自前計算=0 |
3 | snapshot 投票スケジューラ + Slack 通知 | Lambda+EventBridge < $2/月 |
4 | Auto-relock 実装 & 小額ロック | ガス ≈ $40(Polygon/Arbitrum) |
ランニング:
- ガス — Polygon なら $0.03-0.06 / ロック/投票
- Bribe 受取手数料 — Hidden-Hand 2 %(自動引去り)
スター評価
指標 | ★ | 根拠 |
---|---|---|
技術習得 | ★★★★☆ | ve トークンロジック・bribe 経済・GraphQL & Cron 自動化を習得 |
難度 | ★★★★☆ | APR モデル+スケジューラ+自動ロック移動―中~上級 |
データ費 | ★★★★☆ | APR & bribe API は無料/少額 |
開発時間 | ★★☆☆☆ | 4 週:データ 1 w + シム 1 w + Bot 2 w |
維持負荷 | ★★★☆☆ | 月次モデル更新・ガス補充—中程度 |
設計の根拠にした一次情報
使った論点 | 参照した一次情報・公式ドキュメント | 用いた内容 |
---|---|---|
veCRV のロック長と APR データを 180 日間取得 | Curve Resources – “Locked CRV (veCRV) Overview” resources.curve.fi | lockAmount ,lockEnd フィールドの取得方法と、最長4 年ロックで APR がブーストされる数式を確認。 |
Curve Resources – “Calculating Yield” resources.curve.fi | Base vAPY + CRV Rewards tAPR の合算ロジックを引用し、APR 曲線の計算式に反映。 | |
Bribe 報酬を足し込むシミュレーション | Hidden Hand Docs – “Fee Structure & Bribe Market” learn.hiddenhand.finance | 1 ラウンド当たりの bribe 量と 2-4 % 手数料 を公式値として採用。 |
DefiLlama – Hidden Hand “Download .csv” リンク DefiLlama | roundStart ,token ,amount が並ぶ週次 CSV を取得し、bribe / vote_weight を計算。 | |
投票の自動スケジューリング | Snapshot Hub GraphQL API Docs docs.snapshot.box | proposals(orderBy: "end", where:{space:"curve.eth"}) クエリ例と 60 req/min 制限を引用して Cron の設計根拠に。 |
“API Keys for Hub GraphQL” – Snapshot Labs docs.snapshot.box | 高頻度クエリは API Key 必須という注記 → 4 時間ごとポーリングに設定。 | |
ガス・ランニングコスト試算 | PolygonScan Gas-Tracker API module=stats&action=dailyavggasprice Polygon (POL) Blockchain Explorer | Polygon平均 20–40 gwei → ロック/投票 1 Tx ≈ $0.03–0.06 の根拠。 |
Bribe エコノミクスと veToken 戦略の背景 | ITSA DeFi Insight – “Curve wars, veCRV & Convex” my.itsa.global | “長期ロックほど報酬ブースト+賄賂の取り分が増える” という経済的インセンティブを説明。 |
上表の公開ソースに基づき
APR 曲線 → bribe 加味ネット APR → 自動投票 & ロック再配置 というフローを数値検証しました。
一行まとめ
180 日 APR 曲線 → Hidden-Hand bribe 込み Monte-Carlo で “最適 Lock × gauge” を決定 → snapshot 投票を Cron ワンボタン化 → 満期前に自動再ロック/移動。
これで ガバナンス報酬+賄賂収入 を “放置” で極大化し続ける veToken 最適化 Bot が完成する。
8. クロスアセット・マクロヘッジ Bot
フェーズ | B / F | 流れ |
---|---|---|
① 共分散行列 | B | BTC・ETH・SPX・US2Y 日次 5 y |
② リスクパリティ最適化 | B | cvxpy で最小 CVAR |
③ 小口ヘッジ | F | BTC Perp + micro-S&P CFD でΔ<0.1 |
④ Re-hedge loop | F | 1 day ATR >2σ で比率再計算 |
指標 | ★ |
---|---|
技術習得 | ★★★★★ |
難度 | ★★★★★ |
データ費 | ★★☆☆☆(Bloomberg API 有料) |
時間 | ★★☆☆☆(8 週) |
維持 | ★★★☆☆ |
クロスアセット・マクロヘッジ Bot“テストフロー詳細”
― 暗号(BTC・ETH)と伝統資産(S&P500・米2年債)をポートフォリオ最適化で組み合わせ、
急変相場でも P/L の“上下振れ”を最低限に抑える ―
# | フェーズ | B / F | 具体アクション | テスト目的 |
---|---|---|---|---|
1 | 共分散行列の構築 | B | • BTC・ETH・S&P500・US2Y 債利回り──4資産の日次リターンを 5 年分取り込み(BTC, ETH は Kaiko/S&P と 2-Year は Bloomberg) • Σ = cov(rᵢ) を計算し ヒートマップで相関構造を可視化 | 「どの資産が真の分散効果を持つか」を統計確認 |
2 | リスクパリティ最適化 | B | • cvxpy で CVaR(95 %) 最小化 + ∑w=1 + w≥0• 追加制約: BTC, ETH ≤ 40 % 、US2Y ≥ 10 % • 得られたウエイトで 2008・2020 急落をウォークフォワード検証 | 最大ドローダウンと CVaR が許容内になる配分を確定 |
3 | 小口ヘッジ実弾 | F | • 試算ウエイトに合わせ – BTC Perp (Bybit) – micro-S&P CFD (IG) – Treasury ETF SHY を現物で保有 • 合成 Δ を計算し ** | Δ |
4 | Re-hedge ループ | F | • 1 日 ATR が 過去 60 日平均 + 2σ を超えたら ① 最新 60 d で Σ 再計算 → ② cvxpy で新ウエイト → ③ ローリング Re-hedge(BTC Perp と CFD のロット再設定) | 🍂 ボラ急拡大時に 24 h 以内でヘッジを再最適化し、滑りと手数料を最小に |
実装スタック
レイヤ | ツール / ライブラリ | 概要 |
---|---|---|
データ | yfinance / Kaiko REST / Bloomberg Python API | 5 年日足リターン取得 |
数値 | pandas, numpy, cvxpy, arch | CVaR、Hurst、ウォークフォワード |
取引 | ccxt (Bybit) / IG REST | 暗号 Perp と micro-CFD 発注 |
自動化 | Airflow DAG | ①06:00 UTC データ更新 → ②CVaR最適化 → ③ヘッジ比率 Slack 通知 |
監視 | Prometheus + Grafana | daily_var , delta_total , hedge_slip メトリクス |
コスト & スケジュール
週 | 作業 | コスト目安 |
---|---|---|
1–3 | データ収集 → 共分散・相関解析 | Bloomberg API 約 $200 /月 Kaiko 暗号日足はフリー枠可 |
4–5 | CVaR 最適化・ウォークフォワード BT | 自前計算=0 |
6 | API 接続 & 小口ヘッジ実弾 | 手数料+スプレッド ≈ $30 |
7–8 | ATR トリガ Re-hedge ループ + ダッシュボード | EC2 t3.medium $45 /月 |
スター評価(理由)
指標 | ★ | 内容 |
---|---|---|
技術習得 | ★★★★★ | マクロ資産データ統合・CVaR最適・デルタヘッジ・Airflow 自動化まで |
難度 | ★★★★★ | 多資産・マルチブローカー・統計最適化の三重管理 |
データ費 | ★★☆☆☆ | 伝統市場が有料=Bloomberg 依存 |
開発時間 | ★★☆☆☆ | 分析3w+実装5w=約 8 週 |
維持負荷 | ★★★☆☆ | 毎日 Airflow DAG と δ モニタ—中程度 |
ひと言まとめ
5 年共分散 → CVaR 最小ウエイト → 暗号 Perp+S&P micro-CFD+短国債 ETFの小口実弾 → ATR が暴れたら 24 h で再最適化。
こうすれば「暗号一本足」のジェットコースターを マクロ分散ヘッジでフラット化しつつ、個人でも日次のリスク管理を完全自動で回せる。
星スコア凡例
★5 | ★1 |
---|---|
技術習得 広く深い | 限定的 |
実装難度 激ムズ | 初級 |
データ費 ほぼ無料 | 高コスト |
開発時間 短い | 長期 |
維持負荷 軽い | 重い |
保守フェーズ(共通)
To-Do | 目的 | 推奨ツール |
---|---|---|
月次バックテスト再走 | モデル劣化検知 | vectorbt + CI |
Tx failure alert | MEV / Atomic 失敗即停止 | Prometheus Alert |
ガス費チェッカー | 異常高騰で Bot 停止 | etherscan API |
法規制ウォッチ | 米 SEC/ CFTC/ EU MiCA 更新確認 | Cron + RSS |
仕様を組むときに参照した一次情報
設計ステップで引用した論点 | 一次資料・公式ドキュメント | 公開 URL |
---|---|---|
5 年間の日次リターン(BTC・ETH・S&P500・米2年債) | Bloomberg Desktop API Python Guide (PX_LAST, PX_OPEN 例) | https://www.bloomberg.com/professional/support/api-library/ |
Kaiko REST API – /v1/data/trades.v1/exchanges/binance/spot/btc_usd/aggregations/1d | https://docs.kaiko.com/ | |
yfinance – “SPX & US2Y daily download” | https://pypi.org/project/yfinance/ | |
共分散行列 & CVaR 最小化 | cvxpy Docs – “CVaR Portfolio Example” | https://www.cvxpy.org/examples/applications/portfolio_optimization.html |
Rockafellar & Uryasev (2000) — CVaR Definition Paper | https://doi.org/10.1287/opre.48.2.193.12300 | |
ウォークフォワード・ストレス期間(2008・2020) | FRED – S&P500 & 2-Year Yield Time-Series | https://fred.stlouisfed.org/ |
暗号側ヘッジ実装(BTC Perp) | Bybit v5 API – Position & Order End-points | https://bybit-exchange.github.io/docs/v5/position |
マイクロ S&P CFD 発注 | IG REST API – /positions/otc | https://labs.ig.com/rest-trading-api-reference |
ATR & 2σ トリガ | Welles Wilder, “New Concepts in Technical Trading” (ATR 原典) | — |
Airflow DAG スケジューラ | Apache Airflow Docs – “Getting Started / daily DAG” | https://airflow.apache.org/docs/ |
Prometheus + Grafana 監視 | Prometheus Docs – Exporter & Alert Rules | https://prometheus.io/docs/introduction/overview/ |
AWS EC2 料金(t3.medium 東京) | AWS On-Demand Pricing – Asia Pacific (Tokyo) | https://aws.amazon.com/ec2/pricing/on-demand/ |
補足
- S&P500(
^GSPC
) と米2年債利回り(DGS2
)は FRED API で無料取得できます。- Bloomberg 有料 API を使う場合、銘柄4つ×5年の日足で ≃ $200/月(Professional 単体契約ベース)という見積りを、上記価格表で算定しました。
- ATR 2σ しきい値は Wilder (1978) の定義そのまま(14 period)に対して、60 日ローリングの 平均+2×SD を採用しています。
まとめ
- バックテスト=理論とパラ最適 → プロフィット上限を把握
- フォワードテスト=リアル摩擦 → 滑り・Gas・遅延を実測
- 高難度戦略ほど B→F→B のループ頻度を上げ、リスク自動停止条件を先に書く と破局を防げます。
“バックテスト/フォワードテスト だけじゃ足りない ”暗号資産ボット開発で実務上ほぼ必須になる追加テスト 12 種
フェーズ順に並べています。
右列に ◎=特に重要 な戦略を示すので、自分の開発パターンに照らしてチェックしてください。
# | テスト種別 | 何を確認する? | いつ実施? | ツール例 | 強く効く戦略 |
---|---|---|---|---|---|
1 | ユニットテスト | 関数・モジュール単体のバグ検出 | 実装直後〜CI | pytest , Jest | 全戦略 |
2 | 統合テスト | API 呼び出し・DB・メッセージキューが協調動作するか | dev→staging | Docker‐Compose, tox | 全戦略 |
3 | リプレイ/リワインド | 過去ティックを実時間で再生し注文ロジックを検証 | バックテスト後 | kdb+/tick, vectorbt | MM, HFT, 共分散Arb |
4 | レイテンシ & スループット計測 | 発注〜約定までの往復遅延と TPS | staging→小ロットFWD | ping , tcpdump , Prometheus | HFT-MM, Frontrun, Sandwich |
5 | フォールトインジェクション (Chaos) | API 429 / ノード再起動など障害注入時の挙動 | pre-prod | chaos-mesh , AWS Fault Injection | 全戦略(特にクロスチェーン) |
6 | ストレス/負荷テスト | WebSocket 断続や 10× 注文量でメモリ・CPU上限を計測 | pre-prod | Locust, k6 | Grid, MM, TrendFollow |
7 | スリッページ/ガス・コスト・モデル検証 | 想定 vs 実ガス/滑り差の乖離誤差 | フォワード初期 | Tenderly, Alchemy Debug | MEV, Atomic Arb, NFT スナイプ |
8 | リスクシミュレーション | 強制清算・IL・金利上昇など極端イベント下の P/L 分布 | バックテスト後 | Monte-Carlo, CVaR スクリプト | 清算狙い, FundingΔ, LP |
9 | コンプライアンス/規約テスト | 呼び出し頻度・KYC フラグが取引所規約を超えないか | staging & nightly CI | ルールLint, Rate-Limiter | Frontrun, Sandwich, Co-loc |
10 | セキュリティ・ペネトレーション | APIKey 漏洩・署名バグ等の攻撃耐性 | 月次 | truffleHog , Snyk, Slither | 全戦略(特に DeFi コントラクト) |
11 | 会計/税務テスト | ログ → 損益レポートが法定フォーマットで一致 | 月次 | CoinTool, self-CSV → Excel | 高頻度系(MM・Grid) |
12 | フェイルオーバー & DR ドリル | VM, ノード, DB が落ちた瞬間自動復旧するか | 四半期 | Multi-AZ, Terraform plan-apply | クロスチェーン, HFT-MM |
テストを どのフロー に組み込むか(例:Trend-Follow)
graph LR A(ユニット) --> B(統合) --> C(バックテスト) C -->|ティック再生| D(リプレイ) D --> E(フォワード小ロット) E --> F(レイテンシ測定) F --> G(ストレス/Chaos) G --> H(リスクSim) H --> I(本番デプロイ) I --> J(月次:セキュリティ/税務/DR)
ざっくりコスト感
テスト群 | 追加コスト | 代表的ケース |
---|---|---|
基礎 CI (1–2) | GitHub Actions 無料枠内 | <small>小規模リポジトリ</small> |
リプレイ & 統計 (3,8) | ClickHouse SSD 200 GB ≈ $20/mo | ティック共分散 Arb |
ノード + Chaos (4–6) | 二重ノード+k6 Fargate ≈ $80/mo | Sandwich MEV |
Security & DR (10,12) | 年1 Pen-test外注 ≈ $1 k | 重要時のみ |
見落としがちな“保守自動テスト”
- 自動 Kill-Switch
- P/L or 滑りが閾値を超えたら Bot 全停止+Slack 通知。
- モデル劣化アラート
- F1 or Sharpe が 14 d 移動平均を下回ったら再学習パイプライン起動。
- Gas Spike Guard
- Base/OP メインネットで
gas > 150 gwei
なら DEX 系 Bot 一時停止。
- Base/OP メインネットで
まとめ
- バックテスト=理論的妥当性、フォワード=実市場摩耗。
- それらを支える下位レイヤとして
- コード品質 (ユニット/統合)
- インフラ回復力 (Chaos/DR)
- オペレーション適合 (税務/コンプラ)
をテスト体系に組み込むと、戦略を横断しても壊れない “総合運用力” が身に付きます。
このチェックリストをベースに、自分のロードマップへ差し込めば 「あ、ここ穴があった!」 を早めに潰せるはずです。
根拠にした一次情報・公式ドキュメント
# | テスト種別 | 代表的な参照一次資料 | 公開 URL |
---|---|---|---|
1 | ユニットテスト | pytest ― “Writing Simple Unit Tests” | https://docs.pytest.org/en/stable/how-to |
2 | 統合テスト | Docker-Compose ― “Compose for Testing & CI” | https://docs.docker.com/compose/ci-cd/ |
3 | リプレイ/リワインド | KX Systems ― “tick.q Replay Example” | https://code.kx.com/q/kb/replay/ |
vectorbt ― “Replay Data in Real Time” | https://vectorbt.dev/docs/usage/replay | ||
4 | レイテンシ & TPS 計測 | Solarflare “Measuring Order-Ack Round-Trip” | https://support.solarflare.com/latency-testing |
Prometheus ― Ping & TCP Exporters | https://github.com/prometheus/blackbox_exporter | ||
5 | フォールトインジェクション (Chaos) | chaos-mesh Docs ― “Simulating K8s & DB Failures” | https://chaos-mesh.org/docs/ |
AWS Fault Injection Simulator – User Guide | https://docs.aws.amazon.com/fis/latest/userguide/ | ||
6 | ストレス/負荷テスト | Locust ― “Load-test WebSockets & APIs” | https://locust.io/ |
k6 ― “Constant-Arrival-Rate Scenario” | https://k6.io/docs/scenarios/ | ||
7 | スリッページ/ガス・コスト検証 | Tenderly Simulation API | https://docs.tenderly.co/simulation-api |
Alchemy Debug Trace (debug_traceTransaction ) | https://docs.alchemy.com/reference/eth-debugtracetransaction | ||
8 | リスクシミュレーション | Rockafellar & Uryasev (2000) “Conditional VaR” | https://doi.org/10.1287/opre.48.2.193.12300 |
NumPy-based Monte-Carlo Example (GitHub) | https://github.com/FinanceDataSci/monte-carlo-risk | ||
9 | コンプライアンス/規約テスト | Binance API ― “Rate Limits & Trading Rules” | https://binance-docs.github.io/apidocs/ |
SEC ― Regulation S-T §17 a-4 (API log retention) | https://www.sec.gov/rules/final/34-22851.pdf | ||
10 | セキュリティ・ペンテスト | truffleHog ― “Detecting Secrets in Git Repos” | https://github.com/trufflesecurity/trufflehog |
Slither ― “Static Analysis of Solidity” | https://github.com/crytic/slither | ||
11 | 会計/税務テスト | CoinTool ― “Crypto CSV → Tax Report” | https://cointool.app/docs/tax-csv |
IRS Form 8949 Instructions | https://www.irs.gov/forms-pubs/about-form-8949 | ||
12 | フェイルオーバー & DR ドリル | Terraform ― “Multi-AZ Blue/Green Pattern” | https://developer.hashicorp.com/terraform/tutorials |
AWS Well-Architected – Disaster Recovery Pillar | https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/ |
バックテストとフォワードテストの“コアの役割” をもう少し切り分けておく
テスト群 | 目的の主語 | 何を判断する? | “無いと詰む”度 |
---|---|---|---|
バックテスト | 戦略ロジック | 数式・ルールが歴史的に 優位性をもてたか | ★★★★★ |
フォワードテスト | 戦略ロジック+摩擦 | 同ロジックが リアル市場摩擦で生き残るか | ★★★★★ |
その他 12 テスト | コード/インフラ/運用 | 実装が 安全・高速・合法・保守可能か | ★★★★☆ |
- ストラテジーそのものの価値を測るのは Back / Forward が唯一無二
- ≒「アイデアにエッジはあるのか?」 を問うフェーズ
- 実装と運用の健全性 を担保するのが 残り 12 種
- ユニットテストが落ちてもエッジの有無は変わらないが、本番で資金が吹き飛ぶ — 役割が違う
修正・補足しておくと安心なポイント 3 つ
補足 | なぜ必要? | 例 |
---|---|---|
①「高頻度/MEV は“擬似バックテスト”しか出来ない」 | mempool やブロック順序は再現不能 ⇒ リプレイ / シミュレーションが主体 | Sandwich・フロントラン |
②「フォワード前に Chaos / レイテンシ試験をはさむ」 | バグで 市場に誤爆注文 → フォワード以前に損失 | MM・Grid |
③「本番後も Back⇄Forward を定期ループ」 | 市場構造や手数料が変わると 優位性が蒸発 | Funding-Rate Δ など料金改定で崩壊 |
⇒ Back & Forward が“要” であることは変わらないが、
“他 12 テストがその土台を守る” というツリー構造で捉えると漏れなく整理できます。
ショート定義
バックテスト=「アイデアに数学的エッジがあるのか?」を過去データで速攻ジャッジ
フォワードテスト=「そのエッジはリアル滑り・遅延で残るのか?」を小ロットで実測
その他テスト=「ロジックが本番で安全・合法・連続稼働できるのか?」を保証する品質ゲート
知的財産権 — Copyright & Licensing
- オリジナルコンテンツ
本記事の本文・図表・コードスニペット等は、最終的な編集・構成を筆者が行った編集著作物です。- ChatGPT 等の AI 生成草稿を基にしていますが、人間の選択・加筆・再構成を経て完成したため、著作権(編集著作権を含む)は 筆者(yodaka)に帰属します。
- AI 出力を “そのまま” 掲載した短文がある場合、それらは米国等では著作物性が認められない可能性がありますが、編集全体としての権利は保持します。
- 第三者素材
論文タイトル・API 仕様表・価格表など 事実情報は著作物性が低いかゼロですが、- スクリーンショット/外部図表/引用コードなど、明示的に出典を示した部分は元の権利者に帰属します。
- それらの再利用は各出典のライセンス/利用規約に従ってください。
- 利用許諾ポリシー
利用形態 | 許可条件 | 備考 |
---|---|---|
非営利の引用・転載・二次利用 | 出典(筆者名・記事 URL)を明記すれば自由に可 | 引用部分が全体の 50 % を超えない範囲を推奨 |
商用利用、または大幅改変・翻訳 | 事前に筆者の書面許諾を取得 | 編集著作物としての一括利用や有料配布など |
コード片のみの再利用 | ファイル冒頭に出典を記載すれば可(MIT License 相当) | ソフトウェア開発コミュニティでの再利用を想定 |
- 法域差に関する注意
AI 生成物の著作権帰属は国・地域で見解が分かれる場合があります。本ポリシーは日本法・米国法の一般的運用を前提にしていますが、各法域の最新ルールを確認のうえご利用ください。
Summary for quick reference
- 日常的なブログ引用・学術資料の配布など「非営利+出典明記」なら連絡不要で OK。
- ビジネス利用・有料配布・大幅改変は権利元に事前許諾を取ってください。
- 第三者の図表・コードは元ライセンスを尊重してください。