取引損失の86%は、たった1つのバグが原因だった
私たちの最初の自動売買ボットは、模擬取引上で190回のエグジットを通じて₩510万の損失を出しました。損失をエグジットの理由ごとに分けると、その86.5%は、ひとつのコードの経路が占めていました。そして同じバグは、私たちを二度もだましたのです。
制作について:コード、リサーチの実行、そして本文の初稿は、運営者の指示のもとでAIアシスタントが作成しました。すべての判断は運営者が行い、数値も運営者が確認しています。売買はすべて模擬取引(ペーパートレード)で、価格は実際のものですが、実際のお金は使っていません。ここに書かれている内容は投資助言ではありません。
エグジット理由別の損失
| エグジットの理由 | エグジット回数 | 損益(KRW) | 平均 | 勝率 | 保有時間の中央値 |
|---|---|---|---|---|---|
| 確認なしのアラームによるエグジット | 157 | −4,416,442 | −0.37% | 10.2% | 12秒 |
| 保有時間切れ | 18 | −244,623 | −0.26% | 38.9% | 2時間 |
| 確認ありのアラームによるエグジット | 6 | −684,389 | −2.10% | 0% | 14分 |
| トレーリングストップ | 5 | +613,519 | +2.33% | 100% | 18分 |
| 損切り | 2 | −386,990 | −3.69% | 0% | 23分 |
| その他 | 2 | +13,194 | — | — | — |
190回のエグジットのうち157回は、ひとつのルールによるものでした。確認も、最低保有時間も、価格が実際に動いたかどうかの確認もなく、すぐに売るアラームです。これらのエグジットの保有時間の中央値は12秒でした。同じ台帳で測った往復コストの中央値は0.43%で、そのため価格が動かなくても損失になりました。そのうち97回、つまり62%は、価格がエントリー価格の0.35%以内に収まったまま終わり、それでも損失でした。
エントリーから30秒以内のエグジット114回だけで、損失全体の63%を占めました。
コードが何をしていたか
同じファイルにある別の2つのアラームには、売る前に確認の手順が最初から入っていました。このアラームだけが抜けていたのです。姉妹モジュールでは同じ問題が数週間前に修正されていましたが、こちらは修正されていませんでした。そこで、確認なしのアラームは、最低保有時間20秒、往復コストを上回る実際の損失、そして6秒間の確認という条件がそろった場合にだけ売れるように変更しました。一方、絶対の安全装置である損切りと暴落時のエグジットは、これまでどおり即座に作動します。
この台帳に当てはめてリプレイすると、157回のアラームによるエグジットのうち143回を止められたはずです。これを利益とは主張しませんでした。エグジットを止めるとは、その時点で往復のコストを払わずに済むという意味にすぎません。保有し続けていたらその後に価格がどう動いたかは、この台帳からは証明できません。
2つ目の間違い
この監査では、3分のシグナル時間枠の取引が₩442万の損失で、1時間の時間枠は利益が出ていることも分かりました。そこで私たちは、3分の時間枠での取引を減らすよう勧めました。しかし1日後に、この提案を撤回しました。3分の時間枠の158回の取引のうち157回は、まさにあのアラームによるエグジットだったのです。それを除くと、3分の時間枠の取引は1回だけでした。私たちは2つのコードの経路を比べていただけなのに、それを時間足の違いだと呼んでしまったのです。
同じ2回目の監査では、関連する欠陥も見つかりました。確認済みのアラームによるエグジット6回は、いずれもそれぞれの損切りラインに届く前に売っていて、平均は−2.0%でした。6コインのうち5コインは、15分後には価格が上がっていました。アラームが、リスク計画を上書きするようになっていたのです。私たちは、損切りラインより手前で売らないように止めました。
ここから私たちが学んだこと
- 戦略のせいにする前に、損失をエグジットの理由別、コードの経路別に分けて調べましょう。1つのバグが、できの悪い戦略とそっくりに見えることがあります。
- データから見つけたパターンが、実はバグが姿を変えたものかもしれません。比べているグループが同じコードを通っていたかどうかを確認しましょう。
- 8〜12回の取引を根拠に方針を変えないでください。
- 証拠を残しましょう。エグジット190件のうち、エグジット後の価格記録が残っていたのは32件だけでした。50件分しか保持しないログが残りを上書きしていたためです。上限は200件に引き上げました。
バグを直して消えたのはバグであり、根本的な問題ではありませんでした。戦略の1回の取引あたりの優位性(エッジ)は、依然としてコストより小さいままでした。6週間の全記録。