Nützliche Funktionen von KimIV - Seite 108

 
Ehrlich gesagt bin ich sehr froh, einen legendären Mann mit seinen eigenen Funktionen wieder im aktiven Forum zu sehen, obwohl ich persönlich nicht viel davon verstehe, da ich die Grundlagen der Programmierung in dieser Sprache nicht kenne. Aber die Tatsache selbst ist erstaunlich, ich begrüße KimIV mit all meinem Sein!
 
 

Hallo, ich bin auf der Suche nach einer Funktion, haben Sie eine parat?

Ich benötige eine Datei, die am Ende des Tests erstellt wird und die Daten über den Drawdown jedes Auftrags enthält. Vorzugsweise sollte diese Datei nicht während des Tests, sondern am Ende der einmaligen Verarbeitung der Handelshistorie erstellt werden...

 
Ich habe keine solche Funktion, aber in naher Zukunft plane ich, eine Funktion zu veröffentlichen, die den maximalen Drawdown in Pips der aktuell offenen Positionen berechnet. Diese Funktion analysiert die Weitergabe von Aufträgen durch Balken. Der Zeitrahmen ist einer der Parameter. Je kleiner der Zeitrahmen ist, desto genauer ist die Berechnung des maximalen Drawdowns. Ich denke, dass Sie mit dieser Funktion das tun können, was Sie brauchen.
 
KimIV:
Ich habe keine solche Funktion, aber ich plane, die Funktion zur Berechnung des maximalen Drawdowns von Punkten der aktuellen offenen Positionen in naher Zukunft zu veröffentlichen. Diese Funktion analysiert die Weitergabe von Aufträgen durch Balken. Der Zeitrahmen ist einer der Parameter. Je kleiner der Zeitrahmen ist, desto genauer ist die Berechnung des maximalen Drawdowns. Ich denke, dass Sie mit dieser Funktion das tun können, was Sie brauchen.

Wenn die Funktion auch einen Eintrag in der Datei hat - das wäre toll...

Aber ich sehe keine besondere Notwendigkeit, den Drawdown für aktuelle Positionen zu berechnen. Ich denke, diese Funktion ist eher für einen Tester nützlich (Analyse der Arbeit des Systems) ....

 
renoshnik:

Wenn die Funktion auch einen Eintrag in der Datei hat - das wäre toll...

Aber ich sehe keine besondere Notwendigkeit, den Drawdown für aktuelle Positionen zu berechnen. Ich denke, diese Funktion ist eher für einen Tester nützlich (Systemanalyse) ....

Es gibt keinen Unterschied zwischen "den Drawdown jedes Auftrags in Echtzeit berechnen und alle Daten in eine Datei senden" und "den Drawdown jedes Auftrags berechnen und die Daten am Ende des Tests in eine Datei senden". Abgesehen von der Tatsache, dass die erste Option sehr leicht extrem genau sein kann und die zweite Option nur dann genau ist, wenn Sie sich die Tick-Historie für jeden Auftrag merken.
 
renoshnik:

Hallo, ich bin auf der Suche nach einer Funktion, haben Sie eine parat?

Ich benötige eine Datei, die am Ende des Tests erstellt wird und die Daten über den Drawdown jedes Auftrags enthält. Vorzugsweise würde diese Datei nicht während des Tests, sondern am Ende der einmaligen Verarbeitung des Handelsverlaufs erstellt werden...

Yuri, ich habe hastig den Code aus einem alten Expert Advisor herausgezogen...
Ich habe es überprüft und es scheint korrekt zu funktionieren.
Füge den Code von deinit() zu deinen Eulen hinzu und kopiere drei Funktionen unterhalb von deinit, eine davon ist die von Igor ))
.......
Der Code ist lose... Aber solange Igor es schön macht, denke ich, dass du genug zum Experimentieren hast.
 
lasso:
Yuri, ich habe den Code hastig aus einem alten EA gezogen...
Ich habe es überprüft, es scheint korrekt zu funktionieren.
Füge den Code von deinit() zu deinen Eulen hinzu und kopiere drei Funktionen unterhalb von deinit, eine davon ist die von Igor ))
.......
Der Code ist lose... Aber solange Igor dafür sorgt, dass es gut aussieht, denke ich, dass du genug zum Experimentieren hast.

Großartig, danke !!!!!!!!!! Ich werde es mir ansehen....
 

Igor, guten Tag!

Ich habe Ihre Funktion CrossPointOfLines (berechnet die Koordinaten des Schnittpunkts von zwei Linien) in meinen Expert Advisor eingebaut. Infolgedessen wird in den Kommentaren immer wieder geschrieben: Es ist nicht gelungen, den Schnittpunkt zu finden! Und kann den Schnittpunkt nicht finden.

Vielleicht liegt es daran, dass ich in meinem Diagramm andere Objekte in Form von Trendlinien habe? Oder vielleicht können Sie oder einer der Stammgäste in diesem Thread mir sagen, was mein Problem ist?

Vielen Dank im Voraus!

Code - in der beigefügten Datei.

Dateien:
 

HOORAY! Ich habe es selbst herausgefunden.) Andere Tendenzen kamen in den Weg...

Da ich mich mit Arrays nicht besonders gut anfreunden kann, habe ich eine maximal vereinfachte Funktion erstellt. Bis jetzt scheint es zu funktionieren).

//+------------------------------------------------------------------+
double Middle(string nm1,string nm2)
  {
  double M;
  double x0, x1, y1, x2, y2, x3, y3, x4, y4;
  double k1, k3;
  
  if(ObjectFind(nm1)==0 && ObjectFind(nm2)==0)
    {
    x1=ObjectGet(nm1, OBJPROP_TIME1);
    x2=ObjectGet(nm1, OBJPROP_TIME2);
    y1=ObjectGet(nm1, OBJPROP_PRICE1);
    y2=ObjectGet(nm1, OBJPROP_PRICE2);
    
    x3=ObjectGet(nm2, OBJPROP_TIME1);
    x4=ObjectGet(nm2, OBJPROP_TIME2);
    y3=ObjectGet(nm2, OBJPROP_PRICE1);
    y4=ObjectGet(nm2, OBJPROP_PRICE2);
    
    k1=(y2-y1)/(x2-x1); 
    k3=(y4-y3)/(x4-x3);
    
    if(k1 != k3)
      {
      x0 = (y1 - y3 + k3*x3 - k1*x1)/(k3 - k1);
      M = y1 + k1*(x0 - x1);
      }
    }
  return(M);
  }
//+----------------------------------------------------------------------------+