Zur Berücksichtigung von Fachleuten.

 

Es ist von einer maximalen Inanspruchnahme die Rede. Jemand hat angedeutet, dass das Prüfgerät den Wert nicht richtig gemessen hat. Ich beschloss, das zu überprüfen. Ich habe einen Code geschrieben und ihn zu meinem Expert Advisor hinzugefügt und ihn im Testmodus ausgeführt. Die Ergebnisse stimmten mit denen des Testers überein. Der Code ist unten angegeben.

Bitte überprüfen Sie die Korrektheit des Algorithmus und fragen Sie, ob der maximale Drawdown ohne Berechnung der Maxima und Minima berechnet werden kann.

double MaxDrawDown;
int deinit() {
 Print("MaxDrawDown=",MaxDrawDown);
   return (0);
} 

start(){ 
  static double MaxEquity;
  static double MinEquity;
         double DrawDown;
  static bool flag;
 
  if(!flag)
    {
     MaxEquity=AccountEquity();
     MinEquity=AccountEquity();
     flag = true;
    } 
  if(AccountEquity()>MaxEquity) 
    {MaxEquity=AccountEquity();MinEquity=AccountEquity();}
  
  if(AccountEquity()<MinEquity) 
    {MinEquity=AccountEquity();}
  
  DrawDown=MaxEquity-MinEquity;
  
  if(DrawDown>MaxDrawDown ) 
    {MaxDrawDown=DrawDown;}
// ............остальной код советника
 

Was meinen Sie mit nicht berechnen? Während des Laufs hatten Sie sowohl Maximum als auch Minimum...

Das Problem ist, dass Sie den Drawdown auf diese Weise nicht online erfahren können - Sie müssen ihn berechnen.

 
FAQ:

Was meinen Sie mit "nicht berechnen"? Während des Laufs hatten Sie sowohl Maximum als auch Minimum...

Das Problem ist, dass Sie die Höhe der Inanspruchnahme nicht wissen, wenn Sie online sind - Sie müssen sie berechnen.

Die Frage nach Hochs und Tiefs kam im Zusammenhang mit dem Beitrag OnGoing auf, der sich fragte, wozu die Hochs und Tiefs gut sind. Also dachte ich, vielleicht gibt es eine andere Möglichkeit, den maximalen Drawdown zu berechnen, ohne die Hochs und Tiefs? Ich meine, ist die Berechnung prinzipiell richtig? Und welche Probleme werden online auftreten? Können Sie erklären, warum diese Methode nicht funktionieren wird? Vielleicht meinen Sie, dass es Probleme gibt, wenn es mehr als einen Expert Advisor gibt und wir diesen Code nicht für jeden von ihnen angeben können. Wenn Sie das meinen, dann verstehe ich, was Sie meinen. Oder etwas anderes?

 
Denn aus der Historie (Aufträge) können Sie nur die Gleichgewichtskurve rekonstruieren, aber die Aktienkurve müssen Sie auf der Grundlage der Anzahl der offenen Aufträge zu jedem Zeitpunkt, der Marge für jeden Auftrag (Währung) und der Höchst-/Tiefstwerte des Preises synthetisieren.
 
FAQ:
Denn Sie können die Gleichgewichtskurve nur auf der Grundlage der Historie (Aufträge) abrufen, aber Sie müssen die Aktienkurve auf der Grundlage der Anzahl der offenen Aufträge zu jedem Zeitpunkt, des Einzahlungsbetrags pro Auftrag (Währung) und der Höchst- und Tiefstwerte des Kurses synthetisieren.

Wenn wir den Expert Advisor gerade erst gestartet haben und es keine Historie gibt, können wir dann nicht das Maximum und Minimum des Eigenkapitals berechnen, indem wir es in globalen Variablen speichern und den aktuellen und maximalen Drawdown im Moment berechnen? Oder habe ich etwas missverstanden? Vielleicht haben Sie aber auch eine Situation vor Augen, in der es bereits eine Vorgeschichte gibt. Und Sie wollen den maximalen Drawdown unter Berücksichtigung der Orderhistorie berechnen, indem Sie das Skript ausführen? Dann ist es klar. Aber wenn wir gerade erst mit der Arbeit begonnen haben und es keine Historie gibt oder es eine gibt, wir aber den Drawdown ab dem Zeitpunkt des Starts des Expert Advisors mit diesem Code berechnen wollen, gibt es dann nicht irgendetwas, das uns daran hindert, das zu tun?

 
khorosh:

Wenn wir den Expert Advisor gerade erst gestartet haben und es keine Historie gibt, können wir dann nicht das Maximum und Minimum des Eigenkapitals berechnen, indem wir es in globalen Variablen speichern und den aktuellen und maximalen Drawdown im Moment berechnen? Oder habe ich etwas missverstanden? Vielleicht haben Sie aber auch eine Situation vor Augen, in der es bereits eine Vorgeschichte gibt. Und Sie wollen den maximalen Drawdown unter Berücksichtigung der Orderhistorie berechnen, indem Sie das Skript ausführen? Dann ist es klar. Aber wenn wir gerade erst mit der Arbeit begonnen haben und es keine Historie gibt oder es eine gibt, wir aber den Drawdown ab dem Zeitpunkt des Starts des Expert Advisors mit diesem Code berechnen wollen, gibt es dann nicht irgendetwas, das uns daran hindern kann, dies zu tun?


Es wäre einfacher, die Werte des Aktienindikators vom Chirurgen abzulesen, als etwas in irgendwelchen Variablen zu speichern.
 
Reshetov:
Es ist einfacher, den Surgeon's Equity Indicator abzulesen, als etwas in einigen Variablen zu speichern.
Ich stimme zu, der Code sollte im Tester laufen, ich habe mich nur gefragt, ob ich im Prinzip richtig gezählt habe, weil OnGoing mir Zweifel gab.
 
Integer:

Machen Sie sich nichts draus, er hat sich hier schon oft über etwas lustig gemacht, das nicht einmal zum Thema gehört, sondern völlig daneben ist.
Danke für die Ermutigung, denn ich hatte schon Zweifel, dass ich etwas falsch verstanden hatte.
 
khorosh:

Es ist von einer maximalen Inanspruchnahme die Rede. Jemand hat angedeutet, dass das Prüfgerät den Wert nicht richtig misst.

Das Testgerät misst den maximalen Drawdown des Eigenkapitals korrekt, berücksichtigt aber nicht den Stand des Gleichgewichts zu diesem Zeitpunkt, was diese Messung unsinnig macht.

Mit anderen Worten: Wenn die Order zunächst erhöht und dann um 100 Pips gesenkt wurde, zeigt der Tester einen Drawdown von 100 Pips an, während der tatsächliche Drawdown, der logischerweise das Risiko der Strategie bestimmt, gleich Null ist. Es ist klar, dass solche Berechnungen für die Bewertung von Strategierisiken unbrauchbar sind.

 
khorosh:
Danke für die Ermutigung, denn ich hatte schon Zweifel, dass ich etwas falsch verstanden habe.


Im Allgemeinen entspricht der maximale Drawdown nicht der Differenz zwischen maximalem und minimalem Eigenkapital. Zu Beginn ist Max Equity= Eigenkapital, Min Equity= Eigenkapital, Drawdown=0. Wenn Eigenkapital>MaxEquity, dann betrachten wir den Drawdown als MaxEquity-MinEquity, wenn der erhaltene Wert höher ist als der zuvor berechnete Drawdown, merken wir uns den größeren Wert und setzen das Minimum sofort zurück - MinEquity=MaxEquity und merken uns das neue Maximum MaxEquity=Equity.
 

Die roten Linien zeigen die Drawdowns, Sie müssen das Maximum finden.