Algorithmen, Lösungsmethoden, Vergleich ihrer Leistung - Seite 14

 
Sergey Dzyublik:

1. Es macht keinen Sinn. Die Algorithmen werden in ihrer Gesamtheit anhand ihrer relativen Ergebnisse verglichen.
2. Die Lösung ist bereits integriert - es handelt sich um eine Standardbibliothek<Generic\ArrayList.mqh>.

1. Das heißt, die Geschwindigkeit des Algorithmus ist nicht wichtig. Die Lösung ist "konzeptionell leistungsfähig", und das reicht aus. Gut.

2) Sie schließen sich also einfach über das Plug-in an und das war's? Gut.

//--------------------------------------------------------------------

Wenn das Hauptkriterium für die Bewertung des Algorithmus"konzeptionell überzeugend" ist, dann habe ich verloren.

Wenn das Hauptkriterium des Algorithmus "Einfachheit, Schnelligkeit und Bequemlichkeit " ist, habe ich gewonnen.

An diesem Punkt können wir das Thema abschließen.

 
fxsaber:

  1. Warum ist der Stil so, dass zuerst die Schnittstellen geschrieben werden und erst dann die Klassen (als Abkömmlinge ihrer jeweiligen Schnittstellen)?
  2. Warum wird dies getan? (StringToUpper(GeneratorName);)
  3. Offensichtlich haben sie es einfach vergessen.




Ich bin etwas überrascht, dass sie es über CArrayList gemacht haben, anstatt die gerade diskutierte HashMap zu verwenden. Ich hätte mich nicht an der krummen Vorlage des Autors orientieren sollen, in der Transaktionen Indizes und keine Tickets sind.

HashMap wäre wahrscheinlich klarer, praktischer und schneller gewesen.


Ich war selbst überrascht, dass sich dieser Code so leicht lesen lässt. Allerdings habe ich selbst noch nicht die Abstraktionsebene erreicht, die in der Programmierung gezeigt wird. Mein bisheriger Stil ist prozedural + OOP. Dieser Code ist reines OOP. Offenbar handelt es sich um eine gut erlernte Programmierschule. Nurdie Arbeitenvon Stanislav Korotky auf dieser Website haben einen ähnlichen Abstraktionsgrad.


1) Der Stil ist ein solcher für die Integration.
Wenn Sie Ihre Klasse testen müssen, können Sie die Schnittstelle für den Test erben und implementieren.
Wenn Sie einen eigenen Generator benötigen, können Sie ihn einrichten.


2) Ja, das ist überflüssig, ein Overkill, danke:

StringToUpper(generatorName);



3) Nein, habe ich nicht:

      //TODO add shared_ptr / move out generator (Dependency Injection)
      IGenerator<T>* generator = CreateGenerator<T>();

Es wurde ursprünglich untershared_ptr geschrieben, von dem ich keine Implementierung habe.
Aber es ist eine gute Idee, dieIGenerator<T>-Abhängigkeit in die Funktionsparameter zum Testen aufzunehmen.

 
Sergey Dzyublik:

3) Nein, ich habe es nicht vergessen:

Es wurde ursprünglich untershared_ptr geschrieben, von dem ich keine Implementierung habe.

Verstehe, das hatte ich nicht bemerkt.

 
Länge der Zeichenfolge, wissen Sie, wie viele Zeichen maximal?
 
Renat Akhtyamov:
Länge der Zeichenfolge, weiß nicht - wie viele Zeichen maximal?

Ich warte auf eine Antwort:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Algorithmen, Lösungsmethoden, Vergleich ihrer Leistung

Wladimir Karputow, 2017.12.11 08:37

Korrigieren Sie mich, aber ist die Länge der Zeichenkette nicht endlich?

https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx

Ich kann diese Einschränkung für MQL5 einfach nicht finden...


 

Es gibt ein klares Muster der wiederholten Missachtung der Gemeinschaft und ein klares Muster der Provokation.

Es ist nicht immer möglich, sie (die Beiträge einer Person in verschiedenen konstruktiven Threads) nicht zu lesen, und sie danach zu entwickeln und zu vergessen, ist noch weniger möglich.

Schleppangeln und Spucken in den Händen der Hilfe, deren Anzahl diese Ressource stark von der positiven Seite unterscheidet.


Könnte falsch sein.

 
Vladimir Karputov:

Korrigieren Sie mich, aber ist die Länge einer Zeichenkette nicht endlich?

Nur Speicherbegrenzung

void OnStart()
{
  string Str;
  
  Print(StringInit(Str, 1 e8)); // true - 100 Mb
}
 
Реter Konow:

1. Das heißt, die Geschwindigkeit des Algorithmus ist nicht wichtig. Die Lösung ist "konzeptionell leistungsfähig", und das reicht aus. Gut.

2) Sie schließen sich also einfach über das Plug-in an und das war's? Gut.

//--------------------------------------------------------------------

Wenn das Hauptkriterium für die Bewertung des Algorithmus"konzeptionell überzeugend" ist, dann habe ich verloren.

Wenn das Hauptkriterium für die Bewertung des Algorithmus -"Einfachheit, Geschwindigkeit und Komfort" - dann gewinne ich.

Sie können das Thema in diesem Punkt abschließen.


Tut mir leid, das können Sie nicht, ich bereue es.
Aber was sind Sie doch für ein dummer Mensch.
Das Problem ist nicht, dass jemand etwas nicht weiß, sondern dass er überhaupt keine Lust hat, etwas zu lernen.

Was macht es für einen Unterschied, ob man 10ms oder 8ms braucht.
Wenn Sie nur relativ vergleichen wollen, wer schneller ist und um wie viel, und dabei nicht vergessen, die Wiedergabetreue zu überprüfen.

 
fxsaber:

Nur Speicherbeschränkung

OOO !!!!!

Herzlichen Dank!

weil meine Saite unterschnitten ist und ich nicht wusste, wie ich sie verlängern kann

Macht das Thema nicht kaputt, streitet euch nicht hier.

 

Lösung auf dem Blatt - so viel Code.... Könnten Sie nicht etwas genauer sein?

Ich versuche nur, es den anderen klar zu machen)

Im Allgemeinen kann ich mich auch nicht daran gewöhnen, die Standardbibliotheken zu verwenden - und ich denke, viele Leute hier haben ihre eigenen Versionen desselben Blattes.

dasselbe Problem

d.h. wir speichern alle Werte, Ticker mit einer Magie - Preis, Eröffnungskurs, Zeit, Schlusskurs. d.h. es wird für die Buchhaltung der virtuellen Aufträge sein

Die schnellste Lösung wäre es, alle Informationen in der Struktur zu speichern. Und hier wird der Zugriff über den geordneten Referenzindex sammiva erfolgen.


Übrigens, die Frage, wie ein Druck zu definieren. kann einige fertige Lösungen sein. Kurz gesagt, es sollte nicht so oft drucken - aber vor dem Fehlschlag würde es die notwendigen Informationen ausgeben, oder irgendwie bequem auf diese Weise anpassen - und vorzugsweise ohne die globalen Variablen