アイデアの作者 — Vitaly、MQL5コードの作者 — barabashkakvnです。
このシステムトレーディングは、ターミナル内のすべてのオープンポジションを管理します(全シンボルとすべてのマジックナンバーに対応)。もし合計利益が「minimum_profit」に達していない場合、EAは待機します。
合計利益が「minimum_profit」に達した場合、EAは利益のドローダウンの割合を設定し、トラッキングを開始します。
「percent_of_profit」はパーセントで指定されます。例えば、minimum_profitが1000、percent_of_profitが20の場合、すべてのオープンポジションの合計利益が1000に達します。もし利益が800(1000 - 20%)に落ちると、ポジションはクローズされます。利益が続けて増加し、例えば2000に達した場合、許容ドローダウンは400(2000 - 20%)となります。つまり、合計利益1600で全ポジションがクローズされます。固定のドローダウン制限は設けていません。絶対値を使用することは有用ではないと考えているからです。
理論的には、パーセントを0に設定することも可能です。これは合計テイクプロフィットとして機能します。パーセントを100に設定すると、トレードはブレイクイーブンとして機能します(いくつかのオーダーがクローズされると、他のオーダーは損失を抱える可能性があることを忘れずに)。
注意!このシステムトレーディングは、3秒間隔で動作します:
void OnTick() { //--- 3秒ごとに動作を許可 static datetime prev_time=0; datetime time_current=TimeCurrent(); if(time_current-prev_time<3) return; prev_time=time_current; //--- }