Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
...Die einzige Frage ist, wie man einen Zeiger in eine ganze Zahl umwandelt. Hier wird uns die Dynamic Link Library helfen, nämlich die C++-Fähigkeiten der Datentypkonvertierung. Da Zeiger in C++ ein Vier-Byte-Datentyp sind, ist es praktisch, den Vier-Byte-Typ int für unsere Zwecke zu verwenden...
Wenn ich mich nicht täusche, spricht der Autor von impliziter Typkonvertierung. Ein sehr informativer Artikel - vielen Dank an den Autor.
Ich wollte noch hinzufügen, dass man ohne explizite Typkonvertierung nicht auskommt, wenn man eine SetPtr-Methode erstellen möchte.
Es sieht dann so aus
Im Allgemeinen würde MQL5 sehr davon profitieren, wenn Zeiger allgemein anerkannt und verwendet würden.
Im Allgemeinen würde MQL5 sehr davon profitieren, wenn Zeiger allgemein anerkannt und verwendet würden.
Ich würde zu dieser Liste noch die Ausnahmebehandlung, Konstruktoren mit Parametern und Mehrfachvererbung hinzufügen.
Aber aus irgendeinem Grund denken die Entwickler, dass wir nicht klug genug sind, um all diese Funktionen zu nutzen, und dass wir uns damit nur selbst schaden.
Dabei sind alle diese Funktionen Standardwerkzeuge der OOP und haben noch nie jemandem geschadet.
Ich habe den Eindruck (von mir), dass sie einfach nicht in der Lage sind, diese Mechanismen zuverlässig zu implementieren.
Es ist traurig, dass jemand entschieden hat, dass wir sie hier nicht haben wollen.
Mir ist aufgefallen, dass mit den neuen MT4-Builds die Funktion SetIndicatorValue() nicht funktioniert, aber GetIndicatorValue() schon. Liegt das nur an mir, oder gibt es etwas in den neuen Builds (ich glaube, die Änderung erfolgte irgendwo nach Build 225), das diese Funktion kaputt gemacht hat? Wenn ja, gibt es Vorschläge, wie man die Methoden in diesem Artikel auf den neuen MT4-Builds zum Laufen bringen kann? Die Tatsache, dass die alten Builds nicht mehr unterstützt werden, stellt mich in dieser Hinsicht vor ein Problem, denn ich würde die Indikatorberechnungen gerne nur einmal in einem EA durchführen, aber dennoch auf den Charts anzeigen lassen, indem ich die berechneten Werte in die Zeiger der Indikatorpuffer verschiebe. (Übrigens war ich sehr dankbar, diesen Artikel gefunden zu haben und seine Techniken anwenden zu können - vielen Dank für das Schreiben).
Eine damit zusammenhängende Frage ist, dass mir aufgefallen ist, dass in den Versionshinweisen für Build 392 von MT4 am 17.3.2011 steht: "3. unnötige Neuberechnungen von Indikatoren bei der Anzeige in einem Chart entfernt." Macht diese Verbesserung die Techniken in diesem Artikel überflüssig, da die Verwendung benutzerdefinierter Indikatoren auf die vorgesehene Weise nicht mehr langsamer ist als die Verwendung der in diesem Artikel beschriebenen zeigerbasierten Techniken? Ich danke Ihnen.
Mir ist aufgefallen, dass mit den neuen MT4-Builds die Funktion SetIndicatorValue() nicht funktioniert, aber GetIndicatorValue() schon. Liegt das nur an mir, oder gibt es etwas in den neuen Builds (ich glaube, die Änderung erfolgte irgendwo nach Build 225), das diese Funktion kaputt gemacht hat? Wenn ja, gibt es Vorschläge, wie man die Methoden in diesem Artikel auf den neuen MT4-Builds zum Laufen bringen kann? Die Tatsache, dass die alten Builds nicht mehr unterstützt werden, stellt mich in dieser Hinsicht vor ein Problem, denn ich würde die Indikatorberechnungen gerne nur einmal in einem EA durchführen, aber dennoch auf den Charts anzeigen lassen, indem ich die berechneten Werte in die Zeiger der Indikatorpuffer verschiebe. (Übrigens war ich sehr dankbar, diesen Artikel gefunden zu haben und seine Techniken anwenden zu können - vielen Dank für das Schreiben).
Eine damit zusammenhängende Frage ist, dass mir aufgefallen ist, dass in den Versionshinweisen für Build 392 von MT4 am 17.3.2011 steht: "3. unnötige Neuberechnungen von Indikatoren bei der Anzeige in einem Chart entfernt." Macht diese Verbesserung die Techniken in diesem Artikel überflüssig, da die Verwendung benutzerdefinierter Indikatoren auf die vorgesehene Weise nicht mehr langsamer ist als die Verwendung der in diesem Artikel beschriebenen zeigerbasierten Techniken? Ich danke Ihnen.
Wie kompliziert das ist!...
Mit der Hilfe von Ilnur habe ich vor einem Jahr eine Bibliothek in MQL4 für die Arbeit mit Speicher geschrieben. Man kann Speicher zuweisen, Zeiger verschieben, schreiben und lesen, den Namen eines Speicherbereichs an ein anderes Programm übertragen.
Alles basiert auf Mapping. Es ist viel einfacher als das vorgeschlagene Programm.
Ist es möglich, der DLL Funktionen hinzuzufügen, die nicht nur mit double, sondern auch mit datetime, long und int arbeiten?
Es stellt sich heraus, dass jetzt die Daten von Preis-Arrays leicht zwischen verschachtelten Strukturen ohne Kopieren übertragen werden können, aber Daten auf Zeit, Spread und Volumen müssen noch kopiert werden.
Ich habe versucht, GetPtr so anzupassen, dass es mit datetime und long funktioniert (und durch Perversionen mit verschiebbaren int-Bits) - es funktioniert nicht, die Funktion akzeptiert einen Verweis auf ein Array, und das kann nicht konvertiert werden.
Hat jemand dieses Problem gelöst?
Schweigen.
Äh... Ich werde mich an C++ erinnern und MSVC selbst installieren müssen...
Schweigen.
Äh... Ich muss mir C++ merken und MSVC selbst installieren...
Und jetzt wird Ihnen niemand mehr etwas antworten, alle sind an die Front gegangen.
Haben Sie etwas über das MT4-Update gehört?
Am Rande meines Ohres, am Rande meines Ohres... :)
MT4 Update ist sehr gut für mich - ich habe große Bibliotheken, aber alle sind auf MT5 (ich kann mir mein Leben ohne OOP nicht vorstellen). Und DCs, böse Menschen, nicht alle haben MT5 im echten Leben.... Diese Nachricht ist also sehr gut für mich.
Aber - bis es einen normalen MT4++ geben wird, sehe ich keinen Sinn darin, den Code für die aktualisierte Plattform anzupassen. Wenn so etwas wie eine offizielle Beta herauskommt (ja, mit der Standard Library, ich möchte auch keine Expert Advisors ohne sie schreiben) - dann werden wir anfangen, den Code zu konvertieren....
Und jetzt will ich - furchtbar - nicht nur Adressen von Double-Arrays, sondern auch von anderen Arrays bekommen... Ah - igitt... Ich wollte das Problem durch Typkonvertierung umgehen (time und longs sind auch acht Byte), aber das funktioniert noch nicht....