Vorschläge zur Verbesserung des MetaEditors - Seite 10

 
Yedelkin:

Ich habe Sie gebeten, ein Beispiel zu nennen.

Wollen Sie damit sagen, dass Sie, wenn ein Indikator 10 Puffer hat, zum Beispiel die Werte des siebten Indikatorpuffers von vorgestern mit einer Zeile in MQL4 erhalten können?

Aha,https://docs.mql4.com/ru/indicators/icustom
iCustom - Документация на MQL4
  • docs.mql4.com
iCustom - Документация на MQL4
 
Renat:
Das System des Zugriffs auf Indikatorpuffer in MQL5 ist um ein Vielfaches effektiver und schneller als in MQL4.

Ich spreche nicht von Effizienz, ich spreche von Benutzerfreundlichkeit.

Ich kann keinen universellen Wrapper erstellen, der jeden Indikator aufruft, jedes Mal muss ich die Kopie korrigieren und stolpere dann über umständlichen Code.

Wäre es in 4 anders, würden wir gar nicht darüber diskutieren.

 

Die Aufgabe des Programmierers ist es, Probleme effizient zu lösen, und nicht, eine einzeilige Lösung zu finden, die zwar langsam ist, aber für den Programmierer billig. In MQL4 gab es keine Möglichkeit, einen schnellen Massenzugriff auf Indikatordaten zu erhalten, und in MQL5 gibt es einen solchen Zugriff.

Der Kompostierer sollte aufhören, Unsinn zu posten. In der Tat erkennt der Mann nicht, dass N Aufrufe in MQL4 N synchronisierte und teure Aufrufe in MQL5 sind, verglichen mit der einmaligen Pufferanforderung in MQL5, gefolgt von einem sofortigen Zugriff auf das lokale Array ohne Synchronisation. Denken Sie zumindest an die Kosten der Synchronisierung durch kritische Abschnitte bei jedem Historienaufruf in MQL4 und das Durchlaufen eines vollständigen Zugriffszyklus in einer komplexen Systemfunktion.

Wenn Sie eine Lösung anbieten, die um ein Vielfaches effektiver ist als die alten Methoden, wird sich das im Endergebnis sicher auszahlen. Die Effizienz ist wichtiger.

 

Ich habe verstanden. Noch kein klares Beispiel :) Okay, machen wir weiter. Wie kann ich Ihren Link verwenden, um ein einzeiliges Array mit den Werten des zehnten Indikatorpuffers von vorgestern zu erhalten?

Schlüsselwörter: a) Array, b) Zehntelindikatorpuffer :)

 
Renat:

Der Kompostierer muss aufhören, Unsinn zu posten. In der Tat versteht der Mann nicht, dass...

Renate sollte lesen lernen. In der Tat versteht er weder, was geschrieben wird, noch welchen Standpunkt die Autoren einnehmen.

Wenn ich einem anderen Forumsmitglied die Essenz einer Position erkläre, die ich verstehe, bedeutet das nicht, dass ich diese Position vertrete. Außerdem habe ich den Verwirrten ausdrücklich klar gemacht, dass"es nur eine Frage der Gewohnheit" ist und es überhaupt kein Problem gibt.

 
Yedelkin:

Ich habe verstanden. Noch kein klares Beispiel :) Okay, machen wir weiter. Wie kann ich Ihren Link verwenden, um ein einzeiliges Array mit den Werten des zehnten Indikatorpuffers von vorgestern zu erhalten?

Schlüsselwörter: a) Array, b) Zehntelindikatorpuffer ).

Möchten Sie, dass ich sie hierher kopiere? Hier ist es:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 ist der Pufferindex (der zehnte), 2 ist der Balkenindex.

Der Variable val wird der Wert des 10. Indikatorpuffers von vorgestern zugewiesen.

Ich habe gerade dasFeld in Ihrer Frage gesehen. Sie hätten darauf hinweisen können, dass es notwendig ist, mehrere Werte explizit zu erhalten.

In diesem Fall ist die Antwort nein, Sie können kein Array mit einer Zeichenkette zurückgeben. Aber Sie können eine einfache Funktion schreiben, die das tut. In diesem Fall gibt es jedoch fast keine Unterschiede zu MQL5 - für jeden Indikator müssen Sie Ihre eigene Funktion schreiben.

 
Ich sehe Ihren Standpunkt so, dass eine Zeile großartig ist und drei sehr schlecht".

Sie gehen nicht auf technische Erklärungen ein, Sie kennen die interne Architektur der beiden Endgeräte nicht, Sie kennen die Kosten der Anrufe nicht, aber Sie kritisieren die Lösungen derjenigen, die nicht nur effektive Zugangsmethoden geschaffen haben, sondern auch die Gründe dafür erklären.
 

komposter:

Yedelkin:

komposter:

Yedelkin : Sie wollen sagen, dass Sie, wenn ein Indikator 10 Puffer hat, zum Beispiel dieWerte des siebten Indikatorpuffers von vorgestern mit einer Zeile in MQL4 erhalten können?

Aha...


...Ok, gehen wir weiter. Wie kann ich Ihren Link verwenden, um ein Array mit den Werten des zehnten Indikatorpuffers von vorgestern in einer Zeile zu erhalten?

Schlüsselwörter: a) Array, b) Zehntelindikatorpuffer ).


Ich habe geradeein Feld in Ihrer Frage gesehen. Sie hätten auf die Notwendigkeit hinweisen können, mehrere Werte explizit zu erhalten. In diesem Fall ist die Antwort nein, man kann kein Array in einer Zeile zurückgeben.

Ich verstehe. Unaufmerksames Lesen meiner Frage nach"Werten von vorgestern" führte zu einer falschen Antwort. Daher musste ich eine Tautologie wie "Arrayvon Werten" anstelle von"Werten" verwenden. Die richtige Antwort ist endlich gegeben: Sie können dieWerte von vorgestern nicht mit MQL4 in einer einzigen Zeile zurückgeben.

komposter:

Soll ich sie hierher kopieren? Hier sind Sie:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 ist der Pufferindex (10.), 2 ist der Balkenindex.

Der Variable val wird derWert des 10. Indikatorpuffers von vorgestern zugewiesen.

Wie Sie bereits verstanden haben, ging es in der Frage um die Mehrzahl der "Werte von vorgestern", und es wurde nirgends gesagt, dass dieWerte von vorgestern für PERIOD_D1 gesucht werden sollten (insbesondere wenn man bedenkt, dass ein Tageszeitraum per Definition nicht mehrere Werte von vorgestern für einen Puffer enthalten kann). Es geht weiter. Natürlich bin ich kein Experte für MQL4, aber die oben zitierte Zeile kann nicht als formal korrekt angesehen werden. Denn in dem von Ihnen zitierten Link heißt es: "The indicator line index. Sie kann zwischen 0 und 7" liegen. Aber aus irgendeinem Grund, ohne weitere Erklärung, zitieren Sie Pufferindex == 9.

 
komposter:
Danke, dass Sie das Thema aufgedeckt haben!
 
Renat:
Ich kann Ihren Standpunkt verstehen...

...du reagierst nicht... du weißt es nicht... du kritisierst...
Renat, suchen Sie sich einen anderen Spiegel für Ihren Dialog. Auf Wiedersehen.