暇な午後、ふと手が動いた
今日は夕方に床屋の予定があった。
午前中でeBayの作業が終わって、午後がぽっかり空いた。外に出るには中途半端な時間。かといって家でダラダラするのもなんだかもったいない。
そんな時、ふとアイデアが浮かんだ。
「バックテスト、ちょっと試してみるか」
つい先日「FXの自動売買は完璧に諦めた」って記事を書いたばかりなんだけどね。人間って不思議だよね。諦めたって言った舌の根も乾かないうちに、また手を出してる。
でもさ、今回はちょっと違う。実運用する気はない。ロジックが完成するとも思ってない。純粋に趣味として、バックテストのシステムを作ってるだけ。
今やってることの中身
Claude(AI)にコードを書いてもらいながら、自律進化型のロジックを目指してる。7割くらいできたかなって感じ。
仕組みはこう。まず100個くらいの条件を集めて、それをランダムにペアにしてロジックを作る。そのロジックでバックテストとフォワードテストを100世代繰り返す。進化の過程で条件をクリアしたやつだけを抽出する。
理屈は悪くないと思うんだよね。
ただ、問題がある。未来バイアスってやつ。
どうしても未来のデータが計算に入り込んでしまう。結果として、成績が良く見えても実際には使えないパターンばかり。あるいは条件が厳しすぎて何も合格しないか。今まで散々これに騙されてきた。
計算速度が劇的に変わった
これまで自律進化の工程には10時間から20時間かかってた。正直、待ってるだけで疲れる。
でも今日読んだ本に「ベクトル化」って計算手法が載ってた。試しに取り入れてみたら、これがすごかった。
20時間かかってたものが40分〜1時間で終わる。
6年分のデータ、100世代、100条件のランダムテスト。これがこんな短時間でできるようになった。当然、合格するロジックもたくさん出てくる。
ここで喜んじゃいけないんだよね。たくさん出てくるってことは、まだ選別が甘いってこと。
選別して、また落ちる、その繰り返し
だから次のステップとして選別システムを作ってる。
選別を通過したものを、実運用に近い環境でもう一度テストする。リアルタイムに近い形で動かして、本当に使えるか確認する。
現時点で1つだけ、選別を通過して実運用直前まで行ったロジックがあった。
結果は、やっぱりダメだった。
選別システムでも見落とすエラーがあったんだよね。それを洗い出して、また選別システムとバックテストに織り込んでいく。その繰り返し。地味だけど、これで精度を上げていくしかない。
期待しない、でも動く
正直、このシステムで稼げるようになるとは思ってない。
でもさ、システム構築自体が勉強になるんだよね。プログラミングの知識も増えるし、統計的な考え方も身につく。
最近は映画もYouTubeもあんまり見なくなった。時間ができた時に家でこれをやる。悪くない暇つぶしだと思う。
ぼーっとしてるよりは、可能性が0.1%でもある方に動いてる方がいい。
そういうスタンスで、趣味として続けていこうと思う。床屋に行く前の午後、そんなことを考えていた。

