Mein Ansatz. Der Kern ist der Motor. - Seite 90

 
fxsaber:

Lieber fxsaber.

Ich weiß, dass alle Daten über Ressourcen ausgetauscht werden können.

Zunächst müssen sie jedoch in eine Zeichenkette umgewandelt werden und dann mit StringToChar() in einen Wert umgewandelt und in einer Ressource gespeichert werden. Und der Code dafür ist viel einfacher.

ABER, ich habe bewiesen, dass diese Methode langsamer ist als die Übertragung derselben Zeichenfolge über die Objektbeschreibung.


Meine Gegner verachten den String-Typ und sprechen über die Verwendung der mythischen Methode der Übertragung aller Daten in uint auf einmal durch Union.

Außerdem müssen Strings durch union in uint umgewandelt werden.


Und warum sollten Strings in uint über Union konvertiert werden, wenn es StringToChar() gibt?

 
Maxim Kuznetsov:

Intern gibt es nur und ausschließlich GlobalVariables und Dateien für den Datenaustausch zwischen EAs, Indikatoren und Skripten.

Alle 4 oben genannten Punkte sind lokale "Hacks" in Ermangelung von Fisch. Alle diese 4 Punkte verwenden Mechanismen, die nicht für den Austausch beliebiger Daten, geschweige denn von Datenfeldern, ausgelegt sind.

п1. 100% führt zum temporären Sperren des Interface-Threads (ja, Objekte leben dort und ihre "Beschreibungen" auch) und funktioniert nicht im Optimierer. Die Objektbeschreibungen dienen der menschenlesbaren Beschreibung von Objekten,

p2. n2. funktioniert nicht in Tester und Optimierer und dient zur Meldung von Ereignissen

P3. p4. Ressourcen (auch benannte) sind für die langfristige Speicherung und nicht für den schnellen Austausch bestimmt. Zur Benutzerfreundlichkeit im Tester/Optimierer kann ich nichts sagen :-) Ich verwende schreibgeschützte Ressourcen

Es hat keinen Sinn, über die Geschwindigkeit von gekrümmten Lösungen zu sprechen.

ps/ können Sie übrigens auch Dateien oder vielmehr Pipes verwenden

Sie haben alles richtig geschrieben.

Aber "Hacks" sind unser Ein und Alles.)

Im Testgerät funktioniert im Optimierungsmodus die Verbindung zwischen dem Expert Advisor und dem Motor nicht. Dafür gibt es keinen Grund.


Um einen sinnvollen Austausch von Parameterwerten bei Ereignissen zu ermöglichen, müssen der EA und die Engine einander Daten mit einer Größe von bis zu 2000 Zeichen übermitteln. Das ist nicht viel. Aber es ist nicht so viel.


Der nützlichste Hack ist Nummer 1.

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow:

Meine Gegner verschmähen den Typ string und sprechen von der mythischen Methode , alle Daten auf einmal nach uint zu übertragen, durch union.

Außerdem müssen Strings über union in uint umgewandelt werden.

Obiger Code, der mehrere Typen auf einmal (einschließlich nicht nur Strings, sondern ein Array von Strings) in uint und zurück übersetzt.

Aber ich glaube nicht, dass es in dieser Diskussion von Nutzen sein wird.


SZY Wenn Sie wirklich Zeichenketten verwenden wollen.

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

Bibliotheken: HistoryTicks

fxsaber, 2018.12.04 09:11

// Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart()
{
  int ArrayIn[] = {0, 1, 2, 3, 4, 5};  
  ChartSetString(0, CHART_COMMENT, DATA_STRING::ToString(ArrayIn));    // Записали данные в комментарий чарта

  int ArrayOut[];    
  DATA_STRING::FromString(ChartGetString(0, CHART_COMMENT), ArrayOut); // Прочли данные из комментария чарта
  
  ArrayPrint(ArrayOut);
}
 
fxsaber:

Derobige Code übersetzt mehrere Typen auf einmal (einschließlich nicht nur Strings, sondern ein Array von Strings) in uint und zurück.

Aber ich glaube nicht, dass es in dieser Diskussion von Nutzen sein wird.

So können Sie ein Array von Strings zu uint durch die Union übersetzen?

Und ist es schneller als überStringToChar()?

Wenn Sie können, geben Sie ein kleines und einfaches Beispiel. Ich kann Ihren Code nicht entziffern.

 
Реter Konow:

So können Sie ein Array von Strings zu uint über Union konvertieren?

Und ist es schneller alsStringToChar()?

Wenn möglich, geben Sie bitte ein kleines und einfaches Beispiel. Ich kann Ihren Code nicht entziffern.

Das Beispiel war in diesem Thread hier.

Um es zu reproduzieren, müssen Sie eine Verknüpfung mit der Bibliothek herstellen, auf die im Beispielcode verwiesen wird.

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber:

...

ZS Wenn Sie die Zeilen wirklich durchgehen wollen

Wie groß darf der Kommentar maximal sein?

 
Реter Konow:

Sie haben alles richtig geschrieben.

Aber "Hacks" sind unser Ein und Alles)).

Im Tester funktioniert im Optimierungsmodus die Verbindung zwischen dem Expert Advisor und der Engine nicht. Sie brauchen es nicht.


Um einen sinnvollen Austausch von Parameterwerten bei Ereignissen zu ermöglichen, müssen EA und Engine einander Daten mit einer Länge von bis zu 2000 Zeichen übermitteln. Das ist nicht zu viel. Aber es ist auch nicht wenig.


Der praktischste Hack ist Nummer 1.

Mit diesem "benutzerfreundlichsten Hack" ist es möglich, auf die "Kinderharke" zu treten, nämlich die bei den Nutzern beliebten und beim Nachladen verwendeten Vorlagen.
 
fxsaber:
...


ZS Wenn Sie die Zeilen wirklich durchgehen wollen

Der Kartenkommentar hat eine begrenzte Größe. Oder doch? Ich bin sozusagen darüber gestolpert.

 

Eine weitere ernsthafte Frage.

Ich habe es nicht selbst ausprobiert, aber es gibt Zweifel an der Wirksamkeit des schnellen Austauschs über Ressourcen.

Schneller Austausch, - 16 Millisekunden hin und her auf einer konstanten Basis.

Wird die Festplatte nicht überlastet?

 
Maxim Kuznetsov:
Mit diesem "bequemsten Hack" können Sie auf eine "kindische Harke" treten, nämlich die von den Nutzern sehr geliebten und beim Nachladen verwendeten Vorlagen.

Bitte erläutern Sie dies.

ZS: Objekte mit speziellen Namen werden für die Kommunikation verwendet. Um ein Zusammentreffen mit Benutzerobjekten zu vermeiden.

Grund der Beschwerde: