Fehler, Irrtümer, Fragen - Seite 1676

 

Meine Herren, wie deklariert man eine Funktion in MKL, die einen Zeiger (Referenz in µl) auf irgendetwas annimmt (analog zu void* in C/C++ )? Ich meine nicht die Besetzung durch den Stammbaum, sondern die Besetzung durch nicht verwandte Typen. Nehmen Sie zumindest ein Array beliebigen Typs.

void f(... &...) {}

void mql_main()
{
  int i[2];
  double d[2];
  f(i);
  f(d);
}
Ich verstehe alle Schwierigkeiten im Zusammenhang mit "type aliasing" und Compiler-Optimierungen.
 
pavlick_:

Meine Herren, wie kann man eine Funktion in MKL deklarieren, die einen Zeiger (Referenz in µl) auf irgendetwas annimmt (analog zu void* in C/C++ )? Ich meine nicht die Besetzung durch den Stammbaum, sondern die Besetzung durch nicht verwandte Typen. Nehmen Sie zumindest ein Array beliebigen Typs.

Ich verstehe alle Schwierigkeiten im Zusammenhang mit "type aliasing" und Compiler-Optimierungen.
Ich denke, dass das, was Sie tun wollen, können Sie nur durch die Klasse Methoden in MQL5 tun. Ich warte zwar auf weitere Antworten, aber ich habe nicht viel Erfahrung damit.
 
pavlick_:

Meine Herren, wie deklariert man eine Funktion in MKL, die einen Zeiger (Referenz in µl) auf irgendetwas annimmt (analog zu void* in C/C++ )? Ich meine nicht die Besetzung durch den Stammbaum, sondern die Besetzung durch nicht verwandte Typen. Nehmen Sie zumindest ein Array beliebigen Typs.

Ich verstehe die ganze Aufregung um "type aliasing" und Compiler-Optimierungen.

Nun, sie haben bereits void * pointers hinzugefügt, nicht wahr? Außerdem können Sie Vorlagen verwenden, wie

template<typename T>

void f(T &parameter)

{

 
Stanislav Korotky:

Ich dachte, sie hätten bereits void * pointers hinzugefügt. Außerdem können Sie Vorlagen verwenden, wie

template<typename T>

void f(T &parameter)

{

MKL-Zeiger (Deskriptoren) fallen sofort weg. Das Problem lag in der Deklaration der aus der DLL importierten Funktion, Vorlagen können dort nicht gebissen werden. Ich habe herausgefunden, dass man das so machen kann:

#import ...
  int send(..., char &buf[], ...);
  int send(..., short &buf[], ...);
#import
Und alles wird mit einer einzigen Funktion verknüpft sein. Damit ist mein Problem gelöst. Vielen Dank an diejenigen, die geantwortet haben, für die Antwort.
 
Itum:
Bitte sagen Sie mir, wie ich den maximalen Drawdown in Excel ermitteln kann... Gib mir die Formel...
Wenn wie im Equity-Tester, ist es in Excel schwierig, weil der Tester nicht nur die negative Abweichung, sondern auch die positive Abweichung - den zu wenig erzielten potenziellen Gewinn - berücksichtigt.
 
-Aleks-:
Wenn wie im Aktien-Tester, ist es in Excel kompliziert, weil der Tester nicht nur die negative Abweichung, sondern auch die positive Abweichung - den zu wenig erzielten potenziellen Gewinn - berücksichtigt.
Es ist nichts Kompliziertes dabei. Die erste Spalte steht für die Aktienwerte, die zweite Spalte für den maximalen Aktienwert von der ersten bis zur aktuellen Zeile und die dritte Spalte für den Drawdown, die Differenz zwischen der zweiten und der ersten Spalte. Und dann nehmen Sie das Maximum aus der dritten Spalte.
 
Sergei Vladimirov:
Es ist nichts Kompliziertes dabei. Die erste Spalte zeigt die Werte des Eigenkapitals, die zweite Spalte zeigt das maximale Eigenkapital von der ersten Zeile bis zur aktuellen Zeile und die dritte Spalte zeigt den Drawdown, die Differenz zwischen der zweiten und der ersten Spalte. Nun, nehmen Sie das Maximum aus der dritten Spalte.
Solche Berechnungen passen nicht zu den Daten des Testers. Wir müssen die Veränderung des Eigenkapitals zwischen der Eröffnung und der Schließung der Position berücksichtigen, da die maximale Veränderung des Eigenkapitals in einer separaten Spalte eingetragen werden muss, und das Modul muss berücksichtigt werden, und dann muss das Maximum aus dieser Spalte ausgewählt werden. Dies ist ein profitabler Handel, andernfalls ist es notwendig, den Punkt des maximalen Aktiengewinns zu identifizieren und Berechnungen dazu durchzuführen....
 
-Aleks-:
Solche Berechnungen stimmen nicht mit den Daten des Prüfers überein. Es ist notwendig, die Veränderung des Eigenkapitals zwischen der Eröffnung und der Schließung der Position zu berücksichtigen - die maximale Veränderung des Eigenkapitals muss in eine separate Spalte eingetragen und das Modul berücksichtigt werden, und dann muss das Maximum aus dieser Spalte ausgewählt werden. Dies ist für den profitablen Handel relevant, während wir im umgekehrten Fall den maximalen Gewinnpunkt durch das Eigenkapital definieren und Berechnungen dazu anstellen müssen.....
Was hat der Prüfer damit zu tun? Die Frage bezog sich auf Excel. Ich verstehe nicht, warum es wichtig ist, das Thema in diesem Thread zu behandeln. Im Wesentlichen wird kein Modul benötigt, der Drawdown = letzter Maximalwert minus aktueller Wert, das Ergebnis wird immer nicht-negativ sein. Oder umgekehrt, aktueller Wert minus letzter Höchstwert, dann wird das Ergebnis immer negativ oder Null sein. Im ersten Fall nimmt man das Maximum der Spalte, im zweiten Fall das Minimum.
 
Sergei Vladimirov:
Was hat das mit dem Prüfgerät zu tun? Die Frage bezog sich auf Excel. Es ist nur nicht klar, warum es in diesem Thread steht. Im Wesentlichen wird kein Modul benötigt, Drawdown = letzter Höchstwert minus aktueller Wert, das Ergebnis wird immer nicht negativ sein. Oder umgekehrt, aktueller Wert minus letzter Höchstwert, dann wird er immer negativ oder Null sein. Im ersten Fall nimmt man das Maximum der Spalte, im zweiten Fall das Minimum.
Drawdown im Tester = Maximum - Minimum, es spielt keine Rolle, zu welchem Zeitpunkt die Position geschlossen wurde. Mit anderen Worten: Wenn die Position zu Beginn in Ihre Richtung geht und dann in die entgegengesetzte Richtung schließt, ist der Equity Drawdown der Abschnitt vom Maximum zum Minimum und nicht vom Eröffnungskurs zum Schlusskurs. Dies ist bei MT4 der Fall.
 
-Aleks-:
Drawdown im Tester = Maximum - Minimum, es spielt keine Rolle, zu welchem Zeitpunkt die Position geschlossen wurde. Mit anderen Worten: Wenn die Position zu Beginn in Ihre Richtung ging, aber in die entgegengesetzte Richtung geschlossen wurde, ist der Equity Drawdown der Abschnitt vom Maximum zum Minimum und nicht vom Eröffnungskurs zum Schließen der Position. Das ist bei MT4 der Fall.
Ich habe nichts über Eröffnungs- und Schlusskurse geschrieben.