記事「多通貨エキスパートアドバイザーの開発(第12回):プロップトレーディングレベルのリスクマネージャーの育成」についてのディスカッション

 

新しい記事「多通貨エキスパートアドバイザーの開発(第12回):プロップトレーディングレベルのリスクマネージャーの育成」はパブリッシュされました:

開発中のEAには、ドローダウンを制御するための特定のメカニズムがすでに備わっています。しかし、これは過去の価格データに対するテストの結果に基づいているため、本質的には確率的です。したがって、ドローダウンは最大予想値を超える場合があります (ただし、確率は小さいです)。指定されたドローダウン レベルへの準拠を保証するメカニズムを追加してみましょう。

最近、「手動取引のリスクマネージャー」および「アルゴリズム取引のリスクマネージャー」のような記事でもリスク管理が取り上げられました。これらの記事では、事前に設定された取引パラメータに従うかを自動的に監視する仕組みが提案されています。たとえば、1日、1週間、または1ヶ月の間に設定した損失レベルを超えた場合に、取引を一時停止するという方法です。

プロップファームから少し教訓を得よう(第1回)-導入編」稿も非常に興味深い内容でした。この記事では、プロップトレーディング会社が資金提供を受けたいトレーダーに課す取引要件について考察しています。こうした会社に対してさまざまな評価が見られる一方で、明確なリスク管理ルールの適用は、取引を成功に導く重要な要素のひとつです。そのため、プロップトレーディング会社が用いるリスク管理モデルを参考にして、自分自身のリスクマネージャーを実装することは合理的といえるでしょう。

作者: Yuriy Bykov

 
素晴らしい仕事だ!記事をありがとう。
 
フィードバックをありがとう!今後も高いレベルを維持できるよう、最善を尽くします。
 

興味深い記事をありがとう!よくやった。

もしよろしければ、いくつかの論理的、技術的な点を明確にしたいと思います:

DailyLoss()メソッドでリスクをコントロールする際、株式のドローダウンのリスクは考慮されないということを正しく理解していますか?

配列を扱う際にマクロを使用するのはなぜですか?

ありがとうございます。

 

フィードバックをありがとう!

Правильно я понимаю, что при контроле рисков в методе DailyLoss() не учитывается риск просадки по еквити?

おそらく間違っています。DailyLoss() メソッドはドローダウンの大きさを評価しません。必要であれば、指定された最大ドローダウンレベルをパーセントから口座通貨に変換するだけです。比較自体はCheckDailyLimit() メソッドで行われます:

if(m_dailyProfit < -DailyLoss() && CMoney::DepoPart() > 0) { ... }

m_dailyProfitの 値はティック ごとに更新され、現在の資金(エクイティ)と日次レベル(残高値と 日次期間の開始時の資金の最大 値)の差として計算されます:

m_dailyProfit = m_equity - m_baseDailyLevel;

つまり、資金のドローダウンが考慮されているだけのようです。それとも、私が質問を誤解していたのでしょうか?


配列を扱うときにマクロを使うのはなぜですか?

コードをコンパクトにするためです。また、マクロではコードブロックをパラメータとして渡すことができますが、関数を使ってこのような操作を実装する場合、コードブロックをパラメータとして関数に渡すことはできません。

 
Yuriy Bykov ティック ごとに更新され、現在の資金 (エクイティ) と日次レベル( 日次期間の開始時の残高と資金の最大値) の差として計算されます:

つまり、資金のドローダウンが考慮されているだけのようです。それとも、私が質問を誤解していたのでしょうか?


コードをコンパクトにするためです。また、マクロではコードブロックをパラメータとして渡すことができますが、関数でそのような操作を実装する場合、関数にコードブロックをパラメータとして渡すことはできません。

長文でのご回答ありがとうございました。)新しい記事をお待ちしております!)

 

親愛なるYuriy、

コードをコンパイルしようとしているのですが、VirtualRiskManager.mqhで以下のエラーが発生します:

"Changed - undeclared identifier" on line CVirtualReceiver::Instance().Changed(); // 変更を受信者に通知します。

何度もコードをチェックしましたが、だめでした。私が何を見落としているのか説明してもらえますか?

このシリーズの次の記事を楽しみにしています。

ありがとうございました。

 

こんにちは!

申し訳ありません、編集したファイルをもう一つ添付するのを忘れていました。パート16から、プロジェクト ファイルの完全なアーカイブが各記事に添付されています。今回はそれをここに添付します。

ファイル:
MQL5.zip  80 kb
 
Yuriy Bykov プロジェクト ファイルの完全なアーカイブが各記事に添付されています。今回はそれをここに添付します。
ありがとうございました。