私たちのファンページに参加してください
- ビュー:
- 15
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
考え方
1つの口座で複数のEAを稼働させる場合、重要なのは各EAがどれだけ利益を上げるかではありません。重要なのは、それらのリスクが合計してどれだけ相殺されるかということです。
各システムについて、単独での最悪の連敗期間を測定し、それらの数値を合計します。次に、同じ期間における口座全体の最悪の連敗期間を測定します。2つ目の数値は常に小さくなります。その差の大きさが、あなたの分散投資効果を測る唯一の正当な指標ですが、ターミナルレポートにはこの数値は表示されません。
このスクリプトはそれを測定します。決済済みの取引履歴を読み取り、マジックナンバーごとにグループ分けし、4つの項目を報告します。
報告内容
1. システム別。 最低取引回数のフィルターを通過した各マジックナンバーごとの取引数、純利益、最大ドローダウン。
2. 圧縮率。 各システム単独のドローダウンの合計と、統合された口座のドローダウンとの合計の比率。比率が1に近い場合は、システム間のパフォーマンスが連動しており、実質的に1つの戦略を複数回保有している状態です。比率が高い場合は、各システムの不調期が異なる時期に発生していることを意味します。
3. 相関。 期間ごとの損益に関する完全なペアワイズ・ピアソン相関行列、平均絶対値ρ、0.30未満のペアの割合、および名称別の最も相関の高いペア。同じ行列がヒートマップとしてチャート上に描画されます。淡い色は2つのシステムが互いに影響し合わないことを、赤色は共に勝ち負けすることを、青色は正反対の動きをすることを示します。
4. モンテカルロ。 同じ期間の結果を、数千回にわたり新しいランダムな順序に並べ替えたものです。過去のデータからは、ある特定の月順が得られました。市場は、同じ月を他の任意の順序で提示する可能性があり、その順序が変わると最悪の期間も変化します。 このスクリプトは、その範囲の50パーセンタイル、90パーセンタイル、95パーセンタイルにおけるドローダウンを報告し、個々の歴史的経路がその範囲内のどこに位置するかを示します。ほとんどのバックテスト結果は、良好な半分の範囲に収まります。
また、すべてのデータはCSVファイルに書き出されるため、スプレッドシート上でヒートマップとして表示することが可能です。
出力の読み方
圧縮率が最大の注目点です。2倍、3倍、10倍――これこそが、自身の通貨で、自身の取引において、分散投資がもたらした成果です。
平均絶対ロー(rho)は、ポートフォリオの構成が本質的に異なっているのか、それとも単に異なって見えるだけなのかを示します。多くのペアで0.15未満の値であれば、それは真のポートフォリオです。0.40を超える値は、1つのアイデアのバリエーションを運用していることを意味します。
モンテカルロのパーセンタイルは、やや気まずい指標です。過去のドローダウンがクラウドの60パーセンタイルに位置する場合、実際に発生した履歴よりも、他の履歴の3分の2の方が結果が良かったことになります。ポジションサイズは、単一のパスではなく、クラウドのテール部分に基づいて計画してください。

入力項目
- InpGrain- 損益系列のバケット化粒度:月次、週次、または日次。デフォルトは月次であり、これが最も安全です。疎な日次バケットで相関を計算すると、空のセルによって相関値がゼロに引き寄せられてしまうためです。選択した粒度で空のバケットが多くなりすぎる場合、スクリプトは警告を表示します。
- InpMCRuns- モンテカルロ再シャッフルの回数。デフォルトは2000です。100未満または100000を超える値はクリップされます。
- InpMinTrades- この値未満の決済済み取引数を有する「マジックナンバー」は、レポートおよび統合ポートフォリオから除外されます。これにより、同等の条件での比較が可能になります。デフォルトは 20 です。
- InpRefBalance- モンテカルロ法によるドローダウンをパーセンテージで表すためにのみ使用される基準残高。デフォルトは 10000。
- InpExportCSV- 期間ごとの損益表と相関行列を MQL5\Files に書き出します。ファイル名には「PCA_」というプレフィックスが付くため、他のツールのエクスポートファイルを上書きすることはありません。
- InpDrawPanel- チャート上にヒートマップを描画します。falseの場合、以前の実行で残されたパネルはすべて削除されます。
- InpMaskMagics- 実際のマジックナンバーを表示する代わりに、システムに S01、S02 などのラベルを付けます。スクリーンショットを撮る際に便利です。
- InpPanelX、InpPanelY- 左上隅からのパネルのオフセット(ピクセル単位)。
- InpPanelMaxPx- ヒートマップグリッドの最大辺の長さ。セルサイズはシステム数に応じて調整され、ポートフォリオが小さいほどセルは大きくなります。
- InpPanelMaxSys- この数を超えるシステムがある場合、グリッドに必要な矩形数がチャートの再描画に支障をきたすため、そのパネルはスキップされます。CSVエクスポートには依然として完全な行列が含まれます。デフォルトは64です。
- InpMCSeed- 0 を指定するとランダムなシードが生成され、それ以外の値を指定するとモンテカルロ法によるパーセンタイルが再現可能になります。図をレポートに組み込む場合は、固定のシードを使用してください。
注意事項と制限事項
ドローダウンは、選択された粒度での決済済み取引の結果に基づいて計算されます。これには、未決済ポジションの変動による損失は含まれていません。この変動による損失は、特に複数銘柄を扱うシステムでは、ドローダウン値よりもさらに深く、しばしば3分の1以上大きくなる場合があります。これらの数値は「実現ドローダウン」として解釈し、実際の純資産のドローダウンはこれよりも深刻であったことを念頭に置いてください。
エントリー取引とエグジット取引の両方がカウントされます。ほとんどのブローカーはエントリー時にも手数料を課すため、エグジット取引のみをカウントすると、コストが過小評価されてしまいます。
マジックナンバー「0」は、取引フィルターを通過した場合に含まれ、スクリプトはログにその旨を記載します。ほとんどの取引プラットフォームでは、このカテゴリには手動取引やデフォルトのマジックナンバーのまま放置されたEAが含まれるため、必ずしも単一のシステムによるものとは限りません。
相関性を意味あるものにするには、十分な期間が必要です。6ヶ月間重複する2つのシステムから数値は得られますが、信頼できるものではありません。
スクリプトの実行終了後もパネルオブジェクトはチャート上に残ります。スクリーンショットを撮る際にはこれが望ましい状態です。パネルを削除するには、InpDrawPanelをfalseに設定して再度実行してください。
このスクリプトが行わないこと
注文の発注、変更、決済は一切行いません。予測も行わず、シグナルも生成せず、ネットワークや外部サービスへの接続も行いません。取引履歴を読み取り、その内容を報告するだけです。
純粋なMQL5で記述されており、単一ファイルで構成され、外部ライブラリは一切使用していません。
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/75606
Sessionvolatilityheatmap
取引日の1時間あたりの平均価格帯をチャート上のヒートマップとして表示し、さらにローソク足の背景にアジア・ロンドン・ニューヨークの各セッションごとの色分けを施しています。これにより、単なる推測ではなく、銘柄が実際に動いたタイミングを把握することができます。
GoldLondonBreakout
XAUUSDはアジア時間のレンジ内でポジションをロックし、ロンドン市場の寄り付きに向けてOCOブレイクアウト注文(買いストップ/売りストップ)を仕掛けます。ストップはATRに基づいて設定し、ポジションサイズはリスク比率で決定します。インジケーターも裁量も一切使わず、レンジは推測ではなく測定に基づいて判断します。
SHK Heikin Ashi MACD Signal Arrows
ヘイキンアッシュのローソク足を表示し、売買の確認用矢印、オプションのMACDヒストグラムのダイバージェンスフィルタリング、および設定可能なアラート機能を備えたMetaTrader 5用チャートインジケーターです。
Trade Journal and Performance Analytics Dashboard
取引履歴を読み取り、勝率、プロフィットファクター、連勝・連敗の記録、エクイティ曲線を表示する、軽量なチャート上ダッシュボードです。戦略の設定は不要で、自身のデータのみを使用し、自動的に更新されます。