取引システムの構築(第4回):ランダム決済が取引の期待値に与える影響
はじめに
本連載第3回では、トレーダーが現実的な利益目標を設定し、システム統計を用いて目標を達成する方法を探りました。勝率とリスクリワードレシオ(RRR)ごとに、長期的な取引目標を達成するには独自のポジションサイズと取引頻度の組み合わせが必要であることを確認しました。複数エントリー戦略は取引量を増やす助けになりますが、その前に重要な概念を理解する必要があります。それがランダム勝率の管理です。
多くのトレーダーは、定められたエントリールールに従うものの、ポジションの管理で悩むことを経験したことがあるでしょう。しっかりとした分析に基づいてエントリーしたにもかかわらず、価格が変動し始めるとパニックに陥り、取引を早期に決済してしまうことはよくあります。これにより、利確や損切りに達する前にポジションを閉じることが増え、時間が経つにつれて資産曲線が損なわれ、持続的な下落傾向が生まれます。
これにより、重要な疑問が生じます。
- トレーダーはこの破壊的なパターンをどのように避けることができるのか
- 設定した利益目標に到達する前に取引を決済しても、口座資金を増やすことは可能か
- 利確のランダム性を戦略に組み込むことで、結果を改善できるのか
本記事では、モンテカルロシミュレーションを用いて、トレーダーがランダムな利益水準で取引を終了した場合の結果をモデル化し、これらの疑問に答えます。この手法を理解することで、利益確定のタイミングが一貫していなくても、システムが利益を維持できる設計をおこなうことが可能となります。
ランダム勝率を理解する
本連載第1回では、固定されたRRRごとに、収益性を達成するために超えるべき最小勝率の閾値が存在することを示しました。例は以下の通りです。
- RRR = 1.5の場合、最小勝率は40%
- RRR = 2.5の場合、最小勝率は28.6%に低下
- RRR = 3.0の場合、収益を出すには最低25%の勝率が必要
トレーダーが固定RRRを一貫して適用する場合、計算はシンプルです。収益性は、この閾値を上回る勝率を維持できるかどうかにかかっています。
しかし、実際には、多くのトレーダーが恐怖や焦り、あるいはトレーリングストップの仕組みによって、ランダムな利益水準で取引を決済することがあります。この行動により、RRRが変動し、それに伴って勝率も変動します。
例を考えてみましょう。
- 最初の50取引:勝率45%、RRR = 1.2
- 次の50取引:勝率60%、RRR = 0.3
- 最後の50取引:勝率30%、RRR = 2.0
合計でトレーダーは150回の取引をおこない、それぞれ異なる勝率とRRRが適用されています。ここで重要な問いは、このトレーダーは全体として収益を上げているのかということです。
答えは、取引システムの期待値を計算することで求められます。
期待値の公式
期待値は1回の取引あたりの平均リターンを測る指標であり、システムが収益性を持つかどうかを判断するために用いられます。
![]()
- E > 0の場合、システムは収益性がある
- E ≤ 0の場合、システムは収益性がない
異なるRRRと勝率の取引について期待値を合計することで、トレーダーはランダムな決済でも、全体として純利益を生み出せるかを評価できます。
ボラティリティストップによるランダム勝率別のランダム勝率の要因として、ボラティリティに基づくトレーリングストップがあります。たとえば、
- ATR (Average True Range)
- 標準偏差
- ボリンジャーバンド
のようなツールは、市場のボラティリティに応じてストップロス水準を動的に調整します。
ボラティリティが高い局面(例:1000ポイント)には、取引が長くオープンしたままになることがあり、利益を得たり、高いRRRで決済したりする可能性があります。逆に、ボラティリティが低い局面(例:200ポイント)には、取引が早めに決済されてしまい、RRRが低下することがあります。このように、RRRは市場状況に応じて変動するため、結果は必然的にランダム性を帯びます。
このランダム性はリスクとチャンスの両方をもたらします。一方で、トレーダーは小さな利益を早期に確定してしまう可能性があります。他方で、ボラティリティが高い局面には大きな値動きを捉えることも可能です。課題は、これらの結果のバランスを取り、期待値を維持することにあります。
モンテカルロシミュレーション:ランダム勝率の分析
ランダムな決済が収益性にどのように影響するかを理解するために、次のセクションではモンテカルロシミュレーションを用います。数百から数千のランダムな取引結果をモデル化することで、異なるランダムRRRや勝率のシナリオ下での期待値の振る舞いを観察できます。
この分析により、次のような実践的な知見を得られます。
- ランダムな決済が長期の資産曲線にどのような影響を与えるか
- トレーダーが戦略的にランダム性を活用して結果を改善できるか
- 実際の市場環境下で利益を生むシステムを設計するための実践的な調整方法
ケーススタディ:ランダム勝率による取引管理の評価
このケーススタディでは、固定RRR 4、勝率30%の取引システムを検証します。3人のトレーダーがこのシステムを使用しましたが、15回連続の損失を経験した後、異なるRRRレベルで利益を確定するなど、決済戦略を修正しました。
トレーダー1:プロフィールと期待値
トレーダー1のパフォーマンス、資産曲線の結果、ドローダウン、およびモンテカルロシミュレーションを用いた戦略の組み合わせを分析します。表1に、異なる勝率とRRRレベルにおけるトレーダー1の取引結果と期待値を示します。
表1:トレーダー1の取引プロフィール
| 勝率(%) | RRR | 期待値 |
|---|---|---|
| 20.92% | 2.61 | -0.244 |
| 36.22% | 2.15 | 0.142 |
| 51.91% | 1.84 | 0.475 |
| 61.24% | 0.55 | -0.049 |
| 76.55% | 0.27 | -0.029 |
分析の結果、3つの戦略(20.9%、61.2%、76.6%の勝率)は期待値がマイナスとなる一方、2つの戦略(36.2%、51.9%の勝率)はプラスの期待値を示しました。しかし、期待値の累積合計はプラスであるため、このトレーダーは戦略の組み合わせを適切に管理することで、全体として収益を得ることが可能です。
トレーダー1:資産曲線の視覚的確認
各システムで100取引を実施した結果、次のことが観察されました。
- 期待値がマイナスの戦略(勝率20.9%、61.2%、76.6%)では、資産曲線が下降した
- 期待値がプラスの戦略(勝率36.2%、51.9%)では、資産曲線が上昇した

図1:トレーダー1の取引システム
パフォーマンスを定量化するために、各戦略ごとに100回のモンテカルロシミュレーションを実施し、ボックスプロットを用いて資産およびドローダウンの結果を分析しました。
トレーダー1のドローダウン分析
トレーダー1のリスクとリターンのプロフィールを分析した結果、勝率とRRRに応じて潜在的ドローダウンに大きな変動があることがわかりました。最大ドローダウンは、勝率51.9%、RRR 1.84の組み合わせで発生し、口座資金の55%以上の損失が生じる可能性があります。逆に、最小ドローダウンは、勝率76.5%、RRR 0.27の組み合わせで発生し、損失は5%未満に抑えられます。
その他の勝率とRRRの組み合わせは、この2つの極端なケースの間に収まっており、リスクの幅は軽微な資産減少から深刻な資金ドローダウンまで多様であることを示しています。

図2:トレーダー1の各システムのドローダウン率
トレーダー1の資産曲線分析
トレーダー1のパフォーマンス評価は、勝率やRRRの変化に伴う資産曲線の挙動にも及びます。最大資産曲線は、勝率51.9%、RRR 1.84で観察され、口座資金は$2,000をわずかに超える水準に達します。一方、最小資産曲線は、勝率20.9%、RRR 2.61で観察され、口座資金は$500未満に低下します。
その他の勝率およびRRRの組み合わせによる資産曲線は、この2つの極端なケースの間に収まっており、取引パラメータによってパフォーマンスの結果が大きく変動することを示しています。

図3: トレーダー1の各システムの資産曲線
表2は図2と図3をまとめたものです。
表2:トレーダー1の平均・中央値資産および中央値ドローダウン
| 勝率(%) | RRR | 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|---|---|
| 20.92% | 2.61 | $789.00 | $777.00 | 26.99% |
| 36.22% | 2.15 | $1130.00 | $1132.00 | 21.57% |
| 51.91% | 1.84 | $1601.00 | $1596.00 | 39.03% |
| 61.24% | 0.55 | $950.00 | $946.00 | 10.29% |
| 76.55% | 0.27 | $978.00 | $988.00 | 7.77% |
主な知見
- 最高の中央値資産($1,595)は勝率51.9%、RRR 1.84で達成されるが、中央値ドローダウンは最も大きく(39%)なる。
- 最小のドローダウン(7.8%)は勝率76.5%、RRR 0.27で発生するが、資産は$1,000未満に制限される。
- 最もパフォーマンスが低いのは、勝率20.9%、RRR 2.61の組み合わせで、資産および期待値がマイナスであり、全体パフォーマンスに悪影響を与える。
統合取引管理戦略:トレーダー1
実際の取引環境をシミュレーションするため、各戦略を100取引の中でランダムに適用する500回のモンテカルロシミュレーションを実施しました。

図4: トレーダー1の統合取引管理アプローチ
トレーダー1のパフォーマンスを円グラフで示すと、異なる取引管理戦略が彼の取引の過程でどのように適用されたかがわかります。割り当ては5つのアプローチに比較的均等に分布していました。
- 勝率20.9%のシステム → 取引の18.6%
- 勝率36.2%のシステム → 取引の18.4%
- 勝率51.9%のシステム → 取引の20.8%
- 勝率61.2%のシステム → 取引の21.4%
- 勝率76.5%のシステム → 取引の20.8%
このほぼ均等な分布から、トレーダー1は特定のアプローチに過度に依存せず、複数のシステムに分散して実行していることがわかります。
これらの戦略を組み合わせた効果は、図5に資産成長およびドローダウンの両面で示されています。これらの可視化により、システムを組み合わせた場合の結果の幅が明らかになり、分散投資によってリスクが低減される一方で、最大資産の上昇が適度に抑えられることが示されています。

図5:トレーダー1の複合戦略結果
表3:トレーダー1の総合結果
| 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|
| $1092.00 | $991.00 | 18.38% |
主な知見
- ドローダウンは最小5%(勝率76.5%システムの影響)から最大55%超(勝率51.9%システムの影響)まで幅がある。
- 資産曲線は$500付近から$1,750付近まで変動する。
- $2,000に到達する確率は、勝率51.9%システム単独で使用した場合と比べて低下する。
- 平均資産($1,091)および中央値資産($990)は、安定的で中程度の口座成長を示している。
- 中央値ドローダウン(18.4%)は、最悪の単独システム(39–55%)に比べ大幅に低く、分散によるリスク低減効果が確認される。
戦略の最適化:トレーダー1
収益性を高めるため、トレーダー1は以下を検討すべきです。
- 勝率36.2%、RRR 2.15の戦略への依存度を増やすこと。期待値が高く、ドローダウンは約21.6%に制御され、資産は$1,500付近まで期待可能です。
- 勝率20.9%、RRR 2.61の戦略は削減または排除すること。常に期待値がマイナスで、資産も弱いため、全体パフォーマンスを下げる要因となります。
- 均等分配ではなく、期待値の高いシステムに重み付けした割り当てを検討し、成長とリスクのバランスを改善すること。
トレーダー2:プロフィールと期待値
トレーダー2の取引プロフィールは、5種類のRRRおよびそれぞれに対応する勝率に基づいて構築されています。各システムに対応する期待値は表4に示されています。
表4:トレーダー2の取引プロフィール
| 勝率(%) | RRR | 期待値 |
|---|---|---|
| 21.46% | 2.98 | -0.147 |
| 36.65% | 1.80 | 0.026 |
| 55.09% | 1.28 | 0.256 |
| 56.41% | 1.11 | 0.188 |
| 77.38% | 0.78 | 0.379 |
表4から明らかなように、期待値がマイナスなのは勝率21.5%、RRR 2.98のシステムのみです。残りの4つのシステムはいずれも期待値がプラスであり、特に勝率55.1%および77.4%のシステムは強いパフォーマンスが期待できます。これは、トレーダー2がこの分散型の戦略を適用した場合、長期的にプラスの成果を得る可能性が高いことを示しています。
トレーダー2:資産曲線の視覚的確認
100取引における資産曲線を視覚的に確認すると、明確なパターンが見えてきます。
- 勝率21.5%のシステムは予測どおりエクイティカーブが下降し、期待値のマイナスを反映している
- 勝率36.7%および56.4%のシステムは緩やかに成長し、$1,000〜$1,100の損益分岐付近で推移している
- 勝率55.1%および77.4%のシステムは力強い上昇カーブを示し、収益性に最も寄与している

図6: トレーダー2の取引システム
統計的信頼性を評価するため、各システムについて100回のシミュレーションを実施し、資産およびドローダウンをボックスプロットで分析しました。
トレーダー2のドローダウン分析
トレーダー1と同様に、各取引システムは勝率とRRRの組み合わせに応じて固有のドローダウン範囲を示します。トレーダー2では、勝率77.4%、RRR 0.78の組み合わせで最大ドローダウンが観察され、口座資金の約45%の損失が発生する可能性があります。最小ドローダウンは、勝率56.4%、RRR 1.11で発生し、損失は約5%に抑えられます。
その他の勝率とRRRの組み合わせは、この上下限の間に収まり、システム固有のリスクがパラメータに敏感であることを示しています。

図7: トレーダー2の各システムのドローダウン率
トレーダー2の資産曲線分析
トレーダー2の取引アプローチでは、最大資産曲線は勝率77.4%、RRR 0.78で観察され、口座資金は$1,700をわずかに超えます。一方、最小資産曲線は勝率21.5%、RRR 2.98で観察され、資産は$600未満に低下します。
その他の勝率とRRRの組み合わせによる資産曲線は、この2つの境界内に収まり、成功確率とリスクリワードのバランスがパフォーマンス結果に大きく影響することを示しています。

図8: トレーダー2の各システムの資産曲線
表5は、図7と図8の主な結果をまとめたものです。
表5:トレーダー2の平均・中央値資産および中央値ドローダウン
| 勝率(%) | RRR | 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|---|---|
| 21.46% | 2.98 | $858.00 | $837.00 | 23.11% |
| 36.65% | 1.80 | $1008.00 | $999.00 | 17.11% |
| 55.09% | 1.28 | $1295.00 | $1295.00 | 25.62% |
| 56.41% | 1.11 | $1214.00 | $1202.00 | 20.76% |
| 77.38% | 0.78 | $1442.00 | $1445.00 | 31.66% |
主な知見
- 最大の資産成長は、勝率77.4%システム(平均資産 ≈ $1,443)で達成される。
- 最低のパフォーマンスは、勝率21.5%システム(平均資産 ≈ $858)。
- 中央値ドローダウンは、36.7%システムで約17%、77.4%システムで30%超と幅がある。
- 高勝率の戦略は成長が強い一方で、ドローダウンも深くなる傾向がある。
統合取引管理戦略:トレーダー2
500回のモンテカルロシミュレーションを実施し、100取引において5つの戦略をランダムに組み合わせました。

図9: トレーダー2の統合取引管理アプローチ
トレーダー2が戦略を適用した割合は以下の通りです。
- 勝率21.5%のシステム → 取引の22.0%
- 勝率36.7%のシステム → 取引の20.4%
- 勝率55.1%のシステム → 取引の18.0%
- 勝率56.4%のシステム → 取引の20.2%
- 勝率77.4%のシステム → 取引の19.4%
この分布は、単一の戦略に偏らない分散型アプローチであることを示しています。
これらの戦略を組み合わせた結果は、図10に資産成長およびドローダウンで示されています。

図10:トレーダー2の複合戦略結果
表6:トレーダー1の総合結果
| 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|
| $1167.00 | $1169.00 | 23.14% |
主な知見
- ドローダウンは5%から45%まで幅があり、最良と最悪のシステムの極端な値を反映している。
- 資産曲線は$600〜$1,800で変動し、弱い個別システムに比べ、分散によって最大資産が向上している。
- 勝率36.7%および56.4%のシステムは安定性を提供しますが、資産の拡大にはあまり寄与していない。
- 100取引後に$2,000資産を達成することは統計的に極めて低い確率であり、観測された最大値の範囲外である。
戦略の最適化:トレーダー2
収益性を戦略的に向上させるため、トレーダー2は以下を検討できます。
- 勝率55.1%、RRR 1.28のシステムにより多くのウェイトを割り当てること。成長とドローダウンのバランスが良好です。
- 勝率21.5%、RRR 2.98の戦略への依存を減らすこと。パフォーマンスを一貫して低下させる傾向があります。
トレーダー3:プロフィールと期待値
トレーダー3の取引プロフィールは5つの異なる取引管理戦略で構成されており、それぞれ勝率、RRR、期待値で定義されています。
表7:トレーダー3の取引プロフィール
| 勝率(%) | RRR | 期待値 |
|---|---|---|
| 39.64% | 2.93 | 0.556 |
| 41.55% | 1.58 | 0.074 |
| 52.51% | 1.53 | 0.331 |
| 58.29% | 1.24 | 0.305 |
| 60.36% | 0.43 | -0.139 |
この内訳から、4つの戦略は期待値がプラスであり、1つ(勝率60.4%、RRR 0.43)のみがマイナスです。すべての戦略の累積期待値はプラスであるため、トレーダー3の全体戦略は収益を生む可能性が高いことが示されています。
トレーダー3:資産曲線の視覚的確認
パフォーマンス評価のため、各戦略について100取引をシミュレーションしました。 資産曲線の視覚的確認は図11に示されています。
- 期待値がマイナスの戦略(勝率60.4%、RRR 0.43):時間の経過とともに資産が着実に減少する。
- 中程度のプラス期待値戦略(勝率41.6%、52.5%、58.3%):安定的に資産が増加するが、ボラティリティは異なる。
- 高RRR戦略(勝率39.6%、RRR 2.93):最も高い資産成長を示しますが、上下に大きく振れる変動も伴う。

図11: トレーダー3の取引システム
統計的信頼性を評価するため、各システムについて100回のシミュレーションを実施し、資産およびドローダウンをボックスプロットで分析しました。
トレーダー3のドローダウン分析
トレーダー1とトレーダー2のケース同様、各取引システムは勝率とRRRの組み合わせによって固有のドローダウンプロフィールを示します。最大ドローダウンは、勝率39.6%、RRR 2.93の組み合わせで発生し、口座資金の約65%の損失が生じます。最小ドローダウンは、勝率60.4%、RRR 0.43の組み合わせで発生し、資産減少は約5%に抑えられます。
その他の勝率とRRRの組み合わせは、この2つの極端な値の間に収まり、システムのパフォーマンスが確率とリスクリワードの関係に強く依存することを確認できます。

図12: トレーダー3の各システムのドローダウン率
トレーダー3の資産曲線分析
トレーダー3の取引方法において、最大資産曲線は勝率39.6%、RRR 2.93で達成され、口座資金は約$2,700に達します。一方、最小資産曲線は勝率60.4%、RRR 0.43で観察され、資産は約$750に低下します。
その他の勝率とRRRの組み合わせによる資産曲線は、この2つの境界内に収まっており、成功確率とリスクリワードのバランスが結果に大きく影響することを示しています。

図13: トレーダー3の各システムの資産曲線
表8は図12と図13をまとめたものです。
表8:トレーダー3の平均・中央値資産および中央値ドローダウン
| 勝率(%) | RRR | 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|---|---|
| 39.64% | 2.93 | $1775.00 | $1768.00 | 45.41% |
| 41.55% | 1.58 | $1080.00 | $1053.00 | 16.34% |
| 52.51% | 1.53 | $1387.00 | $1363.00 | 28.93% |
| 58.29% | 1.24 | $1353.00 | $1369.00 | 28.55% |
| 60.36% | 0.43 | $861.00 | $852.00 | 16.03% |
主な知見
- 勝率39.6%システムは、平均および中央値資産が最も高い一方、ドローダウンも最大である。
- 勝率52.5%および58.3%システムは、50%未満のドローダウンで堅実な資産成長を実現し、より持続可能である。
- 勝率60.4%システムは、期待値がマイナスであるため、パフォーマンスを下げる要因となる。
統合取引管理戦略:トレーダー3
500回のモンテカルロシミュレーションを実施し、100取引において5つの戦略をランダムに組み合わせました。
図14: トレーダー3の統合取引管理アプローチ
戦略の割り当ては次のとおりです。
- 勝率39.6%のシステム → 取引の19.4%
- 勝率41.6%のシステム → 取引の19.6%
- 勝率52.5%のシステム → 取引の25.4%
- 勝率58.3%のシステム → 取引の14.4%
- 勝率60.4%のシステム -> 取引の21.2%
この分布は分散型アプローチを表しており、戦略配分に意図的な不均衡を導入することで全体パフォーマンスを向上させる設計となっています。
これらの戦略を組み合わせた結果(資産成長およびドローダウンパターン)は、図15に示されています。

図15:トレーダー3の複合戦略結果
表9:トレーダー3の総合結果
| 平均資産($) | 中央値資産($) | 中央値ドローダウン(%) |
|---|---|---|
| $1291.00 | $1263.00 | 25.48% |
主な知見
- ドローダウンは5%〜65%の範囲で、単一システムの極端な値を反映している。中央値ドローダウン25.48%は、管理可能な中程度のリスクを示し、高リスクシステムよりも制御力が強いことを示す。
- 資産曲線は$400〜$2,250で変動する。平均資産($1,290.77)と中央値資産($1,263.45)はほぼ一致しており、シミュレーション全体で安定した収益性を示している。
- 統合戦略によって、最大資産は最も強力な単一システム($2,700、勝率39.6%)より低くなるが、成長の平滑化、ボラティリティの低減、$2,000以上の安定した結果を実現している。
戦略の最適化:トレーダー3
- 勝率52.5%および58.3%システムへの配分を増やすこと。50%未満のドローダウンで持続可能な資産成長を提供します。
- 勝率60.4%システムを削減または排除すること。期待値がマイナスで、収益性を低下させます。
- 勝率39.6%システムの配分を減らすこと。収益性は高いものの、極端なドローダウンが生じるため、厳格なポジションサイズ管理が必要です。
コード構造
以下のコード行は、他の取引シナリオを生成するための入力として使用されます。
# Initial parameters initial_equity = 1000 risk_per_trade = 0.01 # 1% risk trades_per_run = 100 # Step 1: Generate 5 random win-rates (10%-95%) and 5 random RRR (0.1 - 5) np.random.seed(94) win_rates = np.random.uniform(0.10, 0.80, 5) rrr = np.random.uniform(0.1, 3, 5)
- 初期パラメータ
- initial_equity= 1000: 口座の初期残高を$1,000に設定します。以降のすべての取引はこのベース値を基におこなわれ、成長、損失、ドローダウンを測定することができます。
- risk_per_trade= 0.01: トレーダーは1取引あたり口座残高の1%をリスクとして取ります。口座残高が$1,000の場合、1取引のリスクは$10です。この変数はポジションサイズを制御し、現実的な資金管理をシミュレーションするのに役立ちます。
- trades_per_run = 100: 各モンテカルロ実行で100取引をシミュレートします。これにより、トレンドや連勝と連敗、長期的な期待値を観察するのに十分な統計サンプルが得られます。
- 複数の取引環境を調査するために、コードはランダムな勝率とRRRを生成します。
- np.random.seed(94): ランダムシードを設定し、シミュレーションを再現可能にします。コードを実行するたびに同じ乱数が生成され、結果の一貫性が保たれます。異なるランダム性を許可する場合やシード値を変更する場合は、コメントアウトしてください。
- win_rates = np.random.uniform(0.10, 0.80, 5): 10%〜80%の範囲で5つのランダムな勝率を生成します。
- rrr = np.random.uniform(0.1, 3, 5): 0.1〜3.0の範囲で5つのランダムなリスクリワード比を生成します。
トレーダー1、トレーダー2、トレーダー3で提示されたトレーディングシナリオを再現するには、Pythonコード内で乱数生成に使用するシード番号を変更します。各シナリオで使用されたシード値は以下の通りです。
- トレーダー1:シード値 = 42
- トレーダー2:シード値 = 30
- トレーダー3:シード値 = 94
これらのシード値を適用してコードを再実行することで、シミュレーションで観察された異なる取引結果を再現できます。これにより、利確レベルのランダム性が全体のパフォーマンスにどのように影響するかを示すことが可能です。
戦略の構築:ランダム利確レベルの実演
ランダムな利確レベルの概念を、固定損切りラインと一貫したエントリー条件を維持しながら理解するために、簡単な取引戦略を作成しました。この戦略は、パラボリックSARとDeMarker(デマーカー)という2つのよく知られたテクニカル指標を組み合わせて、エントリーの可能性を特定します。
より多くのトレーダーが利用できるよう、このエキスパートアドバイザー(EA)はMetaTrader 4およびMetaTrader 5の両方のプラットフォーム向けに開発されています。本章では、MetaTrader 5版に焦点を当て、そのコード構造の簡単な説明をおこない、実際にどのように概念が実装されているかを読者に理解していただきます。
// Input parameters input double LotSize=0.01; // Lot Size input double pStep = 0.01; // Psar Step input double pMax = 0.1; // Psar Max input int DemPeriod = 14; // DeMarker Period input double Overbought = 0.7; // Overbought >0.5 & < 1 input int StopLoss=50; // Stop Loss (pips) input int MinRandomTP = 30; // MinRandom TakeProfit (pips) input int MaxRandomTP=200; //MaxRandom TakeProfit double OverSold = 1- Overbought;
入力パラメータは柔軟性を提供するよう設計されており、トレーダーはコアコードを変更せずに自身の好みに合わせて設定を調整できます。各パラメータは、取引戦略の挙動を定義する特定の目的を持っています。
- ロットサイズ: LotSizeパラメータは、1ポジションあたりの取引量、つまりトレーダーがリスクを取る資金の量を決定する。デフォルトでは0.01ロットに設定されており、保守的な取引やテストに適している。
- pStepとpMax:pStepとpMaxは、パラボリックSARの加速因子と最大加速を制御する。これらの値はSARが価格変化にどれだけ迅速に反応するかに影響する。デフォルト値はpStepが0.01、pMaxが0.1で、トレンドフォローの設定においてバランスの取れた感度を提供する。
- DemPeriod:DemPeriodパラメータは、DeMarker指標が値を計算する際の期間を指定する。デフォルトは14に設定されている。
- 買われすぎと売られすぎのレベル: Overboughtパラメータは、DeMarker指標の上限値を定義し、潜在的な反転ゾーンを示す。0.5~1.0の範囲で設定すべきである。Oversoldレベルは「1 – Overbought」として自動計算され、上下対称の範囲を確保する。
- Stoploss:StopLossパラメータは、1取引あたりのリスク限度をピップスで指定する。必要に応じてポイントに変換される。デフォルトは50ピップスで、市場の変動に対して適度な余裕を提供する。
- MinRandomTPとMaxRandomTP:MinRandomTPとMaxRandomTPパラメータは、利確レベルの最小値と最大値を定義する。これらの値はランダム利確を生成する関数に渡され、各取引に対して異なる利確目標を設定する。デフォルトは最小30ピップス、最大200ピップスで、市場条件の変化をシミュレーションするのに適している。
//---Time to start and end trade double startTrade = 1; //StartTradeTime(hrs) double endTrade = 22; // EndTradeTime(hrs) bool IsTimeToTrade() { MqlDateTime brokertime_struct; TimeCurrent(brokertime_struct); double brokertime = brokertime_struct.hour; return (brokertime > startTrade && brokertime <= endTrade) ? true : false; }
取引システムは、特定の時間帯内でのみ稼働するよう設定されており、活発な市場時間帯にのみ取引が実行されます。この設定では、取引時間を1時から22時までに設定しています。
IsTimeToTrade()関数は、現在の市場時間が定義された取引時間内にあるかどうかを確認します。この条件を満たす場合にのみ取引操作が進行し、満たさない場合はシステムが一時停止し、閑散時間帯や過度に変動する時間帯でのエントリーを防止します。
ランダム利益確定レベルの生成
//--- Seed random generator once when EA is loaded MathSrand(TimeCurrent());
EAの初期化フェーズで、乱数生成器はTimeCurrent()を用いてシードされます。これにより、各アルゴリズム実行時にランダム値が一意に生成され、利確レベルが毎回同じシーケンスにならないようにしています。
乱数シードを現在の市場時間にリンクさせることで、取引結果に自然な変動が生まれ、動的な市場条件をよりリアルにシミュレーションすることが可能です。
int RandomTakeProfit(int min, int max) { // Normalize MathRand() into 0.0 – 1.0 double rnd = (double)MathRand() / 32767.0; // Scale to desired range [min, max] int result = (int)MathRound(min + rnd * (max - min)); Print("TPValues: ",result); return result; }
RandomTakeProfit()関数は、定義された範囲内で動的な利確目標を作成する役割を担っています。この関数は、最小および最大の利確値という2つの入力パラメータを受け取り、その範囲内でランダムな利確レベルを生成し、EAが各取引に適用できるようにします。
透明性を高め、パフォーマンスの監視を支援するために、Print()文がコードに組み込まれています。この関数は、開かれた各取引のランダムに生成された利確値をターミナルに出力し、利確目標の変動がシステム全体のパフォーマンスにどのように影響するかをトレーダーが追跡し、分析できるようにします。
エントリー基準の定義
この取引システムは、パラボリックSARとDeMarker指標を組み合わせた、シンプルながら効果的なルールベースのアプローチに従い、エントリーシグナルを判断します。
//--- Sell condition bool sellSignal = psar[0] > high[0] ? (demCurrent[0] > Overbought && demPrevious[0] < Overbought) ? true : false : false; //--- Buy condition bool buySignal = psar[0] < low[0] ? (demCurrent[0] < OverSold && demPrevious[0] > OverSold) ? true : false : false;
売り条件
パラボリックSARがローソク足の高値より上に位置した場合、売りの取引が発動します。これは価格に下方圧力がかかる可能性を示します。同時に、DeMarker指標が買われ過ぎゾーンに突入している必要があり、これにより市場が上昇過多となり、反落の準備が整っていることを確認します。
逆に、パラボリックSARがローソク足の安値より下に位置する場合、買いの取引が発動します。これは上方への勢いが発生する可能性を示します。DeMarkerインジケーターも同時に売られ過ぎゾーンに突入している必要があり、これにより売り圧力が弱まり、上昇反転の可能性があることを示唆します。
これらの条件を組み合わせることで、誤シグナルを除外し、トレンド指標とモメンタム指標を整合させることにより、取引のタイミング精度を向上させることを目的としています。
ランダム利確結果
GBPUSD通貨ペアのH1時間足を用いてバックテストを実施し、利確条件をランダムに設定した場合の戦略のパフォーマンスを評価しました。テスト中、各取引は同一のエントリー条件と固定損切りを用いて実行され、利確レベルのみが事前に定義された範囲内でランダムに選択されました。
このアプローチにより、エントリー条件やリスクパラメータは同一であっても、決済ポイントが異なる一連の取引が生成されました。重要なのは、取引が同一のエントリーシグナルを共有していたとしても、決済条件(本ケースではランダム利確レベル)が異なることで、取引結果に違いが生じる点です。これにより、EAの挙動に多様性と動的変化がもたらされ、市場状況の変化により適応しやすくなります。
バックテストの結果は、図16および図17に示されています。これらの図では、ランダムに生成された利確レベルに応じた資産の推移および取引の分布が確認できます。

図16:各エントリーにおけるランダム利確レベル

図17:ランダム利確グラフ
結論
取引の一貫性は、エントリーの質よりもむしろ、構造化された決済管理に依存します。感情的でランダムな決済は期待値を破壊しますが、定量化され、ルールに基づいた変動は期待値を向上させる可能性があります。すべての決済を追跡し、大規模なサンプルで期待値を分析することで、直感をデータに変換することができます。利益は固定の利確目標から生まれるのではなく、期待値から生まれます。頻繁で小さな勝ちでも、期待値が正であれば、稀に得られる大きな勝ちよりも優れた結果をもたらすことがあります。
構造化されたランダム性、たとえばボラティリティに基づくトレーリングストップとバックテストで検証された最小利益閾値を組み合わせることで、不確実性を体系化し、利益を保持することが可能です。その後、モンテカルロテストによって、これらのルールが様々な市場条件下でも機能するかを検証し、ランダム性を優位性に変えることができます。
次に、このフレームワークを複数のエントリー戦略およびポジションのスケーリング管理に拡張していきます。
MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/19211
警告: これらの資料についてのすべての権利はMetaQuotes Ltd.が保有しています。これらの資料の全部または一部の複製や再プリントは禁じられています。
この記事はサイトのユーザーによって執筆されたものであり、著者の個人的な見解を反映しています。MetaQuotes Ltdは、提示された情報の正確性や、記載されているソリューション、戦略、または推奨事項の使用によって生じたいかなる結果についても責任を負いません。
MetaTrader 5機械学習の設計図(第3回):トレンドスキャンラベリング法
古典的な戦略を再構築する(第16回):ダブルボリンジャーバンドブレイクアウト
知っておくべきMQL5ウィザードのテクニック(第82回):DQN強化学習でTRIXとWPRのパターンを使用する
MQL5での取引戦略の自動化(第36回):リテストとインパルスモデルによる需給取引
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索