4時間足を使うEAの最適化・バックテストについて

2025/03/17 16:53
36

EAの最適化について勉強中です。わからないことだらけで、とても基本的なことだと思いますが教えていただけると嬉しいですm(__)m
4時間足で動かすEAを初めて最適化&バックテスト中です。


①2024年の1年間の検証期間で100万円スタートで最適化して、損益がMAX20万という結果が出た場合→1年で100万がMAX120万になる可能性がある
②2015年~2024年の10年間の検証期間で100万円スタートで最適化して、損益がMAX5万という結果が出た場合→10年で100万がMAX105万になる可能性がある(→意味なし)

この場合「10年の間に増えたり減ったりして最終的に10年でプラス5万にしかならない、2024年の結果(MAX20万)がたまたまよかっただけ」という解釈であっているでしょうか?

●最適化にはすごく時間がかかるのでまずは「始値のみ」で最適化をするといいと知り、まず始値のみで最適化しています。

私の使っているEAは4時間足で動かすのですがポジションを取得するのはローソク足が形成されるタイミングだけですが、決済タイミングは様々です。
4時間足を使っていて「始値のみ」で最適化すると、当たり前ですが決済タイミングも「始値のみ」になってしまうでしょうか?

それだとさすがに結果が全く参考にならないだろうなと予想しています。
ただ「全ティック」だと時間かかりすぎてできる気がしません。
こういう場合はどうやって最適化すればいいでしょうか?

何か少しでもアドバイスをいただけると嬉しいです。
どうぞよろしくお願いいたしますm(__)m

コメント

GogoJungle
2025/03/19 19:59

> 「10年の間に増えたり減ったりして最終的に10年でプラス5万にしかならない、2024年の結果(MAX20万)がたまたまよかっただけ」という解釈であっているでしょうか?

概ね正しい解釈であるといえるでしょう。
1年間のテストで成績がよい場合、偶然、EAと短期間の相性との相性がよかっただけの可能性があります。
期間をずらして複数回のテストを行う「ウォークフォワード分析」を行ってみるのがよいかもしれません。

> 4時間足を使っていて「始値のみ」で最適化すると、当たり前ですが決済タイミングも「始値のみ」になってしまうでしょうか?

仰る通りです。
全ティックには劣りますが、「始値のみ」よりは精度が高い方法として「コントロールポイント」があります。
一つ下の時間足(4時間足の場合は1時間足)を利用する方法です。
こちらを使ってみるのはいかがでしょうか。

また、既にお試しかもしれませんが、最適化の際は

  • ビジュアルモードをオフにする
  • 「遺伝的アルゴリズム」を使用する
  • 全てを最適化しようとせず、重要なパラメータだけを最適化の項目に入れる
  • 直近3~5年で最適化してから、長期間でテストして汎用性をチェックする

といった工夫ができます。

短期間で最適化してみることを期間を変えて何回か繰り返し、よさそうなパラメータが見つかったら長期間でチェック、という方法がよさそうですね。

最後に、最適化の際には過剰最適化(カーブフィッティング)に注意が必要です。
短期間のデータに最適化しすぎると、実際の相場では機能しなくなる可能性があります。
最適化後に、全く異なる期間でテストを行い、実用性をチェックするのが重要です。

tom
2025/03/21 21:20

詳しく教えてくださいありがとうございましたm(__)m

「始値のみ」で1年間ずつ最適化していた時は1年で100回以上の取引があったのですが、「全ティック」で最適化をしたところ、期間を2015年から2019年の5年間にしているにも関わらず取引数が20回以下になりました。

「5年間で20回以下なんてあり得るのかな?!(もっと多いはず)」と思うのですが、マイナスの結果は出さないようにしているので「5年間の結果がプラスになるのが取引回数20回以下の場合のみ」と言うことでしょうか…

何度も質問申し訳ありません。

はじめて本格的にEAの最適化にチャレンジしているのですが、期間を2015年から2019年の5年間で取引回数20回以下の場合しかプラスにならない(しかも少しのプラス)このEAは、使えないと判断したほうが良さそうでしょうか(><)

GogoJungle
2025/03/25 13:00

最適化の条件が「損失を出さないこと」重視になっているため、システムが過剰に慎重なロジックを選んでいる可能性があります。
その結果として「本当に勝てそうなときだけトレードするため、取引回数が少なくなる」というEAになっているのかもしれません。

始値のみで得られたパラメーターを用いて全ティックで計測した際にそれなりにパフォーマンスが出るようなら、一概に使える可能性がないとは言い切きれないでしょう。

また、何か大きな損失を出している場合、そのときの相場がどうなっていたのかを確認するのも大切です。
「こういう相場には対応できないんだな」ということを把握すれば、実際の運用で、相性の悪い相場で一時的にEAを停止するという使い方ができます。(この場合、完全に放置できないので少し手間がかかりますが、その分リスクを抑えて運用することが可能になります。)

さらに補足すると、EAの特性を把握するためには「いつ・どのような相場で勝って、どのようなときに負けるのか」を視覚的にチャートで確認することが重要であると存じます。
バックテストの結果のエントリーポイントや損失が出た場面を実際にチャート上で見てみると、「このロジックはレンジに弱いな」「トレンドが出てから遅れて乗ってるな」など、EAの性格が見えてくるはずです。

「始値のみ」で最適化してよさそうなパラメーターを見つける

全ティックでのバックテストを行い、取引回数と利益のバランスをチェック

特徴的な動きをしたポイントをチャートを見て確認し、EAの性格を判断する

という方法を試してみてはいかがでしょうか?

tom
2025/03/26 21:24

>バックテストの結果のエントリーポイントや損失が出た場面を実際にチャート上で見てみると、
>「このロジックはレンジに弱いな」「トレンドが出てから遅れて乗ってるな」など、EAの性格が見えてくるはずです。

なるほどと思いました…!
バックテストの結果をきちんと解析してみようと思います。

>始値のみで得られたパラメーターを用いて全ティックで計測した際にそれなりにパフォーマンスが出るようなら、
>一概に使える可能性がないとは言い切きれないでしょう。

全ティックで「マイナスの結果を表示しない」にチェックして最適化をしたのですが、5年間で取引回数が20回ほどで、元金100万が106万(5年間で6万の増加…)程度になる、というデータが多かったです。

本来なら取引回数はもっと多いはずなのですが(リアルトレードでも1年に70回くらいは取引回数があります、最適化では2015年から2019年の5年で20回ほどの結果になりました)、取引回数が多い設定値では結果がマイナスになっているから表示されていないのだと思いました。

プロフィットファクタも低く、5年間で取引回数が20回というのはちょっとあり得ないと思うのでオリジナルのEAなのですが残念ながら使えないEAと判断したほうがいいのかなと思いました…。

ですがもう少し色々な角度から検証を続けてみたいと思います。

詳しくアドバイスいただき本当にありがとうございました!^^

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。