[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 332
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
Ich versuche, einen Indikator zu schreiben. Die Idee ist einfach: Wir werden einen Durchschnitt bilden (Stärke der Bullen - Stärke der Bären). Natürlich nur für einen bestimmten Zeitraum.
int start()
{
int i=Bars-IndicatorCounted()-1;
while(i>=0)
{
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_EMA,i);
MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i);
Buf_0[i]=MA_Bulls[i];
i--;
}
Rückkehr;
}
Ich zeige nur geglättete Bullen an Buf_0[i]=MA_Bears[i]; dies geschieht, um in einem bestimmten Stadium der Indexdarstellung zu kontrollieren. Nicht einmal EXAKT. Wenn ich sie mit einer Periode von 1 glätte, müssen sie in der Tat eingebettete Stiere wiederholen. Daher bin ich zu dem Schluss gekommen, dass etwas in der Zeile MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i) falsch ist; Ich verstehe nicht, was genau...HELP me!!!! Ich habe 3 Tage lang Handbücher und Dokumentationen durchgesehen. DANKESCHÖN!
Sie sollten zuerst die Datenfelder von Bullen und Bären bilden und sie dann mit dem nächsten Zyklus glätten, denn Sie haben sie noch nicht gebildet und verwenden bereits die Glättung, es gibt keine Daten zum Glätten?
Bilden Sie zuerst die Datenfelder von Bullen und Bären und verwenden Sie dann den nächsten Zyklus, um sie zu glätten, weil Sie sie noch nicht gebildet haben und bereits die Glättung verwenden, und es keine Daten zum Glätten gibt?
Übersetzung aus
costy_ писал(а) >>
Vielen Dank, ich komme der Sache näher. Ein Punkt ist nicht ganz klar.
14:56' - date literal string is incomplete dies ist die Warnung, die ich vom Computer erhalten habe.
Soweit ich das verstanden habe, wird immer noch das Datum abgefragt, aber ich brauche kein bestimmtes Datum. Was ich brauche, ist ein täglicher Vergleich des aktuellen Preises mit dem Preis zu einem bestimmten Zeitpunkt am selben Tag. Bitte klären Sie den Punkt.
Warum müssen Sie sie überhaupt über iCast anrufen? Ist es für die Wiedervereinigung? Schreiben Sie einen separaten Indikator-Wrapper für jeden von ihnen und rufen Sie sie durch iCustom...
Das Problem ist, dass ich diese beiden Indikatoren (AO und AC) geändert habe und nun möchte, dass die Balken entsprechend den geänderten Indikatoren gefärbt werden. Oder gibt es eine andere Möglichkeit, dies zu tun? Ich habe erst kürzlich mit MQL begonnen...
Das Problem ist, dass ich die beiden Indikatoren (AO und AC) neu erstellt habe, und nun möchte ich, dass die Balken entsprechend den geänderten Indikatoren gefärbt werden. Oder gibt es eine andere Möglichkeit, dies zu tun? Ich habe erst vor kurzem angefangen, MQL zu lernen...
Also, was haben Sie neu gemacht und nennen es, was ist das Problem? Wenn die geänderten Indikatoren zum Beispiel AO und AC heißen, lautet der Aufruf
oder Sie können Ihre eigenen Parameter hinzufügen
Vielen Dank, ich komme der Sache näher. Ein Punkt ist nicht ganz klar.
14:56' - date literal string is incomplete dies ist die Warnung, die ich vom Computer erhalten habe.
Soweit ich das verstanden habe, wird immer noch das Datum abgefragt, aber ich brauche kein bestimmtes Datum. Was ich brauche, ist ein täglicher Vergleich des aktuellen Preises mit dem Preis zu einem bestimmten Zeitpunkt am selben Tag. Bitte klären Sie den Punkt.
costy_ писал(а) >>
Vielen Dank, ich
komme der Sache näher.Ein Punkt ist nicht ganz klar.
14:56' - date literal string is incomplete diese Warnung erhielt ich vom Computer.
Ich verstehe, dass er immer noch das Datum will, aber ich brauche kein bestimmtes Datum, ich brauche den aktuellen Preis jeden Tag im Vergleich zum Preis zu einer bestimmten Uhrzeit desselben Tages
.Bitte klären Sie den Punkt.
Ich möchte jedoch wissen, ob es möglich ist, die Bindung bis zu einer bestimmten Zeit aufrechtzuerhalten. Wie kann man in MQL4 den Geldkurs um 14.00 Uhr eines jeden Handelstages angeben?
skifodessa 05.12.2009 14:07
Guten Tag zusammen.
Bitte sagen Sie mir, wie ich die Anzahl der Überschreitungen eines bestimmten Preisniveaus berechnen kann. Ich möchte, dass mein Auftrag nach 3 (4,5...), aber nicht nach der ersten Kreuzung geöffnet wird.
Ich danke Ihnen.
------------------------------------------------------------
Sie können den Algorithmus ausprobieren
Wenn (Preis des aktuellen Balkens>Leveland-Preis des vorherigen Balkens<Level)dann {Zähler um eins erhöhen}
Wenn (Zähler>3) dann {Auftrag öffnen; Zähler auf Null setzen}
Schreiben wir nun dasselbe in der üblichen Sprache (ich schreibe nur Blöcke, Sie können sie an den erforderlichen Stellen einfügen)
Extern int Chet=10; // nach wie vielen Überschreitungen soll die Bestellung geöffnet werden
Extern double Uroven=1.6566; // nachdem der Preis das Niveau überschritten hat, um mit dem Zählen zu beginnen.
In der Startfunktion sind die Bedingungen ungefähr wie folgt
int k;
if(Open[0]>Uroven && Open[1]<Uroven)k=k+1;// hier wird eine UP-Kreuzung berücksichtigt
if(k>Chet){OrderSend(.......);k=0};
Im Allgemeinen ist die Frage nicht sehr schwierig. Das Buch über MCL erklärt die Grundlagen der ALGORITHMIK
FOR Vinin schrieb >>.
Danke für den Tipp, aber er hilft nicht weiter. Denn Sie haben gerade die While-Schleife durch eine FOR-Schleife ersetzt.
FOR Urain schrieb(a) >>
Die nächsten beiden Zeilen bilden gerade das richtige Feld.
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Urain Sie haben wohl gedacht, dass die Funktion iMAOnArray ein bereits gebildetes Array übergeben soll. Die Bildung mit der FOR-Schleife hat nicht geholfen. Das liegt daran, dass es sich nicht um das Array handelt, das an diese Funktion (iMAOnArray) übergeben wird, sondern um dessen NAME. Und das Feld wird PERSÖNLICH bearbeitet.
durch Änderung von i in der Zeichenfolge MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMA,i);
Ich habe das Problem gelöst. Es ist viel tiefer, als es scheint. Wenn Sie diese Verarbeitung nur im Expert Advisor anwenden, gibt es keine Probleme, aber wenn Sie ein Diagramm damit erstellen, gibt es trotzdem eine Störung. Der Punkt ist, dass die Arrays invers indiziert sind. Die Funktion iMAOnArray hat eine direkte (von links nach rechts) Indizierung, während das Diagramm von rechts nach links indiziert ist. Vielen Dank an Garfich für diese Erklärung.
FOR Vinin schrieb >>.
Danke für den Tipp, aber er hilft nicht weiter. Denn Sie haben gerade die While-Schleife durch eine FOR-Schleife ersetzt.
FOR Urain schrieb(a) >>
Die nächsten beiden Zeilen bilden gerade das richtige Feld.
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Urain Sie haben wohl gedacht, dass die Funktion iMAOnArray ein bereits gebildetes Array übergeben soll. Die Bildung mit der FOR-Schleife hat nicht geholfen. Das liegt daran, dass es sich nicht um das Array handelt, das an diese Funktion (iMAOnArray) übergeben wird, sondern um dessen NAME. Und das Feld wird PERSÖNLICH bearbeitet.
durch Änderung von i in der Zeichenfolge MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMA,i);
Ich habe das Problem gelöst. Es ist viel tiefer, als es scheint. Wenn Sie diese Verarbeitung nur im Expert Advisor anwenden, gibt es keine Probleme, aber wenn Sie es verwenden, um ein Diagramm zu erstellen, werden Sie trotzdem eine Störung erhalten. Der Punkt ist, dass die Arrays invers indiziert sind. Die Funktion iMAOnArray hat eine direkte (von links nach rechts) Indizierung, während das Diagramm von rechts nach links indiziert ist. Vielen Dank an Garfich für diese Erklärung.
Ich weiß nicht, was das Problem war, aber Vinin hat es richtig geschrieben (es spielt keine Rolle, ob for oder while), die Hauptsache ist, dass zuerst die Schleife das Datenarray bildet und dann die nächste Schleife die iMA daraus bildet,
und der String Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i); füllt nur einen i-ten Wert des Arrays
ohne Schleife, wird das Array nicht erzeugt.