Ich habe vergessen zu erklären, dass es etwas falsch mit den Parametern für die Funktion iEnvelopes. Wenn Sie die Hilfe von MT4 sehen, finden Sie die Erläuterung über iEnvelopes hat 8 Eingänge, aber wenn Sie das Beispiel von MT4 sehen, gibt es nur 7 Eingang verwendet, also bin ich verwirrt darüber, dass Darüber hinaus verstehe ich nicht den Unterschied zwischen den Parametern int Mashift und int shift. Ich denke, int-Verschiebung ist nützlich, um expalin Sie wollen die Hüllkurve für die Zeit 0, 1, 3, etc. Aber was ist die Funktion von int mashift Zunächst einmal. Ich schätze Sie schnelle Antwort. Ich habe zwei Fragen zu fragen, 1) Was ist der Unterschied zwischen iEnvelopes und iEnvelopesOn Array 2) Ich verstehe nicht, welche die Bedeutung eines quotbufferquot ist und wenn ich es vermeiden kann. 3) Kann ich den Code an offene Position senden. Ich habe alles versucht. Ich habe Probleme mit meinem Code zu schließen und zu öffnen Positionen. Allerdings halte ich das Problem ist das gleiche, weil die Kriterien zu schließen ist ähnlich wie die Kriterien zu öffnen. Also ich denke, ich habe das gleiche Problem für beide Fälle. Ich habe iEnvelopes und iEnvelopesOnArray verwendet, habe ich Variablen und Arrays Typ double verwendet. Ich weiß wirklich nicht, was zu tun ist. Ich habe in MQL4 und in diesem Forum suchen. Ich habe die HOMEWORK getan, aber ich donamp180t wissen, was zu tun ist. Gonzalo (Aus Kolumbien) Hallo Gonzalo 1. Nr. Von Close9 bis Close0 2. yes und yesIndex des Wertes, der aus dem Indikatorpuffer entnommen wird (Verschiebung relativ zur aktuellen Leiste in der vorgegebenen Zeitdauer). Ich habe noch zu sehen, ein Beispiel, das etwas anderes als 0 für insgesamt verwendet und die exakte Differenz zwischen mashift und Schicht ist überhaupt nicht klar. Jetzt zu meinem Beispiel. Zuerst wollte ich das folgende in einer EA kodieren, hatte aber Probleme, daher habe ich es in einen Indikator umgesetzt, um besser zu beobachten sein Verhalten. Der HiLo-Indikator bestimmt die höchsten Höhen und Tiefstwerte in einem bestimmten Zeitraum und wendet dann einen gleitenden Durchschnitt auf diese Werte an. Der vollständige Code lautet wie folgt: Wenn ich diesen Indikator direkt nach der Kompilierung ausführe, liefert er das erwartete Ergebnis: Sobald ich aber den Zeitraum (hier von 15 bis 20) ändere, sind nur die ersten 20 Werte gültig, alle anderen sind ein sehr große Zahl. Ich weiß, dass ich das gewünschte Verhalten erhalten kann, wenn ich zuerst die hohen und niedrigen Puffer vollendet, indem ich den Code in zwei Schleifen ändere. Wenn Im, das eine EA I kodiert, auch auf jeden neuen Wert selbst reagieren muss, ist die Doppelschleife nicht die gewünschte Lösung. Durch Experimente habe ich herausgefunden, dass die Codierung der Verschiebung in Mashift anstelle von Verschiebung genau das, was ich will, nimmt aber eine enorme Menge an Neuberechnung Zeit. (Sperrt den Computer für eine Weile). Also einer der MQL-Experten helfen Sie mir bitte auf diesem ein und helfen Sie mir zu verstehen, warum die Dinge ausarbeiten, wie sie sind (und natürlich nicht, wie ich sie erwartet hatte). FRAGE: Wie kann ich die Mittelwerte in der gleichen Schleife berechnen, wie die Höhen und Tiefen bestimmt werden (ohne den Computer zu sperren) Die wesentlichen Werte für die Berechnung des Durchschnitts sind verfügbar, so dass ich nicht sehen, einen Grund für die Konstruktion von zwei Schleifen Vielen Dank im Voraus Total - nicht sicher, müsste mit ihm spielen, um herauszufinden, was es bedeutet, shift - die Balken-Nummer, für die das Indikator den berechneten Wert mashift zurückgibt - verschiebt die quotresultquot der Berechnung in einen anderen Balken. Öffnen Sie ein Diagramm, fügen Sie Moving Average hinzu. In den Eigenschaften bewegt eine negative Verschiebung die MA-Linie nach links, eine positive Verschiebung verschiebt sie nach rechts. Ich habe auch zwei Schleifen verwenden müssen, um gültige Werte zu erhalten, wenn Sie Arrays verwenden. Youre right Die Bars werden mit mashift verschoben. Siehe die Ausgabe. Nun, ich werde versuchen, den Code in eine EA wieder setzen. Rückmeldung wird später kommen. Ja, Sie können es überall verwenden, aber von meinem exp, sollten Sie sicher sein und passt für Puffer Größe und Inhalt für iMA verwendet OnArray Seien Sie sehr vorsichtig, wenn Sie versuchen, iMAOnArray in einem EA verwenden. Ich denke, es ist nur für Indikatoren gedacht. Das Problem ist hauptsächlich die Richtung. Es zählt rückwärts. Sie müssen ArraySetAsSeries verwenden, aber das funktioniert nur in Indikatoren. Tatsächlich hat ArraySetAsSerie keinen Einfluss auf das Array, auf das Sie verweisen. Stattdessen handelt es sich um den verknüpften Indikatorpuffer, so dass er in einem EA nutzlos ist. Diese Scheiße hielt mich für Tage Ive hatte so viel Probleme mit ihm, dass ich es in eine benutzerdefinierte Funktion um es richtig zu kodieren umzukehren hatte. Seien Sie sehr vorsichtig, wenn Sie versuchen, iMAOnArray in einem EA verwenden. Ich denke, es ist nur für Indikatoren gedacht. Das Problem ist hauptsächlich die Richtung. Es zählt rückwärts. Sie müssen ArraySetAsSeries verwenden, aber das funktioniert nur in Indikatoren. Tatsächlich hat ArraySetAsSerie keinen Einfluss auf das Array, auf das Sie verweisen. Stattdessen handelt es sich um den verknüpften Indikatorpuffer, so dass er in einem EA nutzlos ist. Diese Scheiße hielt mich für Tage Ive hatte so viel Probleme mit ihm, dass ich es in eine benutzerdefinierte Funktion um es richtig zu kodieren umzukehren hatte. Ich habe jetzt einen Abend verbracht (und 2 Biere, 1 Kaffee so weit.) Versucht zu verstehen, iMAOnArray. Ich fand diesen Thread und ich bekam ein wenig Angst zu lesen, wie Sie alle mit dieser Sache gekämpft haben. Möchten Sie Ihre benutzerdefinierte Funktion freigeben Ich glaube, ich dachte mir das ganze iMAOnArray Geheimnis. Sie müssen grundsätzlich rückwärts von Ihrer Arraygröße zählen. Ich fand dies aus Versuch und Irrtum, und es scheint zu funktionieren korrekt in meinem EA. Wenn im offensichtlich falsch, bitte jemand etwas sagen. Ich habe alle Anzeichen, dass dies tun, was ich denke, seine tun und wird davon ausgehen, dies ist richtig vorwärts gehen. Grundsätzlich müssen Sie wissen, wie groß Ihr Array an erster Stelle ist, sagen Sie, dass Sie ein eindimensionales Array mit 1000 Elementen haben und sagen, dass Sie den 14-Element-Durchschnitt an Element j adressieren möchten, tun Sie dies wie folgt:
No comments:
Post a Comment