諦めたはずのFX自動売買、趣味として復活させてみた話

効率化・仕組み化

暇な午後、ふと手が動いた

今日は夕方に床屋の予定があった。

午前中でeBayの作業が終わって、午後がぽっかり空いた。外に出るには中途半端な時間。かといって家でダラダラするのもなんだかもったいない。

そんな時、ふとアイデアが浮かんだ。

「バックテスト、ちょっと試してみるか」

つい先日「FXの自動売買は完璧に諦めた」って記事を書いたばかりなんだけどね。人間って不思議だよね。諦めたって言った舌の根も乾かないうちに、また手を出してる。

でもさ、今回はちょっと違う。実運用する気はない。ロジックが完成するとも思ってない。純粋に趣味として、バックテストのシステムを作ってるだけ。

今やってることの中身

Claude(AI)にコードを書いてもらいながら、自律進化型のロジックを目指してる。7割くらいできたかなって感じ。

仕組みはこう。まず100個くらいの条件を集めて、それをランダムにペアにしてロジックを作る。そのロジックでバックテストとフォワードテストを100世代繰り返す。進化の過程で条件をクリアしたやつだけを抽出する。

理屈は悪くないと思うんだよね。

ただ、問題がある。未来バイアスってやつ。

どうしても未来のデータが計算に入り込んでしまう。結果として、成績が良く見えても実際には使えないパターンばかり。あるいは条件が厳しすぎて何も合格しないか。今まで散々これに騙されてきた。

計算速度が劇的に変わった

これまで自律進化の工程には10時間から20時間かかってた。正直、待ってるだけで疲れる。

でも今日読んだ本に「ベクトル化」って計算手法が載ってた。試しに取り入れてみたら、これがすごかった。

20時間かかってたものが40分〜1時間で終わる。

6年分のデータ、100世代、100条件のランダムテスト。これがこんな短時間でできるようになった。当然、合格するロジックもたくさん出てくる。

ここで喜んじゃいけないんだよね。たくさん出てくるってことは、まだ選別が甘いってこと。

選別して、また落ちる、その繰り返し

だから次のステップとして選別システムを作ってる。

選別を通過したものを、実運用に近い環境でもう一度テストする。リアルタイムに近い形で動かして、本当に使えるか確認する。

現時点で1つだけ、選別を通過して実運用直前まで行ったロジックがあった。

結果は、やっぱりダメだった。

選別システムでも見落とすエラーがあったんだよね。それを洗い出して、また選別システムとバックテストに織り込んでいく。その繰り返し。地味だけど、これで精度を上げていくしかない。

期待しない、でも動く

正直、このシステムで稼げるようになるとは思ってない。

でもさ、システム構築自体が勉強になるんだよね。プログラミングの知識も増えるし、統計的な考え方も身につく。

最近は映画もYouTubeもあんまり見なくなった。時間ができた時に家でこれをやる。悪くない暇つぶしだと思う。

ぼーっとしてるよりは、可能性が0.1%でもある方に動いてる方がいい

そういうスタンスで、趣味として続けていこうと思う。床屋に行く前の午後、そんなことを考えていた。