Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 61

 
Yedelkin:

Ich verstehe nicht, worin genau die Unannehmlichkeiten bestehen. Sie haben den Verlauf einmal in OnInit() für alle Symbole heruntergeladen - das ist alles.

Ist die Erstellung eines Indikators eine Garantie dafür, dass die Geschichte in der richtigen Tiefe heruntergeladen wird?

"MQL5-Referenz - Zugriff auf Zeitreihen und Indikatoren - Organisieren des Datenzugriffs"https://www.mql5.com/ru/docs/series/timeseries_access

Der Empfang neuer Daten vom Server führt zu einer automatischen Aktualisierung der im HC-Format verwendeten Kursdaten für alle Zeiträume und zu einer Neuberechnung aller Indikatoren, die diese natürlich als Eingangsdaten für die Berechnung verwenden.

Wenn ich einen Indikator aus einem Expert Advisor aufrufe und die Historie für ein Symbol nicht geladen ist, beginnt das Terminal mit dem Herunterladen der Daten und der Datenverkehr bleibt gleich

Ich mag das unabhängige Laden von Daten nicht, man muss es ständig überwachen, logischerweise sollte das Terminal der 5. MT4 hat ein unabhängiges Laden der Historie vom Indikatorcode - "das war eine Nervensäge" :)

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - Документация по MQL5
 
IgorM:
Ich verstehe. Die Unannehmlichkeit besteht darin, dass der Indikator frische Daten (durch andere Symbole) liefert, und nicht die historischen, wie es zunächst schien. In diesem Fall gibt es nur eine Idee: Ein einfacher Indikator verbraucht Speicher in direktem Verhältnis zur Anzahl seiner Puffer, wenn Sie also keinen Speicher verschwenden wollen, können Sie das Laden auf Hilfsindikatoren verlagern.
 
Yedelkin In diesem Fall gibt es nur eine Idee: Ein einfacher Indikator verbraucht Speicher in direktem Verhältnis zur Menge seiner Puffer, wenn Sie also keinen Speicher verschwenden wollen, können Sie die Belastung auf zusätzliche Indikatoren verlagern.

Oh! Das ist jetzt konstruktiv, aber niemand verbietet, die Anzahl der Balken in den Terminaleinstellungen zu begrenzen - es wird weniger Speicher verbrauchen, CopyClose() usw. benötigt auch Arrays, und das ist der gleiche Speicher des Computers. Und es scheint, dass man im Indikator selbst die Anzahl der Balken für die Neuberechnung begrenzen kann - das erfordert auch weniger Speicher.

Wird eine solche Konstruktion mit dem Prüfgerät korrekt funktionieren?

 
IgorM: Aber niemand verbietet, die Anzahl der Balken in den Terminaleinstellungen zu begrenzen - das verbraucht weniger Speicherplatz

Ja, "vorgewarnt ist gewarnt" :)

IgorM: CopyClose() usw. benötigen auch Arrays, also den gleichen Speicher wie der Computer.

Ich bin nicht einverstanden mit dem ähnlichen Speicherverbrauch der Funktion CopyClose(). Diese Funktion ermöglicht kleine Arrays und den Indikatorpuffer - er wird immer auf seine volle, in den Terminaleinstellungen angegebene Länge gestreckt, d.h. mindestens 50 Tausend Balken.

IgorM : Wird ein solches Design korrektmit dem Tester funktionieren?
Im September reagiert das Testgerät nicht auf die Begrenzung der Anzahl der Balken in den Terminaleinstellungen. D.h. es wurde die gesamte Historie geladen. Was die Hilfsblinker betrifft, so funktionieren sie im Testgerät einwandfrei.
 
Warum werden die Berechnungen von der CPU und nicht von der GPU durchgeführt? Vielleicht verstehe ich etwas nicht, aber die Effizienz von CUDA und OpenCL ist in vielen Branchen anerkannt. Selbst für medizinische Berechnungen sind 2-4-8 Agenten im Vergleich zu 128 oder mehr Agenten auf einer Grafikkarte einfach nur lächerlich.
 
madload:

Sagen Sie mir, warum sind die Rechenressourcen der CPU und nicht der GPU? Vielleicht verstehe ich etwas nicht, aber die Effizienz von CUDA und OpenCL ist in vielen Branchen anerkannt. Und ein paar mickrige 2-4-8 Agenten sind im Vergleich zu 128 oder mehr Agenten auf einer Grafikkarte einfach nur lächerlich.

Wer verbietet Ihnen die Nutzung von GPU-Rechenressourcen?

Siehe:

OpenCL: Die Brücke zu parallelen Welten

OpenCL: Von naiver Kodierung zu intelligenterer Kodierung

 
Reshetov:

Wer hindert Sie an der Nutzung von GPU-Rechenressourcen?

Siehe:

OpenCL: Die Brücke zu parallelen Welten

OpenCL: Von naiver Kodierung zu sinnvollerer Kodierung

Ich habe den Metatester heruntergeladen, aber er hat nur eine CPU. Es gibt keine Möglichkeit, Grafikkarten in die Berechnungen einzubinden - das ist es, was ich frage - wird es eine gpu-basierte Software geben?
 
madload:
es gibt keine Möglichkeit, Videokarten mit Berechnungen zu verbinden

Seien Sie nicht albern. Ich habe Ihnen Links zu zwei Artikeln gegeben, in denen in klarem Russisch und Englisch beschrieben wird, wie man die GPU-Funktionen für Berechnungen nutzen kann.

 
Reshetov:

Seien Sie nicht albern. Ich habe Ihnen Links zu zwei Artikeln gegeben, in denen in klarem Russisch und Englisch beschrieben wird, wie man die GPU-Funktionen für Berechnungen nutzen kann.


MQ hat immer noch nicht herausgefunden, wie man die Vielzahl der auf Cloud-Computern laufenden Vises standardisieren kann.

Problem 1: Es gibt mehrere CPU-Kerne auf dem Computer und eine Grafikkarte, alle Agenten gehen zur Karte und fragen nach Ressourcen.

Problem 2: Die Vises unterscheiden sich sowohl in Bezug auf den Speicher als auch auf die Anzahl der Kerne erheblich (das Schreiben von Code für ein benutzerdefiniertes Widget ist eine Sache, aber das Schreiben von universellem Code ist viel schwieriger). Vergessen Sie nicht, dass die Intelligenz der Menge der des dümmsten Schafes entspricht. Es stellt sich also das Problem, welche Messlatte man anlegen sollte. Für einen Code genügen 128 Kerne und 512 MB Speicher, während ein anderer Code nicht weniger als 2 GB und 2048 Kerne benötigt. Auch hier variiert die Viskosität viel stärker als die CPU, daher das Problem mit den geschlossenen Anwendungen. Bei CPUs wird das Problem durch die PR-Ebene gelöst, ab der die Kerne von Agenten genutzt werden dürfen.

madload:

Sagen Sie mir, warum werden die Berechnungen von CPUs und nicht von GPUs durchgeführt? Vielleicht übersehe ich etwas, aber die Effizienz von CUDA und OpenCL ist in vielen Branchen anerkannt. Sogar medizinische Berechnungen kommen zum Einsatz, und ein paar mickrige 2-4-8 Agenten sind einfach lächerlich im Vergleich zu 128 oder mehr Agenten auf einer Grafikkarte.

Die Cloud hat keine mickrigen 2-4-8 Agenten, sondern skaliert je nach Aufgabe. Ich habe einen EA mit 512 Agenten getestet, für ernsthafte Aufgaben könnte er mehr haben.

 
Urain:

Machen Sie sich nichts vor, Agenten verwenden keine GPUs, weil MQ immer noch nicht herausgefunden hat, wie man eine bunte Masse von Vises auf Claud-Computern standardisieren kann.

Machen Sie keinen Unsinn, GPU wird in lokalen Agenten verwendet. Ich habe nicht nach dem Claud-Kessel gefragt, sondern nach dem Messgerät.

Siehe https://www.mql5.com/ru/forum/6042/page10

Renat:

ilovebtc:

Ist die Grafikkarte im neuen Build des Testers bereits aktiviert oder nicht? Wenn ja, wo kann ich die Ergebnisse sehen?

Ja, natürlich. Sie können OpenCL-Funktionen von MQL5 aus aufrufen und Ihre Aufgaben berechnen.

Siehe https://www.mql5.com/ru/forum/23/page15

MetaTrader 5 Client-Terminal Build 655

...

25. MetaTester: Unterstützung für die Verwendung von OpenCL-Programmen in Testagenten hinzugefügt.

OpenCL-Programme sind für die Durchführung von Berechnungen auf Grafikkarten gedacht, die OpenCL 1.1 oder höher unterstützen. Moderne Grafikkarten enthalten Hunderte von kleinen spezialisierten Prozessoren, die gleichzeitig einfache mathematische Operationen an eingehenden Datenströmen durchführen können. Die OpenCL-Sprache organisiert solche parallelen Berechnungen und bietet einen enormen Geschwindigkeitszuwachs für eine bestimmte Klasse von Aufgaben.

OpenCL: внутренние тесты реализации в MQL5
OpenCL: внутренние тесты реализации в MQL5
  • www.mql5.com
Мы ведем работу над нативной поддержкой OpenCL прямо в MQL5.