初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 837

 
Aleksey Vyazmikin:

全編に渡って、補充を求めているのか?エクイティのドローダウンについてですが、私の場合はこうです。

男はすべてを閉じる必要はない、歴史の中で何かを探す必要はない、と彼は書いている。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

初心者の方からの質問 MQL5 MT5 MetaTrader 5

デニス・ペルシン さん 2018.03.22 21:13

私は500を預け入れ、残高が10%増加した場合、現在のドローダウンが5%以上でない限り、この10%を引き出す。これらの入力は関数内にあり、成長率とドローダウンを正確に計算することはできません。

そして、それに続くのが、メッセージからも明らかなように。

if(_ldd < _dd) TesterWithdrawal(_dep-_bal); // Снимаем: нач.депозит - баланс }

テスター退会

Документация по MQL5: Общие функции / TesterWithdrawal
Документация по MQL5: Общие функции / TesterWithdrawal
  • www.mql5.com
Общие функции / TesterWithdrawal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

男はすべてを閉じる必要はない、歴史で調べる必要はない、と書いている。

まあ、いかに明確なメッセージを伝えるかということのフォローとして。

テスター退会

以前、トレードを止めたこともあり、男はリアルで撤退の判断をする必要があるのでは...と思いました。

その理由は、彼が何を望んでいるのかがわからなかったからです。

 
Aleksey Vyazmikin:


そうです、私はテスト中にバランスに1金額を維持する必要があり、増加を撤回し、ロボットは再投資なしで、マーチンゲールベースでグリッドを取引するので、市場で常にオープントレードがあります。

 
Denis Pershin:

私はテスト中にバランスで1つの金額を維持する必要があり、インクリメントを撤回し、ロボットは再投資を持っておらず、マーチンゲールでグリッドを取引するので、市場で常にオープントレードがある。

まあ、いずれにせよ、最初の残高を覚えておいて、成長とドローダウンを監視し、その後、撤退する...というロジックは変わりません。コードに何か必要なものはありますか?

 
Aleksey Vyazmikin:

もしよろしければ、コードを教えてください。

// dep=нач.депозит, growth=прирост %, _dd=допустимая просадка %
void Withdraw(double _dep=500, double _growth=10, double _dd=5) {
  double _bal=AccountInfoDouble(ACCOUNT_BALANCE);
  double _eq=AccountInfoDouble(ACCOUNT_EQUITY);
  double _ldd="что сюда?";
  
   if(_ldd < _dd) TesterWithdrawal(_bal-dep); // Снимаем: баланс - нач.депозит
 }
 
Denis Pershin:

差し支えなければ、コードを手伝ってください。

自己資本ではなく、フリー・マージンを考慮する必要があるのです

ドローダウンで残高から利益を引き出せるが、マージンが大きく、出金後のドローダウンが5%を超えてしまうという事態が発生することがあります。

私は今、コードの数式であなたを助けることはできません、多分他の誰かが接続し、あなたにコードを書くでしょう、それは長いではありませんが、あなたは少し考える必要があります)
 
Denis Pershin:

もしよろしければ、コードを完成させるのを手伝ってください。

理解できない...残高から資金の割合を算出する計算式は必要ですか?

_ldd=100-_eq/_bal*100;
 
Denis Pershin:

もし差し支えなければ、コードを完成させるのを手伝ってください。

お待たせしました。ロジックは私が提案したもので、何か問題があれば修正します。

//===============================================================================================
//--------------------------------- Снимает прибыль в тестере ----------------------------------+
//===============================================================================================
void Withdraw(double _dep=500, double _growth=10, double _dd=5) {
 double _now_bal=0,_now_mg=0,_now_pr=0,_surplus=0,_GR=0,_DR=0;
 _now_bal= AccountInfoDouble(ACCOUNT_BALANCE);
 _now_mg = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
 _now_pr = _now_bal-_dep; // Сумма к снятию
 _surplus= _now_mg-_now_pr; // Считаем остаток после снятия
 _GR = (_now_bal-_dep)/_dep*100; // Прирост %
 _DR = (_surplus-_dep)/_dep*100; // Просадка %
 //Comment(DTS(_GR,2)," = ",DTS(_DR,2));
  if(_GR>_growth && _DR<_dd) TesterWithdrawal(_now_pr); // Снимаем
 }
 
Vitaly Muzichenko:


ありがとうございます、ちょうど私が必要としていたものです)
 
Nilog:

ex5のみインジケーターファイルがあります。

iCustom関数を使って、多時間のインジケーターにすることはできますか?他の期間のex5から値を取って、現在のチャートに描画するのですね。

可能です。

理由: