Bei einer Anwendung des OOP - Seite 5

 
Dmitry Fedoseev:

Macht es einen Unterschied, ob Sie jedes Mal so schreiben oder nicht?

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

oder so:

s.Ask() 

?

Gibt es einen Unterschied zwischen:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

Und es gibt noch mehr interessante, zum Beispiel:

c <- b*a

wobei alle Bezeichner Matrizen sind und diese Matrixoperation mit dem effizientesten Code für Windows durchgeführt wird.

??????

Darum geht es nicht

Als MQL4 eine perfekt zwischen Einfachheit und Möglichkeiten ausbalancierte Sprache war, begannen viele Programmierer über all die "Goodies" zu diskutieren und konnten sich einfach nicht beruhigen. Und so kam es zu dem Arschloch und dem HAPPENING der Verluste.

 
СанСаныч Фоменко:

Gibt es einen Unterschied zwischen:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

Und es gibt noch mehr interessante, zum Beispiel:

c <- b*a

wobei alle Bezeichner Matrizen sind und diese Matrixoperation mit dem effizientesten Code für Windows durchgeführt wird.

??????

Darum geht es nicht

Als MQL4 eine perfekt zwischen Einfachheit und Möglichkeiten ausbalancierte Sprache war, begannen viele Programmierer über all die "Goodies" zu diskutieren und konnten sich einfach nicht beruhigen. Und so kam es zu dem Arschloch und dem HAPPENING der Verluste.

Es ist falsch, Sprachen zu vergleichen, die mit Matrizen und Zahlen arbeiten.
 
СанСаныч Фоменко:

Gibt es einen Unterschied zwischen:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

Und es gibt noch mehr interessante, zum Beispiel:

c <- b*a

wobei alle Bezeichner Matrizen sind und diese Matrixoperation mit dem effizientesten Code für Windows durchgeführt wird.

??????

Darum geht es nicht

Als MQL4 eine perfekt zwischen Einfachheit und Möglichkeiten ausbalancierte Sprache war, begannen viele Programmierer über all die "Goodies" zu diskutieren und konnten sich einfach nicht beruhigen. Sie haben also ein Arschloch und eine Fülle von Verlusten.

Was war, bleibt. Wenn Sie das nicht wollen, verwenden Sie kein OOP. Sie müssen die PLO nicht anfassen, Sie müssen nicht darüber nachdenken, Sie können so leben wie früher.

Nach dem "mit <- b*a" vor dem Öffnen einer Position müssen noch eine Reihe von Aktionen durchgeführt werden, wenn man sie mit OOP durchführt, wird das Leben angenehmer und macht mehr Spaß.

Warum beschweren Sie sich nicht bei den Entwicklern von R oder Matlab über die Tatsache, dass es unmöglich ist, mit diesen Programmen Positionen zu eröffnen und dass sie im Allgemeinen nicht direkt mit der Ausführung von Geschäften verbunden sind? Sie können jede Programmiersprache auf die gleiche Weise erreichen, fast keine Sprache hat Aktionen mit Matrizen usw. Sie vergleichen Dinge aus verschiedenen Kategorien.

 
Dmitry Fedoseev:

Was dort war, ist alles noch da. Wenn Sie das nicht wollen, verwenden Sie kein OOP. Sie müssen OOP nicht mehr anfassen, Sie müssen nicht mehr darüber nachdenken, Sie leben wie früher.

Nach dem "mit <- b*a", bevor Sie eine Position eröffnen, müssen Sie noch eine Reihe von Aktionen durchführen. Wenn Sie diese mit OOP durchführen, wird das Leben angenehmer und macht mehr Spaß.

Warum beschweren Sie sich nicht bei den Entwicklern von R oder Matlab über die Tatsache, dass es unmöglich ist, mit diesen Programmen Positionen zu eröffnen und dass sie im Allgemeinen nicht direkt mit der Ausführung von Geschäften verbunden sind? Sie können jede Programmiersprache auf die gleiche Weise erreichen, fast keine Sprache hat Aktionen mit Matrizen usw. Sie vergleichen Dinge aus verschiedenen Kategorien.

Lassen Sie mich hinzufügen, mit OOP, wenn nötig, können Sie eine CMatrix-Klasse, die Matrix-Operationen implementiert und überschreiben + - * / = in ihm zu erstellen.

Und alles wäre so einfach. Ich muss nicht einmal eine CMatrix erstellen, alles ist bereits in einer der Bibliotheken implementiert.

CMatrix m1, m2;
// заполняем матрицы
CMatrix m3 = m1 + m2;

Übrigens, ich werde San-Sanych verärgern )). Sehr geehrter Herr, wissen Sie, dass Ihr Lieblings-R auch zwei OOP-Systeme hat? )))))))) Betrinken Sie sich nur nicht vor Kummer ))

R. Diese Sprache für die statistische Datenanalyse verfügt auch über 2 objektorientierte Programmiersysteme, S3 und S4. Beide werden von der Sprache S geerbt (was nicht verwunderlich ist, da R eine Open-Source-Implementierung der kommerziellen Sprache S ist). S4 ist größtenteils konsistent mit den OOP-Implementierungen der modernen Mainstream-Sprachen. S3 ist eine leichtere Variante, die elementar mit Hilfe der Sprache selbst implementiert wird: Es wird eine allgemeine Funktion geschaffen, die Anfragen anhand des Attributs "Klasse" des empfangenen Objekts weiterleitet.

 
Alexey Volchanskiy:

Zusätzlich können Sie, falls erforderlich, mit Hilfe von OOP eine CMatrix-Klasse erstellen, die Matrixoperationen implementiert, und darin + - * / = überschreiben.

Und alles wird genauso einfach sein. Ich brauche nicht einmal eine CMatrix zu erstellen, alles ist bereits in einer der Bibliotheken implementiert.

Sie können, aber SanSan8 wird Ihnen antworten, dass dies nicht der beste Weg wäre, da in diesem R, wie SanSan8 glaubt, diese Matrix-Operationen auf die beste Art und Weise durchgeführt werden, wahrscheinlich durch Kodierung in reinem Assembler.

Der Unterschied zu R ist, dass in R alles vorgefertigt ist, man nimmt es einfach und benutzt es, während man hier alles selbst machen muss.

 
Dmitry Fedoseev:
Sie können, aber SanSan8 wird antworten, dass es nicht in der besten Art und Weise getan werden würde, es ist wie in diesem R, wie SanSan8 denkt, diese Matrix-Operationen sind in der besten Art und Weise getan, wahrscheinlich durch die Codierung auf die reine Assembler.

Ich fügte zu meinem vorherigen Beitrag - stellt sich heraus, R hat OOP. (Schrecklich)).

Übrigens, ich habe diese R ausprobiert - sie ist eine seltene Bremse. Kein Wunder - es ist ein Dolmetscher. Also, kein Asm.

 
Alexey Volchanskiy:

Ich fügte zu meinem vorherigen Beitrag - stellt sich heraus, R hat OOP. (Schrecklich)).

Übrigens, ich habe diese R ausprobiert - sie ist eine seltene Bremse. Kein Wunder - es ist ein Dolmetscher. Also, kein Asm.

Wenn Sie nicht wissen, wie man Katzen kocht, schweigen Sie...

R. Diese Sprache für die statistische Datenanalyse verfügt auch über 2 objektorientierte Programmiersysteme

Na und? Da ist noch viel mehr drin, was MQL nicht hat. Na und?

Das ist nicht der Punkt. Die algorithmische Überlegenheit einer Sprache gegenüber einer anderen spielt ab einer bestimmten Fähigkeitsschwelle in Bezug auf das Fachgebiet überhaupt keine Rolle mehr.

Sie kauen hier auf dem Geschmack der Programmierer herum, und ich persönlich bin nur wegen des Handels hier.

PS.

Ihre Matrix-Klassen müssen die Intel-Bibliothek für Matrix-Operationen verwenden, dann werden Sie vielleicht R in dieser Angelegenheit gleichziehen.

 
Vasiliy Sokolov:

Hier ist es. Hierarchie der Handelsklassen in der Standardbibliothek:

Das bedeutet, dass das Geldverwaltungsmodul ein Expert Advisor ist. Der Trailing-Stop ist ebenfalls ein Expert Advisor. Expert Advisor umfasst andere Expert Advisors. Diese inkonsistente Vererbung resultiert aus der Tatsache, dass sowohl der Trailing-Stop als auch das Money-Management Zugriff auf einige private Daten und Methoden des Basis-Expert Advisors benötigen.

Nun, das ist einfach ein schlecht durchdachtes Klassensystem.

Andererseits basiert meine Expert Advisor-Vorlage vollständig auf den Klassen der Standardbibliothek, und ich sehe keine besonderen Probleme. Die Ideologie der Expert Advisor Parts Factory ist implementiert. Für den Benutzer von Klassen besteht das Schreiben eines EA darin, genau diese Fabrik zu schreiben, die einen Generator für Eingänge, Filter, Definierer von SL-TP und andere Komponenten des TS erstellen kann.

 
СанСаныч Фоменко:

Es gab MQL4 - eine Sprache, die perfekt zwischen Einfachheit und Funktionen ausbalanciert war, aber nein, ein Haufen Programmierer fing an, über "Goodies" zu reden und konnte sich nicht mehr beruhigen. Und das ist es, was wir haben - ein Arschloch und ein LOSS an Verlusten.

Etwas, das ich nicht verstehe... Nun, verwenden Sie keine MQL5-Innovationen, das ist alles.

Ich mag Vererbung und virtuelle Funktionen sehr. Aber wenn ich etwas Einfaches und Schnelles machen will, benutze ich sie nicht. Gleichzeitig ist die Verarbeitung komplexer Daten mit OOP viel bequemer und - was wichtig ist - auch die weitere Pflege ist sehr einfach.

 
George Merts:

Ich versteh das nicht... Nun, verwenden Sie keine Innovationen von MQL5, das ist alles.

Ich mag Vererbung und virtuelle Funktionen sehr gerne. Aber wenn ich schnell etwas Einfaches machen will, benutze ich sie nicht. Gleichzeitig ist es viel bequemer, OOP zu verwenden, wenn eine komplexe Verarbeitung komplexer Daten erforderlich ist, und, was wichtig ist, die weitere Wartung ist ebenfalls sehr einfach.

Ich würde Ihnen voll und ganz zustimmen, gäbe es da nicht einen unangenehmen Umstand: MQL verfügt über KEINE Werkzeuge für die statistische Analyse von Kursen. Dies macht sich besonders beim Umgang mit R bemerkbar. Jede Kleinigkeit erfordert eine Programmierung. Und ich bin sogar still, wenn ich über Modelle spreche.

Aber das ist noch nicht alles.

Externe Bibliotheken sind untersagt, daher der R-Marktplatz. Wenn es diese Einschränkung nicht gäbe, würde ich einfach ohne jedes Risiko reich werden, indem ich sehr hochwertige Indikatoren verkaufe.

Aber das ist noch nicht alles.

Auf der Website gibt es eine Gruppe von Kampfprogrammierern, die eifrig argumentieren, dass es sich um eine Programmierseite handelt und Beiträge zum Thema Handel daher unangebracht sind.

Das ist der Hintergrund für OOP. Ansonsten ist es eine Frage des Geschmacks.

Grund der Beschwerde: