期待してたんだけどね
いやー、やられましたわ。
FXの自動売買ボット、今回はマジで期待してたんだよね。
プロフィットファクター2.2とかあるわけ。
取引回数は少ないけど、これは見つけたぞって思ったのよ。
オーバーフィッティングもなし。未来のデータも読んでない。ちゃんと確認した。
よっしゃ、これでいけるって。
でも現実は残酷だった
実際に動かしてみたら、なんか勝率が悪いのよ。
負ける。また負ける。損失ばっかり。
おかしいなぁって思ってさ。
バックテストではあんなに良かったのに、なんでこうなるの?って。
で、夜中にチャート見てたら「ここ、シグナル出るポイントじゃね?」ってところがあったのよ。
なのにシグナル出てない。
これおかしくね?って思って調べ始めたわけ。
衝撃の事実が発覚
いろいろ調べてみたら、とんでもないことがわかった。
「バックテスト、未来のデータ読んでます」
は?
お前今更何言っとんじゃって話よ。
どういうことかっていうと、上位足の平均値を見る処理があるんだけど、そこに問題があった。
本当はまだ確定してない足のデータなのに、バックテストだと確定した後のデータを使っちゃってたの。
つまり、リアルタイムでは絶対に知り得ない情報を使って判断してたってこと。
そりゃバックテストの成績良くなるわ。
未来が見えてるんだもん。
修正したらどうなったか
で、その部分を修正してバックテストやり直したのよ。
結果?
プロフィットファクター0.8
終わった。
完全に使い物にならん数字。1.0を切ってるってことは、やればやるほど負けるってことだからね。
2.2から0.8って、落差えぐすぎでしょ。
9個のボット、全部ダメ
実はこの戦略をベースにして、パラメータ変えたりして9個ぐらいボット作ってたのよ。
シミュレーションも回して、いい感じだったやつを。
でも元がダメなんだから、全部ダメに決まってる。
9個とも全滅。
全部止めた。
ほんと最悪ですわ。
学んだこと
今回の件で痛感したのは、バックテストの検証方法をもっと厳密にしないとダメってこと。
「未来のデータ使ってません」って自分で確認したつもりだったのに、見落としてた。
上位足の処理とか、ちょっと複雑になると気づきにくいんだよね。
バックテストで良い成績が出ると嬉しくなって、どこかで確認が甘くなってたのかもしれない。
次からはもっと慎重にやらないと。
というか、バックテストのやり方自体を根本から見直す必要があるな、これ。
また一からやり直しだけど、まあこういう失敗も経験だよね。
高い授業料だったけど、同じミスは二度としないようにするわ。

