[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 711

 
miha-28:

Guten Tag, meine Herren. Frage, ob es eine Funktion oder etwas gibt, um festzustellen, wie frühere Positionen mit Plus oder Minus geschlossen wurden???? Wenn das Thema bereits angesprochen wurde , lassen Sie den Link weg. Vielen Dank im Voraus....


https://www.mql5.com/ru/forum/107476/page21#79649

https://www.mql5.com/ru/forum/107476/page21#79908

 
Es gibt ein Array PeakUP[]. Wir schreiben die Werte der Extrema in der Schleife hinein. Wenn bei der Ausgabe nach der Schleife die Array-Größe ==1 ist (d. h. wenn nur ein Wert gefunden wird), führen wir eine weitere Schleife durch, um nach Werten zu suchen und die zusätzlich gefundenen Werte zum selben Array hinzuzufügen. Ich mache Folgendes:
BubleUP=TempIND[i-2];               // Возьмём значение "бугорка" - Это найденное дополнительное значение, которое нужно вписать в массив
                              
asize=ArraySize(PeakUP);           // Размер массива значений пичков... (именно он содержит только одно значение, а нужно минимум два)
ArrayResize(PeakUP, asize+1);       // ... увеличим его на 1
PeakUP[0]=BubleUP;                  // ... и впишем в него значение "бугорка"

In der Ausgabe nach all diesen Manipulationen im Ausdruck sehen wir:

PeakUP Size = 3 - das bedeutet, dass zwei zusätzliche Werte gefunden wurden und die Größe des Peak-Arrays auf 3 erhöht wurde - hier ist alles korrekt, weiter:
PeakUP[0] = 49,9119 - dies ist der Wert, der bei der Suche nach zusätzlichen Werten gefunden wurde. hier sollte es sein; weiter:
PeakUP[1] = 0 - dies sollte der Wert des ersten gefundenen Extremas sein (ca. 82 Pfennige)
PeakUP[2] = 0 - dies sollte der Wert eines einzelnen gefundenen Extrems sein (ca. 173 Pfennige)

Frage - wo habe ich zwei Werte verloren? Und ganz allgemein - versuche ich, sie richtig einzusetzen? Der Code, der zunächst das PeakUP-Array mit den Werten der Extrema füllt, funktioniert korrekt.
Der zweite Teil - das wiederholte Hinzufügen zusätzlicher Werte zum Array - funktioniert nicht.

Können Sie mir sagen, was los ist?

 
artmedia70:


Frage: Wo habe ich zwei Werte verloren? Und ganz allgemein - versuche ich, sie richtig einzusetzen? Der Code, der das PeakUP-Array zunächst mit Extremwerten füllt, funktioniert korrekt,
der zweite Teil - das wiederholte Hinzufügen zusätzlicher Werte zum Array - funktioniert nicht.

Können Sie mir sagen, was los ist?



Das war's, nicht nötig, danke, ich hab's schon...
 
cyclik33:

Bitte sagen Sie mir, wie ich es machen soll. Ich habe versucht, es als Bericht zu kopieren, aber es gibt in htm und zeigt nicht die Anzahl der Verlustgeschäfte in einer Reihe alle gleich.

Ich brauche nichts zu kopieren. In deinit() wird der notwendige Code eingefügt, der die Ergebnisse analysiert und in der Datei speichert. Manchmal verwende ich diese Methode, wenn ich mein eigenes Optimierungskriterium finden muss.
 
Ich kann es nicht herausfinden. Ich muss nur die Berechnungen visualisieren, indem ich Punkte auf dem AD-Indikator-Chart an den Stellen platziere, an denen Extrema gefunden werden.
Die Funktion
bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)
Ich bin verblüfft... :(

Es steht schwarz auf weiß geschrieben, dass OBJ_ARROW nur eine Koordinate verwendet. WELCHE??? Woher nehme ich den Datumswert aus dem Indikator? Oder sollte ich sie zusammen mit dem gefundenen Extremum auswendig lernen? Kurzum - ein Berg von Fragen und Missverständnissen, und ich habe keine Antwort auf der Website gefunden, außer für die Arbeit mit anderen Arten von grafischen Elementen...

Hilfe, Fingerzeig bitte... :)

 
artmedia70:

Es steht schwarz auf weiß geschrieben, dass OBJ_ARROW nur eine Koordinate verwendet. WELCHE??? Woher bekomme ich den Datumswert aus dem Indikator? Oder sollte ich sie zusammen mit dem gefundenen Extremum auswendig lernen? Kurz gesagt - ein Berg von Fragen und Missverständnissen, ich habe keine Antwort auf der Website gefunden, außer für die Arbeit mit anderen Arten von grafischen Elementen...

Hilfe, zeigen Sie bitte mit dem Finger... :)

Wenn ein Extremum gefunden wird, befindet es sich an einem bestimmten Balken, und Sie fügen es ein:

datetime time1=extreme value, double price1=Time[bar number].

 
Roger:

Wenn man ein Extremum findet, liegt es an einem bestimmten Balken, also fügt man es ein:

datetime time1=extreme value, double price1=Time[bar number]

Nein, ich suche nach Extrema auf dem Indikatorchart, in diesem Fall A/D
 
artmedia70:

Es steht schwarz auf weiß geschrieben, dass OBJ_ARROW nur eine Koordinate verwendet. WELCHE???

Dies ist eine Ungenauigkeit in der Helpe. Natürlich nicht eine Koordinate, sondern ein Punkt (der zwei Koordinaten hat).
 
Mathemat:
Dies ist eine Ungenauigkeit von Helpe. Natürlich nicht eine Koordinate, sondern ein Punkt (der zwei Koordinaten hat).

Danke, Alexey, damit ist die Hälfte geklärt :) Nun möchte ich wissen, wie und wo ich diese Koordinaten herbekomme, um sie in das Indikatorendiagramm einzuzeichnen. Das Preisdiagramm ist klar und verständlich, aber der Indikator ist ein Chaos...
 

Ein Diagramm eines Indikators? Das ist im Wesentlichen das Gleiche. Extreme gibt es ohnehin nur auf den Stäben, nicht zwischen ihnen.

Der Auslöser ist ein separates Fenster (wenn Sie es separat zeichnen, unterhalb des Preisfensters). Dieses Fenster hat die gleichen Koordinaten - Indikatorwert und Uhrzeit.