相場に合わせて手法を変えれば勝てるのか? MultiRegime EAで考えたこと

「今回も戻るんじゃないか」

ゴールドで含み損を抱えたとき、僕が損切りをずらしてしまった理由です。それで助かったことが何度もありました。でも、最後には戻らない値動きにつかまり、それまで増やしたお金まで失いました。

戻る相場では助かるやり方も、一方向に進み続ける相場では通用しない。この違いは、僕にとって実際のお金を失って経験したことです。

だから、感情で判断を変えないEAを作り、決めた条件を繰り返した結果を調べてきました。前回の#007では、二つの戦略を一つのEAに組み込んだMultiStrategyを振り返りました。

今回のテーマは、相場の状態も判断に使うMultiRegimeです。いくつかの手法を用意して、今の値動きに条件が合うものを動かせないか。その開発を、保存されているv1.92.4のコードから振り返ります。

目次

「この手法がダメ」より先に、どんな相場で使ったかを見たい

高値を抜けたあとに値段が伸びるなら、その突破を買う条件には出番があります。一方、抜けた直後に何度も戻される場面で同じ買い方をすれば、損切りが続くかもしれません。

こう書くと、上昇が続く相場で使えばいいだけに思えます。

でも、それが分かるのは、チャートの右側まで見たあとです。実際に注文する時点では、この上昇が続くのか、すぐ戻るのかは分かりません。

僕が知りたいのは、後から見つけたきれいなチャートで勝てるかではなく、その時点で見えている情報だけで判断して、繰り返した結果です。

そこで、移動平均線の向き、トレンドの強さ、最近の値幅などを条件にして、注文する場面を絞ることになります。

一つのEAに、四つの売買条件を用意した

保存コードには、次の四つが実装されています。

戦略狙う値動き
Trend Pullback流れのある相場で、いったん押した価格が戻る動き
Volatility Expansion値幅の小さい状態から、動きが大きくなる場面
EMA Continuation移動平均線付近への押しから、再び同じ方向へ進む動き
Donchian Breakout一定期間の高値・安値を超える動き

たとえばEMA Continuationの買いでは、短い期間の移動平均線が長い期間の線より上にあることを確認します。そのうえで、価格が短い線に触れたあと、直前の高値を超えて引ける動きを条件にしています。売りは上下を逆にします。

ただ上がっているから買う、という判断から、注文する形をもう少し具体的にしたものです。ほかにも、トレンドの強さや値幅を使う条件があります。

そして、注文したあとは損切りと利確のルールに従います。条件が悪くなった気がするからその場で判断を変える、という僕の裁量の癖を挟まずに調べるためです。

相場の「波」を見る機能は、注文を許可するスイッチとは限らない

ここは、コードを確認して区別しておきたい部分です。

この版には、高値・安値の関係から相場の構造を捉えるDEGという処理があります。相場の方向や構造を、取引と合わせて追うためのものです。

ただし、確認した版では、この構造だけで注文を一律に許可・禁止する仕組みにはなっていません。新しい足ができると、波の構造を更新したうえで、四つの戦略の条件を順に判定しています。

つまり、「トレンドだからA、レンジだからB」と、その都度一つの戦略を選び切っていると説明すると、実際のコードと違います。各戦略がそれぞれの条件で注文を判断し、構造の情報も記録する実装でした。

相場に合わせたいという目的があっても、プログラムがどこまで判断しているかは、名前だけでは分かりませんでした。

条件を満たしても、別の注文が先に入ることがある

四つの戦略が入っていると、同じ足で複数の条件を満たす可能性があります。

保存コードには、ポジションを一つに制限する設定があります。その制限が有効なら、先に注文した戦略のために、別の戦略が入れないことがあります。

そこで必要になるのが、条件が何回成立したかと、実際に何回注文できたかの確認です。この版には、ポジションの競合で見送られた回数を追う処理も用意されています。

これを見ずに「戦略を追加したのに利益が増えなかった」とだけ評価すると、追加した条件が悪かったのか、そもそも注文できなかったのかが分かりません。

裁量では、複数の根拠が重なれば期待したくなります。でもEAでは、その根拠が別々の注文になるのか、一つだけ採用するのかも決める必要がありました。

結果として、このEAは採用できるのか

今回の記事で確認したコードだけを根拠に、本番採用はできません。評価は保留です。

確認できたのは、四つの戦略の実装と、その条件、記録の仕組みです。相場環境を使うことで、使わない場合より利益が増えたか、資金の落ち込みが小さくなったかまでは、この確認から結論を出せません。

その効果を判断するには、同じ期間、同じ売買コスト、同じ資金条件で比較し、取引回数や見送りまで確認する必要があります。

保存コードには、目標とする取引回数やPFなども書かれています。ただ、それは開発上の目標です。達成した成績として掲載することはできません。

今回バックテストを再実行したわけでもありません。ここでは、実装から分かったことを開発記録として残しています。

「戻るはず」を、調べられる条件にする

僕は、自分が期待した値動きを待って損切りを遅らせました。だから今は、その期待を売買の途中で持ち込まず、先に条件にして調べたいと思っています。

MultiRegimeの開発では、買う場所や売る場所に加えて、どんな状態でその条件を使うかまで、決める対象が広がりました。さらに、条件が重なったときの優先順位も結果に影響します。

まだ、相場に合わせて勝てるEAが完成したとは言えません。それでも「今はこの手法が合いそう」という判断を、どの情報から、どう決めるのかを確認するところまでは進んでいます。

ここまでが、#003から#008で振り返ってきた初期の研究です。この先は、作ったEAを実際の相場で動かした記録へ進みます。条件どおりに注文できたのか。バックテストで期待した結果が、フォワードでも残ったのか。口座とログを見ながら確かめていきます。


実装説明は、保存されたXAU_MultiRegime_v1.92.4_Forward_Phase2B.mq4に基づきます。コードの入力初期値を実際の全テスト設定として扱っていません。今回、バックテストの再実行や、相場環境判定の有無による同条件比較は行っていません。後の同名戦略や別系列のEAの成績も合算していません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

会社員SEとして働きながら、お金・仕事・健康・暮らしをテーマに、自分で試したことを記録しています。
筋トレ、健康管理、AI、FX・資産形成など、興味を持ったことは実際に試し、できる限り数字で検証。成功したことだけでなく、失敗したことやうまくいかなかった結果も公開します。
「人生を、試して、測って、良くしていく。」がZerokaLifeのテーマです。

目次