Leinwand vs. Etiketten - Seite 17

 
Mihail Matkovskij:

Was den G-Code betrifft, so kann ich Ihren G-Code finden, indem ich jedes Wort, das ich sage, bestreite! Nicht wie Sie, der Anschuldigungen macht...Finden Sie das?

Ich bin kein Programmierer. Ich bin Autodidakt. Sie können in meinem Code herumstochern und ihn nennen, wie Sie wollen, aber egal, wie Sie es betrachten, meine Codes sind weit von der g...

 
Artyom Trishkin:
Ein interessantes Thema wurde verworfen... Was sind das für Leute...

Das Thema hätte interessant sein können. Aber leider wird es das nie sein.

 
Alexey Viktorov:

Ich bin kein Programmierer. Ich bin Autodidakt. Man kann in meinem Code herumstochern und ihn nennen, wie man will, aber egal wie man es betrachtet, meine Codes sind bei weitem nicht die besten...

Aber die Codes der anderen Mitglieder der Gemeinschaft sind für Sie... Nun, Sie sind offensichtlich Autodidakt. Sie brauchen also keine ungeschriebenen Regeln, die besagen, dass Sie nicht über Ihre Kollegen herziehen dürfen.

Nun zu den Code-Fragenhttps://www.mql5.com/ru/code/24076. Natürlich werde ich nicht wie Sie sagen, dass es ein beschissener Code ist... Aber ich werde mich trotzdem dazu äußern.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

Warum gibt es keine Begrenzung für die Aktualisierungshäufigkeit von BitmapLabel, wenn es in der Testversion mit dem Modell "alle Ticks" funktionieren wird? Hoffen Sie, dass ein modernes Bügeleisen alles verdauen kann?) Wo bleibt die Optimierung? Und das haben Sie mir vorgeschlagen, als ich nach einer Möglichkeit suchte, Text aus hochbelasteten Prozessen auszugeben (Ausgabe im Tester, im Modell "alle Ticks " und im Diagramm in der Schleife)?

Und als ich gesagt habe, dass es bei mir nicht funktioniert jedem Tick aktualisiert ...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

Warum nicht CCanvas verwenden, das speziell für diesen Zweck entwickelt wurde? Stimmt, ich habe nachgesehen, Sie haben irgendwo geschrieben, dass es angeblich unnötige Funktionen aufruft usw. Sie haben also die Begrenzung der Aktualisierungshäufigkeit für den Tester nicht vorgenommen, aber gleichzeitig wurden Sie durch die CCanvas-Funktionen irgendwie behindert... :)

Seltsam...


Und jetzt sind Sie dran, mir genau zu sagen, warum Sie meinen Code für "G-Code" halten. Nur mit Argumenten, nicht mit leerem Geschwätz!

 
Artyom Trishkin:
Du bringst ein interessantes Thema durcheinander... Was sind das für Leute...

Ich habe lediglich ein Angebot zur Teilnahme an dem Test angenommen, was dazu führte, dass ich dem Eingeladenen ein paar Fragen stellen musste...

 
Mihail Matkovskij:

...

Warum gibt es keine Begrenzung der BitmapLabel-Aktualisierungshäufigkeit, wenn es in einem Tester auf einem "all ticks"-Modell laufen soll? Hoffen Sie, dass das moderne Eisen alles verdaut?) Wo bleibt die Optimierung? Und genau das haben Sie mir vorgeschlagen, als ich nach einer Möglichkeit suchte, Text aus hochbelasteten Prozessen auszugeben (Ausgabe im Tester, auf allen Tick-Modellen und auf dem Diagramm in der Schleife)?

...

Und warum? Weil Sie selbst behaupten, dass ein Bitmap-Etikett schneller ist als ein normales Etikett. Und ein einziges reguläres Etikett wäre in diesem Fall in Bezug auf die Leistung fast unsichtbar.

 
Dmitry Fedoseev:

Ich habe lediglich ein Angebot zur Teilnahme an einem Test angenommen, was dazu führte, dass ich dem Eingeladenen ein paar Fragen stellen musste...

"Der Hut eines Diebes brennt"?... Jeder kann den Quellcode herunterladen und die Messungen wiederholen, die ich oben vorgestellt habe! Sie haben nur Beschwerden und Klagen. Erfundene, "defekte Links" und dergleichen...
Dmitry Fedoseev:

Warum? Weil Sie selbst behaupten, dass die Bitmap-Etikette schneller ist als die normale Etikette.

Das habe ich nicht gesagt. Und ich sprach von der Ausgabe von Informationen in mehr als einer Zeile. Deshalb habe ich ein Display gebaut, das eine große Anzahl von Zeilen ausgibt, um sie zu messen.

Die Ausgabe in Etiketten optimiert das Diagramm. In BitmapLabel müssen Sie hingegen ein Array von Pixeln übergeben, das Sie vorher ausfüllen. In diesem Fall wird das Pixel-Array gefüllt und der Text ausgegeben. All diese Vorgänge belasten die Anwendung, wenn sie zu oft aufgerufen werden. Für die Beschriftung hingegen müssen Sie nur eine Zeichenkette übergeben. Dies wurde bereits oben erwähnt.

Sie können mehr über die Geschwindigkeit herausfinden, indem Sie CCanvas- und Etikettengeschwindigkeitsmessungen in verschiedenen Modi vergleichen:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij:

Aber die Codes der anderen Mitglieder der Gemeinschaft für Sie g... Nun, Sie sind offensichtlich Autodidakt. Deshalb brauchen Sie auch keine ungeschriebenen Regeln, die besagen, dass Sie nicht über Ihre Kollegen lästern dürfen.

Und nun die Fragen zum Code. Ich werde nicht wie du sagen, dass es ein beschissener Code ist... ...aber ich werde trotzdem meine eigenen Anmerkungen machen.

Warum gibt es keine Begrenzung für die Aktualisierungshäufigkeit von BitmapLabel, wenn es im Testgerät mit dem Modell "alle Zecken" funktioniert? Hoffen Sie, dass ein modernes Bügeleisen alles verdauen kann?) Wo bleibt die Optimierung? Und das haben Sie mir vorgeschlagen, als ich nach einer Möglichkeit suchte, Text aus hochbelasteten Prozessen auszugeben (Ausgabe im Tester, im Modell "alle Ticks " und im Diagramm in der Schleife)?

Und als ich sagte, dass es bei mir nicht funktioniert, fingen Sie an, sich bei mir zu beschweren... Angeblich verstehe ich nichts und musste gnadenlos TextOut - ResourseCreate - ChartRedraw aufrufen. Stimmt,ChartRedraw ist aus irgendeinem Grund auskommentiert...


Warum nicht CCanvas verwenden, das speziell für diesen Zweck entwickelt wurde? Stimmt, ich sehe, Sie haben irgendwo geschrieben, dass es angeblich unnötige Funktionen aufruft, usw. Sie haben also die Häufigkeit der Updates für den Tester nicht eingeschränkt, aber gleichzeitig haben Sie die CCanvas-Funktionen irgendwie behindert... :)

Seltsam...


Und jetzt sind Sie dran, mir genau zu sagen, warum Sie meinen Code für "G-Code" halten. Nur mit Argumenten, nicht mit leerem Geschwätz!

  1. Auf welchem Planeten leben Sie? Wo haben Sie solche Regeln gefunden? Kommen Sie zu einer beliebigen Tankstelle und erfahren Sie, wer Ihr Auto das letzte Mal repariert hat. Selbst wenn es derjenige war, mit dem Sie jetzt sprechen. Und es geht nicht nur um Autos. Das ist nur das offensichtlichste Beispiel.
  2. Ich habe Ihnen diesen Code als Beispiel angeboten, nicht um ihn blind zu kopieren.
  3. Alle Prüfungen und Verzögerungen überlasten den Code und es ist schwieriger, einen solchen Code als Beispiel zu verwenden.
  4. Über welche Art von Optimierung sprechen wir, wenn der EA nicht für den Handel bestimmt ist? Welche Parameter sollen darin optimiert werden?
  5. Nachdem Sie meinen Vorschlag abgelehnt hatten, begann Nikolay, Ihnen alle Einzelheiten zu erklären. Ich habe gerade empfohlen, sein Thema auf Canvas durchzusehen. Sie haben gelogen und gesagt, dass Sie alles gelesen haben. Wie sollen sie Lügner behandeln (um es milde auszudrücken)?

Lassen Sie die Fliegen und Mistkäfer in Ihrem Code herumstochern. Ich habe genug andere interessante und nützliche Dinge zu tun.

 
Mihail Matkovskij:
"Der Hut eines Diebes brennt"?... Jeder kann den Quellcode herunterladen und die Messungen wiederholen, die ich oben vorgestellt habe! Sie hingegen haben nichts als Klagen und Beschwerden. Erfundene, "defekte Links" und dergleichen...

Das habe ich nicht gesagt. Und ich sprach von der Ausgabe von Informationen in mehr als einer Zeile. Deshalb habe ich für die Messung ein Display gebaut, das eine große Anzahl von Zeilen ausgibt.

Die Ausgabe in Etiketten optimiert das Diagramm. In BitmapLabel müssen Sie hingegen ein Array von Pixeln übergeben, das Sie vorher ausfüllen. In diesem Fall wird das Pixel-Array gefüllt und der Text ausgegeben. All diese Vorgänge belasten die Anwendung, wenn sie zu oft aufgerufen werden. Für die Beschriftung hingegen müssen Sie nur eine Zeichenkette übergeben. Dies wurde bereits oben erwähnt.

Sie können mehr über die Geschwindigkeit erfahren, indem Sie CCanvas- und Etikettengeschwindigkeitsmessungen in verschiedenen Modi vergleichen:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

Nun, ganz allgemein, unverschämte Schamlosigkeit und Unverschämtheit.

 
Es gibt ein Zitat mit Links in diesem Kommentar. Über diese Links können Sie immer noch eine Datei mit einer Klasse herunterladen, die kein limitFps-Feld hat, aber es wird darauf verwiesen. Sagen Sie mir auch, dass ich solche Links selbst "gezeichnet" habe.
 
Alexey Viktorov:
  1. Auf welchem Planeten leben Sie? Wo haben Sie solche Regeln gefunden? In jedem Autohaus werden Sie hören, wer Ihr Auto das letzte Mal repariert hat. Selbst wenn es derjenige war, mit dem Sie gerade sprechen. Und es geht nicht nur um Autos. Das ist nur das offensichtlichste Beispiel.

Offensichtlich befinden wir uns auf verschiedenen Planeten, wenn Sie diesem Paradigma folgen...!

Die Autowerkstatt gibt mir ein Beispiel... :) Wenigstens bist du heute Morgen etwas munterer geworden. :)

Alexey Viktorov:

Ich habe Ihnen diesen Code als Beispiel angeboten...

Dann frage ich noch einmal: Was ist der Unterschied zwischen Kanvas und mir? Es funktioniert auf die gleiche Weise. Nur die Funktionen, die Sie brauchen, werden nicht eliminiert, wie in Ihrem Beispiel. Der einzige Unterschied ist, dass es sich um OOP handelt, eine völlig andere Ebene, nicht um Ihre prozedurale Programmierung. :)

Alexey Viktorov:

Alle Überprüfungen und Verzögerungen überlasten den Code, und es ist schwieriger, einen solchen Code als Beispiel zu verwenden.

Natürlich, natürlich, natürlich... Überschreiben... Sie sind auch nicht sehr gut im Code! Wahrscheinlich wird man Ihnen mit einer Ausrede antworten: Nun, ich bin kein Programmierer... :) Du versuchst nur, anderen etwas beizubringen. :)

Alexey Viktorov:

Von welcher Art von Optimierung sprechen wir, wenn der Expert Advisor kein Trading Advisor ist? Welche Parameter sollte ich darin optimieren?

Ich bin verwirrt, was die Begriffe angeht :) Ich sprach von der Optimierung der Aktualisierungsrate des Bitmap-Labels. Das haben Sie nicht getan und mir Ihr Beispiel für die Verwendung in Hochlastprozessen angeboten.

Alexey Viktorov:
  1. Nachdem mein Angebot abgelehnt wurde, begann Nikolai, Ihnen alle Feinheiten zu erklären. Ich habe Ihnen nur geraten, sich sein Thema über Kanvas anzusehen. Sie haben gelogen und gesagt, Sie hätten alles gelesen. Wie wollen Sie Lügner behandeln (um es milde auszudrücken)?

In diesem Fall sind Sie der Lügner! Denn das habe ich nicht gesagt. Ich habe nur gesagt, warum ich eine weitere Canvas-basierte Bibliothek brauche. In der Tat, ein anderes Canvas. Sie haben mir dasselbe Canvas angeboten, und es funktioniert genau so. Nikolay hatte keine Lust zu erklären, was zu tun ist, damit Kanvas bei meiner Aufgabe schnell funktioniert. Und Sie verfügen offensichtlich nicht über die entsprechenden Kenntnisse. Sie haben Nikolai gesagt: "Verschwenden Sie nicht Ihre Zeit mit ihm". Er sagte: "Ich stimme zu". Das ist Ihre und Nikolais Erklärung. Programmierer...

Alexey Viktorov:

Lassen Sie die Fliegen und Mistkäfer in Ihrem Code herumstochern. Ich habe genug andere interessante und nützliche Dinge zu tun.

Ich werde nicht sagen, dass deine wahr ist... Aber in einem Punkt stimme ich Ihnen zu. Das müssen Sie wirklich nicht. Warum sollte ich die Schlussfolgerungen eines Amateurs brauchen...? Gehen Sie lieber in eine Autowerkstatt...

Das war's. Ich werde Ihnen keine detaillierteren Antworten geben. Weil es eine Zeitverschwendung ist. Ich würde lieber etwas Nützliches tun!