Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 837

 
Aleksey Vyazmikin:

Sind Sie in der ganzen Geschichte auf der Suche nach Nachschub? So funktioniert es bei mir mit dem Equity Drawdown

Der Mann braucht nicht alles abzuschließen, er braucht nicht in der Geschichte zu suchen, schrieb er:

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

Fragen von Anfängern MQL5 MT5 MetaTrader 5

Denis Pershin, 2018.03.22 21:13

Ich habe 500 eingezahlt, und wenn mein Guthaben um 10 % gestiegen ist, kann ich diese 10 % abheben, vorausgesetzt, die aktuelle Inanspruchnahme beträgt nicht mehr als 5 %. Diese Eingaben sind in der Funktion enthalten, es funktioniert nicht, das Wachstum und den Drawdown genau zu berechnen.

Und danach, so geht es aus der Botschaft hervor:

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

TesterRücknahme

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

Der Mann muss nicht alles abschließen, er muss nichts in der Geschichte nachschlagen, schrieb er:

Nun, um die Klarheit der Botschaft zu unterstreichen:

TesterRücknahme

Ich dachte, der Mann muss eine Entscheidung über den Rückzug in der Realität treffen, nachdem er den Handel zuvor gestoppt hatte...

Ich habe nicht verstanden, was er wollte.

 
Aleksey Vyazmikin:


Das ist richtig, ich brauche, um einen Betrag auf das Gleichgewicht während der Prüfung zu halten, ziehen Sie die Erhöhung, der Roboter ist ohne Reinvestition, und handelt ein Raster auf einer Martingale-Basis, so gibt es ständig offene Trades auf dem Markt

 
Denis Pershin:

In Ordnung, ich muss einen Betrag auf dem Gleichgewicht während der Prüfung zu halten, zurückziehen Inkrement, Roboter hat keine Reinvestition, und handelt ein Raster auf martingale, so gibt es ständig offene Trades auf dem Markt

Nun, auf jeden Fall, die Logik nicht ändern, merken Sie sich die anfängliche Balance und beobachten Sie das Wachstum und Drawdown, dann zurückziehen ... Brauchen Sie etwas zum Code?

 
Aleksey Vyazmikin:

Wenn Sie mir helfen können, helfen Sie mir bitte mit dem Code:

// 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:

Wenn es Ihnen nichts ausmacht, helfen Sie mir mit dem Code:

Sie müssen den freien Spielraum berücksichtigen, nicht das Eigenkapital!

Es kann eine Situation eintreten, in der der Drawdown es Ihnen ermöglicht, einen Gewinn aus dem Guthaben zu entnehmen, aber es gibt eine große Marge, und nach der Entnahme wird der Drawdown größer sein als Ihre 5 %.

Ich kann dir im Moment nicht mit Formeln im Code helfen, vielleicht kann sich jemand anderes anschließen und dir einen Code schreiben, er ist nicht lang, aber man muss ein wenig nachdenken)
 
Denis Pershin:

Wenn Sie nichts dagegen haben, helfen Sie mir, den Code zu vervollständigen:

Ich verstehe das nicht... Brauchen Sie eine Formel, um den Prozentsatz der Mittel aus dem Saldo zu berechnen?

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

Wenn es Ihnen nichts ausmacht, helfen Sie mir, den Code fertigzustellen:

Hier ist es. Die Logik ist die, die ich vorgeschlagen habe, und wenn etwas falsch ist, werden wir es korrigieren:

//===============================================================================================
//--------------------------------- Снимает прибыль в тестере ----------------------------------+
//===============================================================================================
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:


Danke, genau das, was ich brauchte)
 
Nilog:

Eine Indikatordatei gibt es nur in ex5.

Kann ich die iCustom-Funktion verwenden, um ihn in einen multitemporalen Indikator zu verwandeln? Es nimmt also Werte aus ex5 aus anderen Perioden und zeichnet sie in das aktuelle Diagramm?

Das ist möglich.