- EAポートフォリオにおけるロット配分の設計方法
- ロット配分を設計する上での注意点
- ロット配分最適化ツールの入手方法とその使い方
- EAポートフォリオのロット配分の設計方法を知らない人
- ロット配分の設計を効率化したいと思っている人
はじめに
FX自動売買(EA)において、ポートフィリオを組むことは、運用の収益性を向上させるために大変重要なポイントです。
そしてポートフォリオを構成するにあたり、各EAに対して割り当てるロット数の配分の最適化することは、リスクを管理しながら収益性を最大化するために必要不可欠なことです。
本記事では、ロット配分を最適化するための手法を解説し、また、ものすごく大変な作業であるこのプロセスの約90%を自動化できるツールを無料配布します。
EAでポートフォリオを組んで運用している方は是非最後まで読んで下さい。
ポートフォリオとは
EAを使ってトレードする場合、さまざまなタイプのEAを混合することが一般的であり、これをポートフォリオと呼びます。タイプの異なるEAを混ぜることにより、互いに調子の悪い時期を補い合うことができるため、収益が安定し、最大ドローダウンを低くすることができます。
EAポートフォリオにおけるロット配分の重要性
EAポートフォリオにおけるロット配分の最適化とは、各EAに割り当てるロット数のバランスを最適な配分に調整することです。
このプロセスによりポートフォリオの最大ドローダウン(下図)を最小限に抑えながら収益性を向上させることができます。
逆にこの作業を正しく行わないと、収益が大きくマイナスに影響してしまいます。
すなわち、ロット配分の最適化は強力な武器にもなりますが、諸刃の剣になりえるとも言えるということです。
EAでポートフォリオを組んでトレードする場合、しっかりと知識とスキルを身につけることが必要不可欠です。
ロット配分最適化の手法
純利益と最大ドローダウンについて
ロット配分を最適化するにあたり、純利益と最大ドローダウンの関係性を理解することが必要です。
純利益は投資から得られる収益の総額を示し、最大ドローダウンは最大損失額を表します。
理想的には、高い純利益を維持しつつ最大ドローダウンを最小限に抑えることが望ましいですが、これはほとんどの場合トレードオフ(どちらかが高いと、その一方は低くなる)の関係にあります。
これらの関係性を理解し、それに基づいてポートフォリオを調整することが、効果的なリスク管理と収益の最大化に不可欠です。
ロット配分最適化のプロセス
ロット配分の最適化とは、純利益をできるだけ高くしつつ、最大ドローダウンをできるだけ低くできるロット配分の組み合わせを見つけることです。
手動で実施する場合の手順としては、mt4で各EAのバックテストを実施し、そのバックテストデータを岩ライザーなどの分析アプリに読み込んで合成し、ポートフォリオとしての純利益や最大ドローダウンを算出します。
そして、各EAに割り当てるロット数を変更しながら純利益÷最大ドローダウンを最大化していきます。
岩ライザーはEAごとのロット数をアプリ上で指定できるので非常に便利です。
バックテストの取り方についてはこちらの記事で解説しています。
[MT4]バックテストの理解と実践。自動売買(EA)を正しく評価するための基本を解説
ただし、各EAへのロット配分を手動で変更していては、パターンが何千何万通りあるなかで、最適解を見つけることは大変なことです。
そこで私はロット配分を最適化するためのツールを開発し、無料で配布しています。この記事の最後の章で説明していますので、是非チェックして下さい!
ロット配分最適化の注意点
ロット配分を最適化する際、過剰最適化(オーバーフィッティング)に注意する必要があります。
過剰最適化とは、過去の相場に対してフィッティングしすぎることで、未来の未知のデータに対してはうまく機能しない状況を指します。
バックテストでは優れたパフォーマンスなのに、未来の相場ではうまく機能しないという、最悪の現象です。
過剰最適化を避けるためには、以下3つの方法が有効です。
1. 最適化されたロット配分が理に適っているかを考える
2. 長期間のバックテストデータを使って検証する
3. アウトオブサンプルテストを用いて検証する
順番に解説していきます。
1. 最適化されたロット配分が理に適っているかを考える
これは理論と合致しているかを確認することを指します。要するに、過去検証では不都合な事態は発生していないけど、本当に将来的にもそう言えるのか?ということを考えるということになります。
例えば、同じ通貨ペアでスイングトレードをするEAが3つあったとします。それらのEAがたまたま過去に同じような期間にドローダウンが発生しておらず、ロット配分がこの3つに大きく偏っていた場合、将来的には同時に大きなドローダウンを起こしてしまう可能性が十分にありえます。
そういった場合にはそのロット配分を選択すべきではありません。
同じ通貨ペアで同じ種類(スキャル、デイ、スイングなど)のEAにロット配分が集中していないかをチェックしておく必要があります。
2.長期間のバックテストデータを使って検証する
ロット配分の最適化に使うバックテストのデータ期間が長い程、過剰最適化のリスクは下がります。
少なくとも10年間以上のバックテストデータで検証するようにしましょう。
3. アウトオブサンプルテストを用いて検証する
アウトオブサンプルデータとはロット配分の最適化検証に使った期間以外のデータのことです。
例えば、2010年から2020年のバックテスト(インサンプル)でロット配分の検証をしたとします。そのロット配分で2020年以降のバックテスト(アウトオブサンプル)でも機能しているかを確認するということです。
これにより、擬似的にフォワード評価が実施できます。
これらの手法により、モデルが過去のデータに過度にフィッティングしていないか確認し、将来においても機能する可能性を高めることができます。
ロット配分最適化ツールのご紹介
ツールの概要と機能
冒頭でも述べた通り、ロット配分の最適化をほぼ自動化するツールを開発しました。
ツールはエクセルになります。
当ツールは、各EAに指定した範囲でランダムでロットを割り当て、それを指定した回数だけ繰り返し、それぞれの合成パフォーマンスを記録するというものになります。
図示すると以下のようなイメージです。
また、それぞれのロット配分における純利益と最大ドローダウンの値が下図のようなグラフとして出力されます。そのグラフの使い方については、「ツールの使い方」の項で解説します。
ツールの使い方
ツール入手後、開いたら以下の手順で実施してください。
初期化する
一度分析をしたことがあり、データが残っている場合は「初期化」ボタンを押して初期化してください。
バックテストデータを読み込む
次のステップは、バックテストデータの読み込みです。
バックテストは「バックテスト読み込み」ボタンで読み込むことができます。100個分読み込めますので、順番に読み込んでいってください。
バックテストを読み込むと、EA名や通貨ペア、損益データが出力されます。
損益データは全て0.1ロット当たりの値に換算されます。
分析条件の入力
青色で塗られたセルに数値を埋めてください。何パターンのロット配分を計算するか?ということと、それぞれのEAのに割り当てるロットの範囲を指定します。
分析の実行
「分析実行」のボタンを押して、分析を開始してください。
以上の手順が完了したら、解析が走ります。解析パターンが多いとかなり時間がかかりますので、必要以上に回数を増やさないことをお勧めします。
出力結果の見方
上記のステップで計算を実行すると、各ロット配分の組み合わせにおいて、横軸に最大ドローダウン、縦軸に純利益をプロットしたグラフが出力されます。
このグラフにおいて、パフォーマンスが良い組み合わせは、赤色の線に近いプロットデータとなります。この付近にあるデータは、最大ドローダウンを低くしながらも高い純利益を獲得しているという事を意味しており、専門的にはパレート解と呼ばれています。
このパレート解の中から前章で解説したポイント(過剰最適化を避ける)を考慮しながらロット配分を決定していきます。
具体的な手順は以下です。
パレート解付近のデータを選択し、純利益、および最大ドローダウンの値を読み取る
プロットデータを左クリックして選択し、カーソルを合わせると横軸と縦軸の値が確認できます。これは最大ドローダウンと純利益の値ですので、そのどちらかの値を記録します。
選択したデータのロット配分を調べる
「分析結果一覧」のシートに移動し、「Ctrl+F」キーを押して先程記録した値を入れて検索してください。
そうすると、先程選択したプロットデータのロット配分(倍率)、その時のパフォーマンスデータ(純利益、PF、最大ドローダウン、純利益/最大DD)が確認できます。
ロット配分最適化ツール入手の方法
本ツールを使いたい方は以下の条件を満たした上で、お問い合わせから「ロット配分最適化ツール希望」というメッセージを送ってください。
ツール配布条件
・X(旧:Twitter)で@YUKN_EAlaboをフォロー
・上記アカウントの固定ツイートをリポスト
・こちらのポストをリポスト
最後に
いかがでしたでしょうか?
ロット配分の最適化がいかに重要で、本ツールがいかに便利かをご理解頂けたことと思います。
この記事やツールが皆さんの快適なトレードライフの一助となれば幸いです。