Fehler, Irrtümer, Fragen - Seite 600

 
papaklass:

Urain, sergeev danke für die Antworten.

Ich weiß, wie man Indizes in ein Array schreibt, aber ich dachte, dass es vielleicht etwas Schnelleres gibt.

Das ist das erste Mal, dass ich von einer "Blasen"-Sortierung höre. Wenn Sie können, geben Sie mir bitte mehr Details und besser mit einem einfachen Beispiel. Ich werde Ihre Links trotzdem lesen.

Nochmals vielen Dank für die Antworten.

http://ru.wikipedia.org/wiki/Сортировка_пузырьком

Der Artikel implementiert übrigens die Shaker-Sortierung von Indizes (ich nenne es aus Gewohnheit Bubble-Sortierung).

Die Schüttelvorrichtung unterscheidet sich von der Blasenvorrichtung dadurch, dass die Blasen einseitig durchlaufen, während die Schüttelvorrichtung abwechselnd durchläuft, was die Sortierung beschleunigt, da die Blasen nicht nur schweben, sondern auch sinken.

Сортировка пузырьком — Википедия
  • ru.wikipedia.org
Сортировка простыми обменами, сортиро́вка пузырько́м (англ.  ) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n²). Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более...
 

Raten Sie dreimal, nach welchem Indikator ich mich erkundigen möchte? Die richtige Antwort lautet iFractals. Unerwartet, nicht wahr?

Im Hilfeabschnitt von Custom Indicators https://www.mql5.com/ru/docs/customind heißt es:"Wenn zum Beispiel current rates_total=1000 und prev_calculated=999, dann brauchen wir vielleicht nur Berechnungen für einen Wert jedes Indikatorpuffers durchzuführen. "Aber all dies gilt für die erste - kurze - Form des Aufrufs der Funktion OnCalculate(). Sind hingegen mehrere Indikatorpuffer an der Berechnung beteiligt, funktioniert diese Form nicht.

Führen wir in M1 den Code des iFractals-Beispiels aus der Hilfe aus, wo die zweite - vollständige - Form des OnCalculate()-Funktionsaufrufs verwendet wird. Aber vorher müssen wir innerhalb dieser Funktion noch folgende Änderungen vornehmen

Comment(comm);

zu

Print(comm);

um keine Zeile mit Ausgabe aus den Augen zu verlieren (wenn man es so belässt, wird visuell immer 1 sichtbar sein, weil andere Werte selten sind und sofort durch 1 ersetzt werden, so dass es scheint, dass 1 immer ausgegeben wird). Nach der Laufzeit sehen wir, dass Nicht-Einheitswerte jede Minute auftreten, d.h. bei jedem neuen Balken, was eindeutig darauf hinweist, dass der Indikator jede Minute neu gezeichnet wirdvollständig trotz der Tatsache, dass der Codewirtschaftlicher Algorithmus. Die Zweifler können mehrere Codezeilen hinzufügen, indem sie z. B. vertikale Linien auf jedes Fraktal zeichnen, diese dann nach der ersten Zeichnung wieder entfernen und darauf warten, dass nach einer Minute ein neuer Balken mit denselben Linien erscheint. Aus irgendeinem Grund geht es nicht darum, nur das letzte Fraktal oder die letzte Linie zu zeichnen.

Frage an die Entwickler: wurde der Indikator nachlässig geschrieben oder war es nicht das Ziel, nur den letzten - neu berechneten - Wert des Fraktals darzustellen? Oder habe ich einen Codeblock mit values_to_copy-Berechnungen fröhlich mit einem sparsamen Algorithmus verwechselt, den es gar nicht gibt? Oder ist es in der vollständigen Form des OnCalculate() -Funktionsaufrufs nicht möglich, analog zu const int begin den Anfang der sinnvollen Daten zu setzen?

Bitte beachten Sie, dass während des Experiments keine "Löcher" in der Geschichte gefüllt werden, keine Balken aus der Vergangenheit geladen werden und keine anderen Ereignisse stattfinden, die prev_calculated auf Null setzen! Das heißt, es gibt keinen Grund, die Werte des gesamten Indikators neu zu berechnen.

Natürlich würde ich mir für diesen notorisch sparsamen Algorithmus etwas Erträgliches einfallen lassen, aber die offizielle Meinung der Entwickler zu diesem Thema und ggf. Korrekturen sind hier offenbar wichtig.

Документация по MQL5: Пользовательские индикаторы
Документация по MQL5: Пользовательские индикаторы
  • www.mql5.com
Пользовательские индикаторы - Документация по MQL5
 

Überzeugende Bitte an die Entwickler (ich bin übrigens nicht der erste, der darum bittet): Bitte ersetzen Sie die alte Version des Fractals-Indikators durch die neue. (Als Hinweis: In der alten Version kann das frischeste Fraktal auf dem letzten Balken erscheinen (was dazu führen kann, dass es unerwünscht neu gezeichnet wird), während in der neuen Version das frischeste Fraktal bis zu drei Balken vor dem letzten Balken erscheinen kann). Natürlich können wir manuell eine alte oder eine neue Version in ein Diagramm zeichnen, aber wenn wir versuchen, in unserem Code auf den iFractals-Handle zu verweisen, wird die alte Version weiterhin funktionieren. Wie viel Zeit wurde mit dem Versuch vergeudet, mich dafür zu begeistern und nicht mit dem Gesicht auf den Tisch zu schlagen, um diesen vermeintlichen Fehler zu finden...

P.S.: Ich habe das Ganze nicht aktualisiert, nur über Live Update. Kann das der Grund dafür sein? Irgendwelche Tipps? Wenn ja, werde ich sie vollständig aktualisieren.

 
x100intraday:

Überzeugende Bitte an die Entwickler (ich bin übrigens nicht der erste, der darum bittet): Bitte ersetzen Sie die alte Version des Fractals-Indikators durch die neue. (Als Hinweis: In der alten Version kann das frischeste Fraktal auf dem letzten Balken erscheinen (was dazu führen kann, dass es unerwünscht neu gezeichnet wird), während in der neuen Version das frischeste Fraktal bis zu drei Balken vor dem letzten Balken erscheinen kann). Natürlich können wir manuell eine alte oder eine neue Version in ein Diagramm zeichnen, aber wenn wir versuchen, in unserem Code auf den iFractals-Handle zu verweisen, wird immer noch die alte Version verwendet. Wie viel Zeit wurde mit dem Versuch vergeudet, mich dafür zu begeistern und nicht mit dem Gesicht auf den Tisch zu schlagen, um diesen vermeintlichen Fehler zu finden...

P.S.: Ich habe das Ganze nicht aktualisiert, nur über Live Update. Kann das der Grund dafür sein? Irgendwelche Tipps? Wenn ja, werde ich sie vollständig aktualisieren.

Was hindert Sie daran, iCustom(...) zu verwenden?
 
Valmars:
Was hindert Sie daran, iCustom(...) zu verwenden?
Im Prinzip nichts. Aber die veraltete Version des gleichen Indikators - ist nicht der Fall, per Definition, die veraltete sollte auf Distributionsebene entfernt werden, und dies, meiner Meinung nach, sollte das Anliegen der Entwickler sein. Und wenn wir das alte Zeug lassen,sollte es nicht der Standard sein, sondern das neue, korrektere. Ich persönlich würde die alte Version kaum als Alternative bezeichnen; es handelt sich vielmehr um eine eklatant falsche Version, die Ihnen in der Zukunft eine Menge Ärger einbringen kann.
 
x100intraday:

Überzeugende Bitte an die Entwickler (ich bin übrigens nicht der erste, der darum bittet): Bitte ersetzen Sie die alte Version des Fractals-Indikators durch eine neue. (Als Hinweis: In der alten Version kann das frischeste Fraktal auf dem letzten Balken erscheinen (was dazu führen kann, dass es unerwünscht neu gezeichnet wird), während in der neuen Version das frischeste Fraktal bis zu drei Balken vor dem letzten Balken erscheinen kann).

1. Um welche neue Version handelt es sich?

2. Was hindert Sie daran, 3 statt 2 Balken zu wählen?

 
Ich habe eine Frage: Ist es möglich, die Daten des Indikators für verschiedene Währungspaare zu erhalten und nicht nur für dasjenige, für das der Indikator installiert ist.
#property copyright "2010, Graff"
#property link      "http://www.mql5.com"
............
hwd_EURUSDf=iMA("EURUSD",0,Fast*k,shift,smootMode,price);
hwd_GBPUSDf=iMA("GBPUSD",0,Fast*k,shift,smootMode,price);
.......
if(CopyBuffer(hwd_EURUSDf,0,i,1,buff)<=0) return(-1);
if(CopyBuffer(hwd_GBPUSDf,0,i,1,bufs)<=0) return(-1);

usw. funktioniert etwas nicht. Oben sehen Sie einen Teil des Codes von CCFp.mq5, den ich für Selbsttests installiert habe. Mein eigener Indikator (nach dem gleichen Prinzip geschrieben, d.h. Handles->CopyBuffer)

Funktioniert nicht(Print(buff[i]) zeigt irgendeinen Scheiß.

Bitte: Wenn Sie eine Lösung haben, geben Sie mir bitte den Code! MT5 bild 555/.

 
alexx_v:

Ich habe gerade gehört, wie sich das Terminal nach einer Unterbrechung wieder mit dem Server verbunden hat, ich habe nachgesehen und es stimmt, es gibt wieder eine Störung:


alexx_v:

Ich habe gerade gehört, wie sich das Terminal nach einer Unterbrechung wieder mit dem Server verbunden hat, ich habe nachgeschaut, und es stimmt, es gibt wieder eine Störung:


Ist dieses Bild auf MT4 oder MT5?
 
sergeev:

1. Um welche neue Version handelt es sich?

2. Was hindert Sie daran, 3 statt 2 Balken zu wählen?

1. In den Standardindikatoren gibt es zwei scheinbar identische Fraktal-Indikatoren: im Abschnitt mit den Indikatoren von Bill Williams und im Abschnitt Benutzerdefiniert. Der Vergleich zeigt, dass die erste Methode dazu neigt, einige der frischen Fraktale am letzten Balken neu zu zeichnen, während die zweite Methode diesen Nachteil nicht hat, da das Fraktal während der Schleife mit Hilfe eines eigenen Algorithmus für i<rates_total-3, d.h. mit einem Balken in Reserve, überprüft wird, während die Fraktale selbst algorithmisch gebildet werden, indem nur zwei benachbarte Balken überprüft werden, und, falls erforderlich, werden sie erst dann vollständig bestätigt, wenn ein neuer, dritter Balken erscheint. Ich kenne den Speicherort der korrekten Fraktale: C:\Programme\MetaTrader 5\MQL5\Indikatoren\Beispiele\Fractals.mq5, aber iFractals kennt ihn nicht, aberiFractals kennt den Weg zur alten Version, die ich kaum finden kann. Nimmt es den alten Code aus C:\Programme\MetaTrader 5\MQL5\Include\Indicators\BillWilliams.mqh?

Fragwürdiges (vorzeitiges) Fraktal vs. Fraktal, das nur mit einem neuen Balken behauptet werden kann

2. Nichts, diese Lösung liegt auf der Hand und ich verwende sie schon fast. Aber hier ist die Sache. Wenn wir nicht tief in das Projekt eindringen und nur die Fraktale berücksichtigen, dann ist gegen eine Neuverdrahtung nichts einzuwenden. Wenn wir jedoch grafische TA-Konstruktionen auf der Grundlage von springenden Fraktalen erstellen und auf dieser Basis einen automatischen Handel durchführen, dann kommt es in einigen Fällen zu falschen Operationen (zu frühe Positionseröffnung), weil noch keine Neuverdrahtung der Fraktale stattgefunden hat und die Korrektur der Konstruktionen nicht durchgeführt wurde, aber das Markteintrittssignal bereits funktioniert hat. Wenn das Fraktal neu gezeichnet und das Charting-Tool neu aufgebaut wird, wird alles korrigiert, außer der vorzeitig geöffneten Position. Es ist nicht die angenehmste Lösung, die Position durch Schließen, Reduzieren oder Öffnen der gegenüberliegenden Position lahmzulegen - dies erfordert zusätzliche Filter, Überprüfungen, die dem zweifelhaften Signal widersprechen und daher die Häufigkeit der Geschäfte verringern, sowie das Hinzufügen von anderem komplizierenden Ballast zum Indikator.

Im Prinzip kann man sich damit abfinden, das erste Minus-Fraktal zu verwenden und nicht das letzte, das noch zweifelhaft ist und neu gezeichnet werden kann. Aber für mich ist es ein typisches Beispiel für eine Krücke, die sich manchmal im eigenen Code ansammelt und die es möglichst nicht geben sollte... und ich spreche noch nicht einmal von der Langsamkeit, mit der man sich die richtigen Informationen vom Markt holt und Konstruktionen macht.

 
goblin:
Ich habe eine Frage: Ist es möglich, Indikatordaten für verschiedene Währungspaare abzurufen, nicht nur für dasjenige, auf dem der Indikator installiert ist.

usw. Irgendetwas funktioniert nicht. Oben sehen Sie einen Teil des Codes von CCFp.mq5, den ich für Selbsttests installiert habe. Mein eigener Indikator (nach dem gleichen Prinzip geschrieben, d.h. Handles->CopyBuffer)

Funktioniert nicht(Print(buff[i]) zeigt irgendeinen Scheiß.

Anfrage: Wenn Sie eine Lösung haben, geben Sie mir bitte den Code! MT5 bild 555/

Ja, ich scheine das Problem selbst gelöst zu haben.

Frage an die Admins: Ich habe es von der Website heruntergeladen, im Hilfebeispiel habe ich (xxx=iMA(.....)) verwendet, aber MA ist nicht in den Indikatoren, sondern in den inluded. Ist es ein Intelligenztest?

Tut mir leid, dass es so lange gedauert hat!