Diskussion zum Artikel "Statistische Verteilungen in MQL5 - Nur das Beste aus R" - Seite 9

 
Sergiy Podolyak:


Wie Sie stelle ich die Lesbarkeit von Programmen an die erste Stelle, nicht die OOPs.

Und nun zum Kern Ihres Beitrags über die Lesbarkeit von Programmen in verschiedenen Sprachen.

Lassen wir C beiseite - es ist hier nicht relevant.

Machen wir es uns einfach, was wir in der Praxis antreffen.

Hier ist der Code in R:

a<- b + c

Wie wird der Code in MKL aussehen? Das ist überhaupt nicht bekannt, denn für MKL muss man angeben, was b und c sind.

Lassen Sie mich also klarstellen: Vektoren

Also Ihr Code Nummer 1

Und dann habe ich es mir anders überlegt und beschlossen, dass es sich um Matrizen handelt. Wie wird Ihr Code auf MCL #2 aussehen? In R bleibt der Code derselbe wie oben, aber was wird in der MCL passieren? Was wird mit der Sichtbarkeit passieren?

Und dann habe ich es mir anders überlegt und beschlossen, die geraden Elemente des einen mit den ungeraden Elementen des anderen zu addieren. In R sind dies Indizes, die selbst Objekte von Operationen sind.

Und nun Ihr Code in der MKL #3?

MKL hat nicht die Werkzeuge, um komplexe Objekte zu handhaben, und ich kann diese Idee hier seitenweise in Richtung Komplikationen entwickeln. Auf R werden es ein paar Zeilen sein, aber auf MKL..... Wenn man überhaupt kein komplexes Objekt aus einer Menge von Objekten machen muss.

Hier geht es um Datenstrukturen

Und jetzt die Funktionalität. Nehmen wir nicht das, was in MKL überhaupt nicht verfügbar ist, sondern Zehntausende von Funktionen sind nicht verfügbar. Nehmen wir das, was verfügbar ist. Zufällige Wälder.

Der Code ist also in R.

# подгонка и предсказание на наборе обучения целиком
        set.seed(849)
        rf              <- randomForest(trainX, trainY, 
                                                mtry    =       3,
                                                nodesize = 1,
                                                ntree   =       300); rf
        plot(rf)
        
        # ---------------------------------
        #  рисуем результат
        roc.plot(as.integer(as.factor(trainY))-1,
                 rf$votes[,2], main="")
        # ---------------------------------
        #  Предсказываем
                pred_rf         <-  predict(rf, 
                                                newdata = testX, 
                                                type = "response")
        # ---------------------------------
        #  сравниваем вне выборки
        table(pred_rf,  testY,       dnn = c("Vorhersage"., "Tatsache."))

Und nun Ihre Antwort zu alglib, aber vergessen Sie nicht ashi. Können wir nicht zig Seiten Wahnsinn von alglib kopieren?

Die von Ihnen angeführten Vergleiche sind im Fall von C und MCL korrekt, im Fall von R absolut nicht. Es ist Wahnsinn, Code von MKL nach R umzuschreiben. R hat ein riesiges Toolkit (8.000 Pakete und ca. 130.000 Funktionen) und man sollte in R schreiben, nachdem man sich vorher mit seinen Möglichkeiten vertraut gemacht hat und nicht einfach Code von einer Sprache in eine andere umschreiben.

PS.

Ich möchte anmerken, dass dies ein Teil eines echten EA ist, der die Bewegungsrichtung auf H4 vorhersagt.

 
Sergiy Podolyak:


Die von Ihnen angeführten Vergleiche sind überhaupt nicht korrekt.


R ist eine algorithmische Sprache der Extraklasse und verfügt über eine Vielzahl von Funktionen, die MKL nicht hat. Und der Grund dafür ist offensichtlich. MKL ist aus dem Terminal entstanden, R aus der Statistik. Aus diesem Grund bin ich gegen jeden Vergleich der algorithmischen Fähigkeiten dieser beiden Sprachen - sie sind für unterschiedliche Fachgebiete gedacht.

Alles, was ich über R schreibe, ist, dass R eine Ergänzung für MKL ist, und zwar in dem wichtigsten Teil des Handels - bei der Entscheidungsfindung über Positionen.

[Gelöscht]  
СанСаныч Фоменко:

Wie Sie stelle ich die Lesbarkeit von Programmen an die erste Stelle, nicht die OOPs.

Und nun zur Essenz Ihres Beitrags über die Lesbarkeit von Programmen in verschiedenen Sprachen.

.......

San-Sanych, mein Lieber, ich bin ein Programmierer. Verstehen Sie das?

Nein, du verstehst nicht.

Ich bin ein Programmierer.

Das heißt, ich bin ein Mensch , der eine Arbeit nicht zweimal macht.

Das Programmieren selbst, wie auch die gesamte Kybernetik, wie auch die gesamte Computermathematik, wie auch die gesamte Mathematik - all das wurde aus Faulheit geboren - um die Arbeit nicht zweimal zu machen.

Ich werde also nicht EINE weitere marsianische Syntax einer R-Sprache lernen.

Warum? Weil ich spezifisch faul bin (lies: "erfahrener seichter Programmierer") und nicht süchtig nach neuen Syntaxen und Frameworks, von denen es unzählige gibt.

Und zweitens: jede neue dumme oder halbdumme Syntax eines neuen Frameworks - DISQUALIFIZIERT mein ungetrübtes mathematisches Denken. Verstehen Sie?

Je mehr ich in neuen Frameworks bade, die von wer-weiß-wem und mit wer-weiß-was-Denken geschrieben wurden, desto mehr werde ich durch meine "Warum ist das so?"-Fragen VERDUMMT. Und das ist keine gute Sache. Wenn Sie eine neue Syntax akzeptieren, akzeptieren Sie auch die Denkweise ihres Autors, und das wirkt sich auf Ihre Weltanschauung aus. Der Autor der englischen Sprache sind die Engländer und Amerikaner - sie waren im Allgemeinen anständige Menschen zu dieser Zeit. Der Autor der C-Sprache und der MQL4-Syntax ist eine Gruppe hochqualifizierter Programmierer. Und der Autor der R-Syntax ist ein namenloser anonymer Autor, ein Nicht-Physiker, der vielleicht ein schizoider Verrückter ist.

Die Sprache C (und MQL4-5) leidet nicht darunter, sie ist dem Englischen, in dem Algorithmen und mathematische Texte geschrieben werden, so nahe wie möglich.

Während also all die jungen Leute schnell von einem Framework zum anderen eilen, kaue ich langsam mein Gras , studiere den Algorithmus, komme dann langsam vom Berg herunter und überlege, wie ich ihn in kleine, verständliche Unterroutinen zerlegen kann, und schreibe dann ........ ein funktionierendes Programm, das mir seit über 20 Jahren treu dient.

In meiner OBz-Unterprogrammbibliothek, die ich weiter oben erwähnt habe, gibt es ein Verfahren zur Lösung von linearen Gleichungssystemen nach Gauß-Giordano, das ich um 1998-1999, also vor 16-17 Jahren, in C geschrieben habe. Es funktioniert nach wie vor und es gibt nichts zu ändern. Um genauer zu sein, wurde bei der Übertragung von C nach MQL4 ein Fehler entdeckt, der in sehr seltenen Fällen zu ungenauen Ergebnissen führen kann. Der MQL4-5-Compiler erzeugte eine korrekte Warnung, die kein Compiler, einschließlich Watcom, Borland, Lattice C (MS Visual Studio), vieler verschiedener Versionen, in 16 Jahren je erzeugt hat.

An die Metaquotes, vielen Dank.

 
СанСаныч Фоменко:
Die von Ihnen angeführten Vergleiche sind überhaupt nicht korrekt.


R ist eine algorithmische Sprache der Extraklasse und verfügt über eine Vielzahl von Funktionen, die MKL nicht hat. Und der Grund dafür ist offensichtlich. MKL ist aus dem Terminal entstanden, R aus der Statistik. Aus diesem Grund bin ich gegen jeden Vergleich der algorithmischen Fähigkeiten dieser beiden Sprachen - sie sind für unterschiedliche Fachgebiete gedacht.

Alles, was ich über R schreibe, ist, dass R eine Ergänzung für MKL ist, und zwar in dem wichtigsten Teil des Handels - bei der Entscheidungsfindung über Positionen.

Dank Ihrer ausführlichen Beiträge über die Sprache R beginne ich zu verstehen, worum es dabei geht. Ihrer Beschreibung dieser Sprache entnehme ich, dass sie nicht auf der Grundlage einfacher Funktionen aufgebaut ist, sondern auf der Grundlage ganzer Mechanismen, von denen jeder für die Lösung einer eigenen Klasse von Aufgaben konzipiert ist und durch einen kurzen und einfachen Aufruf gestartet wird. Natürlich sehen solche Eigenschaften attraktiv aus, aber die Vereinigung mit einem solchen Giganten wird die eigene Entwicklung von MQL stagnieren lassen.

Trotz aller Vorteile anderer Sprachen möchte ich persönlich, dass MQL unabhängig wächst und sich entwickelt und nicht von der Macht eines anderen "verdorben" wird.

Das Recht auf unabhängige und eigenständige Entwicklung ist das wertvollste Recht im Leben.

Sie argumentieren mit der Logik einer Person, die von außen zu MQL gekommen ist und ein bereits ausgebildeter Spezialist ist, ich argumentiere als eine Person, die in MQL "aufgewachsen" ist.

Wir können uns nicht gegenseitig verstehen.

 

Ja, ich bin ein Außenstehender und kann mir nicht helfen.....

So sieht das folgende Zitat einer Person von außen aus.

Also das Zitat:

Das Recht, sich unabhängig und selbständig zu entwickeln, ist das wertvollste Recht im Leben.

Ich füge hinzu:

Sagte Mowgli und sprach die Weisheit aus, die er in seinen ersten 16 Jahren begriffen hatte:

"Du und ich sind von gleichem Blut."

PS.

Wollte zuerst auf einen früheren Beitrag antworten, habe es mir dann aber anders überlegt, da dies auf so viele in diesem Forum zutrifft.

PSPS

Männer!!!

Verbringt 3 Stunden eures Lebens statt mit diesem Forum. Nehmt R, nehmt R, nehmt meinen Artikel in Form einer Anleitung und eines Anhangs zu diesem Artikel, um keine Zeit mit Quellenangaben zu verschwenden, und bevor ihr am Hang ankommt, werdet ihr sehen, dass ihr in einem Loch gesessen habt....

Es ist nur eine Frage von 3 oder 4 Stunden. Ihr Gehirn wird anders sein. Und das ist eine Menge wert.

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

Wie Sie stelle ich die Lesbarkeit von Programmen an die erste Stelle, nicht die OOPs.

Und nun zum Kern Ihres Beitrags über die Lesbarkeit von Programmen in verschiedenen Sprachen.

Lassen wir C beiseite - es ist hier nicht relevant.

Machen wir es uns einfach, was wir in der Praxis antreffen.

Hier ist der Code in R:

a<- b + c

Wie wird der Code in MKL aussehen? Das ist überhaupt nicht bekannt, denn für MKL muss man angeben, was b und c sind.

Ich werde ein paar Fragen stellen.

1. Ist Ihnen klar, dass R in C++ geschrieben ist, dass R im Wesentlichen eine Reihe von Wrappern von C++-Funktionen und -Klassen ist? Ist es dasselbe, wie wenn man einen Haufen von stat- und mat-Bibliotheken in C sammelt, sie zu Klassen formalisiert und sie z.B. D nennt?

2. Wenn Sie verstanden haben, was ich in der ersten Frage gefragt habe, hier ist die zweite: Verstehen Sie, dass Matrizen, Vektoren oder irgendetwas anderes in MQL so aussehen kann:

a=b+c;

?

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

Ja, ich bin ein Außenstehender und kann mir nicht helfen.....

So sieht das folgende Zitat einer Person von außen aus.

Also das Zitat:

Das Recht, sich unabhängig und selbständig zu entwickeln, ist das wertvollste Recht im Leben.

Ich füge hinzu:

Sagte Mowgli und sprach die Weisheit aus, die er in seinen ersten 16 Jahren begriffen hatte:

"Du und ich sind von gleichem Blut."

PS.

Wollte zuerst auf einen früheren Beitrag antworten, habe es mir dann aber anders überlegt, da dies auf so viele in diesem Forum zutrifft.

PSPS

Männer!!!

Verbringt 3 Stunden eures Lebens statt mit diesem Forum. Nehmt R, nehmt R, nehmt meinen Artikel in Form einer Anleitung und eines Anhangs zu diesem Artikel, um keine Zeit mit Quellenangaben zu verschwenden, und bevor ihr am Hang ankommt, werdet ihr sehen, dass ihr in einem Loch gesessen habt....

Es ist nur eine Frage von 3 oder 4 Stunden. Ihr Gehirn wird anders sein. Und das ist eine Menge wert.

Zeigen Sie Ihr persönliches Ergebnis bei der Verwendung der Sprache R.

Zeigen Sie Ihr Talent, nicht das Talent der R-Entwickler.

Können Sie das?

Ein Mensch mit Talent braucht ein Problem, ein Mensch ohne Talent braucht eine Lösung.

 
Реter Konow:

Zeigen Sie Ihre persönlichen Ergebnisse bei der Verwendung der Sprache R.

Zeigen Sie Ihr Talent, nicht das Talent der R-Entwickler.

Können Sie das?

Ein Mensch mit Talent braucht ein Problem, ein Mensch ohne Talent braucht eine Lösung.

Das ist eine gute Frage. Ich stimme zu.
 
Реter Konow:

Zeigen Sie Ihre persönlichen Ergebnisse bei der Verwendung der Sprache R.

Zeigen Sie Ihr Talent, nicht das Talent der R-Entwickler.

Können Sie das?

Ein Mensch mit Talent braucht ein Problem, ein Mensch ohne Talent braucht eine Lösung.

Was meinen Sie mit "zeigen"?

Ich habe ein PAMM, weil das Pfund jetzt nicht funktioniert....

Das ist nicht der Punkt....

Ich schreibe über Modelle, aber es geht nicht um Modelle - es geht immer um Geld, oder genauer gesagt um die Gewissheit, es in der Zukunft zu erhalten.

Meiner Meinung nach liegt das Hauptproblem von Handelssystemen auf den Finanzmärkten nicht in der Anwendung oder Nichtanwendung komplexer mathematischer Modelle, sondern im Übertraining (Überanpassung) eben dieser TS. Übertraining äußert sich darin, dass das TS im Laufe der Zeit (wenn auch nicht sofort) seine Leistung im Verhältnis zu seinem Training verliert.

Um dieses Problem zu lösen, versuche ich zu beweisen, dass die von mir entwickelten Handelssysteme NICHT übertrainiert sind. Das heißt, ich möchte sicher sein, dass sich die künftige Leistung des TS nicht wesentlich ändert und auf jeden Fall nicht meine Einlage aufzehren wird.

Ich bin mit dieser Aufgabe beschäftigt. Alle notwendigen Werkzeuge für diese Aufgabe sind in R in Hülle und Fülle vorhanden. In MKL gibt es überhaupt keine entsprechenden Werkzeuge.

Schauen Sie sich Burnakovs Thread über maschinelles Lernen an. Dort habe ich mich ausführlich zu diesem Thema geäußert. Übrigens bin ich nicht der Einzige.

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

Um dieses Problem zu lösen, versuche ich zu beweisen, dass die Handelssysteme, die ich entwickelt habe, NICHT TRANSFORMIERT sind. Das heißt, ich möchte sicher sein, dass sich die zukünftigen Leistungsindikatoren des TS nicht wesentlich ändern und auf jeden Fall nicht meine Einlage aufbrauchen.

Ich bin mit dieser Aufgabe beschäftigt. Alle notwendigen Werkzeuge für diese Aufgabe sind in R in Hülle und Fülle vorhanden. In MKL gibt es überhaupt keine entsprechenden Werkzeuge.

Man sagt Ihnen, dass Sie fertige Lösungen für Ihre Aufgaben verwenden, dass Sie mit dem zufrieden sind, was andere gemacht haben, dass Sie nichts Neues schaffen werden, was über das hinausgeht, was bereits in R vorhanden ist (Talent der R-Entwickler). Und um Vertrauen in die fett markierten Lösungen zu haben, braucht man mehr als fertige Lösungen in R, man muss zumindest die Fähigkeit haben, in das hineinzuschauen, was andere geschaffen haben, man muss in der Lage sein und die Fähigkeit haben, es zu ändern oder etwas Neues zu schaffen. Andernfalls werden Sie nie Vertrauen haben.