Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie denken in Amöbenkategorien :) .
"Wir sollten die kleinen Effizienzgewinne vergessen, die in etwa 97 % der Fälle erzielt werden: Eine vorzeitige Optimierung ist die Wurzel allen Übels. Dennoch sollten wir unsere Chancen in diesen kritischen 3 % nicht verpassen".
Dies ist das vierte Mal, dass ich in diesem Forum zitiert werde.
Es erfordert nicht viel Intelligenz, zu zitieren und zu kopieren, selbst ein Affe kann versuchen, es zu lernen. :)
Aber Ihren Gedanken bewusst zu erklären - das ist schwieriger und beansprucht bereits das Niveau des Homo sapiens.
Wollen Sie also versuchen, einen Sinn darin zu sehen, oder sind Sie noch nicht so weit? :)
Seit einigen Jahren quäle ich mich regelmäßig mit dem Gedanken, einen Strategie-Tester für mehrere Währungen zu implementieren.
Ich habe mehrere Implementierungen gesehen, Ideen gelesen und mir sogar MT5 angesehen.
Ich meine, warum brauche ich es, wenn es einen MT5 gibt, wo Multicurrency bereits im Terminal implementiert ist?
Das Schreiben eines fehlerfreien internen Multiwährungsstrategie-Testers ist eine sehr komplexe Aufgabe, die nur selten abgeschlossen wird.
Ich empfehle, MetaTrader 5 in der 64-Bit-Version erneut auszuprobieren:
- mehrere Währungen und detaillierte Prüfung von Handelsstrategien
- alle historischen Daten, einschließlich der Spread-Historie, stehen bereit
- Die 64-Bit-Version von MetaTrader 5 ermöglicht es Ihnen, mit großen Datenmengen zu arbeiten (Sie benötigen nur 8/12/16 Gb Speicher)
- MQL5-Code ist um ein Vielfaches schneller als MQL4 (kompilierter nativer Code mit aktivem SSE2)
- Dasobjektorientierte MQL5 ermöglicht es Ihnen, viel anspruchsvollere Expert Advisors zu schreiben.
- Ein verteiltes Prüfgerät ermöglicht die Verwendung mehrerer Remote-Agenten für die Prüfung
Es ist besser, ein Tool zu verwenden, das sich bereits vielfach bewährt hat und von den Entwicklern aktiv weiterentwickelt und unterstützt wird.Die Code-Optimierung erfordert ein Mindestmaß an Wissen darüber, wie ressourcenintensiv ein Code-Fragment in Bezug auf die durchgeführten elementaren Operationen (Addition, Multiplikation, Speicherzugriff, Adressberechnung usw.) ist. Ohne diese ist im Prinzip keine Optimierung möglich, und selbst der beste Compiler ist gegen diesen armen Programmierer machtlos. Es scheint eine Selbstverständlichkeit zu sein, aber ich sehe, dass dies auch für viele Programmierer eine große Neuigkeit sein kann. :)
Ich kann es mir nicht leisten, aber ich würde mich gerne klar in Ihre Richtung äußern, aber okay, gehen wir davon aus, dass Ihr Beispiel von Ungeschicklichkeit und Sturheit vielen Menschen Klarheit verschafft
Sie hängen an der imaginären Effizienz Ihrer einfachen Adressierung, die Beispiele, die ich gegeben habe, und die Grundlagen des Schreibens von effizientem Code - Sie sind nicht in der Lage zu lesen und zu verstehen, lassen Sie uns vom 2x2-Bereich ausgehen:
es gibt eine Aufgabe, aber eine schwierige Aufgabe )) - der Trick ist entscheidend - der Kunde fragt wie immer nach einem Mindestcode, der im Laufe der Arbeit an Vielseitigkeit gewinnt - die Zahlen in der Liste unten
1. eine Funktion zur Multiplikation 2-dimensionaler Matrizen schreiben
2. eine Funktion zur Multiplikation von 3-dimensionalen Matrizen schreiben
3. und können Sie eine universelle Funktion - X * Y - schreiben?
4. Kannst du eine inverse Matrix finden?
- Ein normaler Programmierer schreibt eine Funktion, die das Feld X[2] [2] * Y[2][2] multipliziert.
- mit deiner "Logik" - schreibe einen erstaunlich schnellen Code, der aus einem Array X[4] und Y[4] und einer Funktion zum Multiplizieren von X[4] * Y[4] besteht, und verwende unbedingt eine Funktion, um dumme Eingabe-/Ausgabedaten als zweidimensionales Array in die richtigen Daten - ein eindimensionales Array - umzuwandeln, und lerne Matrixalgebra und schreibe äquivalente Transformationen für eindimensionale Matrizen
- Der erste Programmierer fängt an, seiner/ihrer Funktion Universalität hinzuzufügen; ich kann mir nicht einmal vorstellen, was Sie tun werden (es wird sehr schwer sein, die Multiplikation zwanzigdimensionaler Matrizen, die in ein eindimensionales Array umgewandelt wurden, mit einem Bleistift zu überprüfen); und schließlich taucht ein Programmierer mit OOP auf und definiert die Basisklasse - Matrix - und entwirft die Methode der Matrixmultiplikation;
- Ich will mir gar nicht ausmalen, was Sie mit der vierten Aufgabe machen werden, denn dieser "schlaue Kunde mit den tollen neuen Ideen" könnte am Horizont auftauchen; der Programmierer mit OOP fügt einfach eine Methode zum Finden der inversen Matrix hinzu; und außerdem fügt er alle Matrixoperationen hinzu und verteilt sie an andere Programmierer, damit sie sich später nicht aufregen
Wenn Sie es schaffen, zu erkennen, was ein Code mit üblichen Programmierung, mit OOP, und mit Ihrem "helle Ideen" (Ihr Code wird lawinenartig in der Größe von der zweiten Aufgabe zu erhöhen und Effizienz ist außer Frage) wird erkennen, was effizientes Programmieren ist, und, ja, ich vergaß - die Fehler der Arbeit mit Matrizen müssen auch Kontrolle - Sie müssen noch ein wenig ))))))))))))))).
Was Sie versuchen, mit zu argumentieren, wurde bereits von Programmierern auf der ganzen Welt erlebt, glauben Sie mir, kein Bill Gates kann Sie in OOP programmieren, wenn es nicht effizient ist, es hängt alles von den Aussichten des Projekts - wenn das Projekt zu erweitern - ohne OOP wird eine Verschwendung von Zeit sein und wird riesigen Code ohne Flexibilität und Vielseitigkeit geschrieben werden
Nun, man muss verschiedene Dinge miteinander verwechseln und zu einer Klapperschlangenmischung verarbeiten. :)
Der eine ist eine objektive Informationsquelle, der andere ist ein subjektiver Empfänger, weil er nicht immer alle Informationen wahrnehmen kann, sondern nur einen Teil davon.
nichts dergleichen. Informationen sind nur in Bezug auf eine bestimmte Quelle und einen bestimmten Empfänger sinnvoll. Für uns kann es keine "absolute" Information geben, denn wenn wir sie berührt oder gemessen haben, werden wir sofort zu einem subjektiven Empfänger. Daraus folgt, dass es grundsätzlich unmöglich ist, die Existenz objektiver Informationen in irgendeiner Quelle zu beweisen oder zu widerlegen - das ist so, als würde man über die An- oder Abwesenheit von Gott streiten.
Und der Begriff der Information selbst entsteht im Allgemeinen nur, wenn sowohl die Quelle als auch der Empfänger ausgewählt werden.
nichts dergleichen. Informationen sind nur dann sinnvoll, wenn sie auf eine bestimmte Quelle und einen bestimmten Empfänger angewendet werden. Für uns kann es keine "absolute" Information geben, denn wenn wir sie berührt oder gemessen haben, werden wir sofort zu einem subjektiven Empfänger.
Natürlich gibt es immer eine Quelle für Informationen. Es gibt keine andere Möglichkeit, Informationen zu betrachten.
Informationen ohne Quelle können einfach nicht existieren. :) Nun, wenn es eine objektive Informationsquelle gibt, dann sind die Informationen, die sie liefert, auch objektiv. Der Empfänger von Informationen wird immer subjektiv sein, aber er kann sich der Objektivität mit unendlicher Genauigkeit nähern, wenn er alle Informationen ohne Verzerrung wahrnimmt.
- Mit Ihrer "Logik" schreiben Sie einfach einen unglaublich schnellen Code mit Array X[4] und Y[4] und einer Funktion zum Multiplizieren von X[4] * Y[4] und sicherlich einer Funktion zum Konvertieren von dummen Eingabe-/Ausgabedaten in einem zweidimensionalen Array in gültige eindimensionale Daten und studieren Matrixalgebra und schreiben entsprechende Transformationen für eindimensionale Matrizen.
Leider haben Sie die einfache Sache nicht verstanden, die ich versucht habe, Ihnen nahe zu bringen, aber ich sehe, dass es nutzlos ist, denn wenn der Klempner (zum Beispiel) plötzlich beschließt, sich vorübergehend zum Programmierer umschulen zu lassen, bleibt er immer noch ein Klempner und denkt wie ein Klempner, dessen Hauptaufgabe die Länge der auf dem Boden verlegten Rohre ist. :)
Das Kriterium der Programmoptimalität ist nicht die Codelänge, sondern die Anzahl der Operationen für eine bestimmte Aufgabe. Wenn Sie nur eine zweidimensionale Matrix multiplizieren müssen, während Sie viel allgemeinere und unnötige Fälle implementieren, wird Ihnen natürlich niemand für diese Dilettantismus danken.
Die Subjektivität des Empfängers besteht nicht darin, dass er das, was von der Quelle kommt, ungenau empfängt, sondern darin, dass dieser ankommende Strom auf unterschiedliche Weise interpretiert werden kann. Ein und derselbe Strom von Bits kann völlig unterschiedliche Informationen enthalten, verstehen Sie?
Andrei01, sorry, aber ich verstehe nicht, warum Sie hier etwas schreiben. Ist es für Robo-Rating oder so etwas? Ihre Beiträge werden als eine Art Störgeräusch wahrgenommen, das kein nützliches Signal für diesen Thread enthält. Bitte filtern Sie den ausgehenden Strom: Menschen lesen, keine Roboter...
1. Die Subjektivität des Empfängers besteht nicht darin, dass er das, was von der Quelle kommt, ungenau empfängt, sondern darin, dass dieser ankommende Strom auf unterschiedliche Weise interpretiert werden kann. Ein und derselbe Bitstrom kann völlig unterschiedliche Informationen enthalten, verstehen Sie?
Andrei01, es tut mir leid, aber ich verstehe nicht, warum Sie hier etwas schreiben. Ist das für das Roboter-Rating oder was? Ihre Beiträge werden als eine Art Störgeräusch wahrgenommen, das für diesen Thread nicht von Nutzen ist. Bitte filtern Sie den ausgehenden Strom - Menschen lesen, nicht Roboter...
Die Tatsache, dass der Empfänger die Information je nach seinen Beweggründen unterschiedlich interpretiert, ist nur ein Hinweis darauf, dass sie subjektiv ist.
2. mathematisch, leider habe ich die Bedeutung dieses Satzes nicht verstanden. Sie haben zu viel übermäßigen Lärm hineingetan. :) Dies ist übrigens ein Beispiel dafür, dass die Informationsquelle auch überflutet werden kann, d. h. absichtlich bedeutungslose Informationen erzeugen kann. :)
Leider haben Sie die einfache Sache nicht verstanden, die ich versucht habe, Ihnen nahe zu bringen, aber ich sehe, dass es nutzlos ist, denn wenn ein Klempner (zum Beispiel) beschließt, sich vorübergehend zum Programmierer umschulen zu lassen, bleibt er trotzdem ein Klempner und denkt wie ein Klempner, dessen Hauptsache die Länge der auf dem Boden verlegten Rohre ist. :)
Das Kriterium der Programmoptimalität ist nicht die Codelänge, sondern die Anzahl der Operationen für eine bestimmte Aufgabe. Wenn Sie nur eine zweidimensionale Matrix multiplizieren müssen und viel allgemeinere und unnötige Fälle implementieren werden, wird Ihnen niemand für diesen Dilettantismus danken.
Leider denken Sie nur an eine "schnelle und einfache Problemlösung" und nicht an zukünftige Änderungen im Algorithmus der Programmausführung.
Dabei handelt es sich um hochspezialisierte Aufgaben, die entweder aufgrund ihrer einfachen Umsetzung in 20-30 Minuten gelöst sind, oder diese Aufgaben wurden bereits in größeren Projekten umgesetzt.
C-4 hat bereits gesagt, dass Handelsalgorithmen, die auf dem MACD basieren, der Vergangenheit angehören, ich werde es nicht wiederholen
SZY: Studieren Sie zumindest einige Entwicklungen im Bereich der Code-Optimierung. Wenn das ein wunder Punkt für Sie ist, hier sind die Dinge, die die Leute ausgearbeitet haben: http: //www.realcoding.net/article/rubric/code_optim?page=6
Ich verabschiede mich noch einmal in diesem Thread, ich sehe keine Notwendigkeit, mich zu wiederholen, wer verstehen will, was OOP und effizientes Programmieren ist, der wird es wohl selbst verstehen oder googeln?
Wieder falsch. Die Interpretation des eingehenden Stroms ist die Aufgabe desjenigen, der über dem Empfänger steht und die Bedingungen des Spiels festlegt. Der Empfänger ist ein Bügeleisen, das die Informationen nach dem Algorithmus verarbeitet, den der Spielleiter ihm vorgibt. In diesem Sinne ist es vollkommen und streng objektiv, denn es ist ein stummes Eisen. Aber subjektiv ist der Meister.
Wussten Sie, dass Informationen je nach dem Kontext der jeweiligen Aufgabe unterschiedlich interpretiert werden können?