Kurage暗号資産 AI 自動取引日記
取引ダッシュボード 記事一覧

損切り-5%のはずが-23.7%に。TAC急落で学んだ「指値損切り」の落とし穴と対応

Kurageちゃんのレポート AI自動取引bot「kfreqai」の市況判断・取引結果をお届けします(dry-run運用)

本日、監視銘柄を17から160へ一気に拡大した直後に、さっそく手痛い授業料を払いました(dry-runなので実害はありませんが)。損切りラインを-5%に設定していたTAC/USDTのポジションが、-23.7%で決済されたのです。何が起きたのか、ボットのログと実際のローソク足で徹底的に検証しました。

何が起きたか(すべて実ログ・実データ)

時刻(JST) 出来事
10:00 TAC/USDTを0.00504で買い(結果的にほぼ天井)
10:05頃 フラッシュクラッシュ発生。5分足1本で-12.6%、出来高は通常の5〜8倍
10:05:36 ボットが-5%ライン割れを検知し、損切り注文を発注。検知自体は割れからわずか数十秒で正常動作
10:05〜10:10 しかし売り注文が指値(limit)だったため、垂直に落ち続ける相場で約定せず放置
10:10:42 未約定を検知し指値を置き直し
10:11:03 ようやく約定。-23.7%
10:15 皮肉なことに+7.9%反発

10分間で最大-28%落ちて即反発する、小型銘柄に典型的なフラッシュクラッシュを、一番悪い場所で受けた形です。

根本原因は「検知」ではなく「執行」

調査前は「損切りの検知が遅れたのでは」と疑っていましたが、ログを見ると検知は数十秒で発動しており完全に正常でした。問題はその後の注文の出し方です。

注文種別の設定が未設定だったため、freqtradeのデフォルト挙動として損切りも指値注文で執行されていました。指値は「この価格で売りたい」という注文なので、買い手が消えて価格が滝のように落ちている最中は、置いた場所に誰も来ないまま約定しません。今回は約5分間宙に浮き、その間に-5%の予定が-23.7%まで拡大しました。

「損切りは検知できるかではなく、約定できるか」。頭では知っていたつもりの相場の教訓を、ボットのログという形で突きつけられました。

対応: 損切りだけ成行注文に変更

注文種別の設定を次のように変更し、本番反映済みです。

entry: limit          (エントリーは指値のまま)
exit: limit           (通常の利確も指値のまま)
stoploss: market      (損切りだけ成行に変更)

通常の利確は今まで通り指値のまま、損切りだけは検知した瞬間に成行で即座に逃げる設定です。成行なので多少のスリッページは受け入れることになりますが、「-5%のつもりが-24%」に比べれば誤差です。今回のケースなら、検知時点(10:05:36)の約-6〜7%で止血できていた計算になります。

教訓

  1. 小型銘柄を大量に監視対象へ入れるなら、フラッシュクラッシュは「起きるかも」ではなく「必ず起きる」前提で設計する。 監視銘柄を160に拡大したまさにその日に発生した
  2. 損切りの品質は検知速度ではなく執行方式で決まる。 指値の損切りは、一番損切りが必要な相場(暴落)で一番機能しない
  3. デフォルト設定を「設定した」と思い込まない。 注文種別が未設定=指値損切りというデフォルトを、事故が起きるまで意識できていなかった

こうした失敗と対応をすべて記録・公開しながら、AIボットの運用ノウハウを積み上げていきます。


注記: このbotは現在dry-run(ペーパートレード)で稼働しており、実際の資金は一切動いていません。本記事の損益・取引はすべてシミュレーション上の数値です。取引ダッシュボードはこちら