Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 97
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
Typ, int oder datetime
Ich habe einmal eine Funktion erstellt, die Meldungen in ein leeres Anzeigefenster ausgibt. Sie können die Farben der angezeigten Linien anpassen. Sie ist bereits fehlerfrei. Wenn Sie sie brauchen, kann ich sie weitergeben.
Ich werde mir Ihren Code gerne ansehen, Artem. Für Testdrucke ist das nicht die bequemste Option...
r772ra:
Was ist das?
Typ, int oder datetime
Ich habe das ganze Chaos umgeschrieben, und das Ergebnis sieht so aus:
Aus irgendeinem Grund, auch wenn die Aufträge geschlossen sind und der letzte Auftrag Abschlusszeit sollte nicht Null sein.
Wir haben das immer wieder in den Kommentaren:
Время закрытия последнего открытого ордера = 0
Das ist der Grund, warum mein Code nicht weiter funktioniert, weil diese Funktion nicht funktioniert.
Also habe ich das ganze Chaos umgeschrieben, und es kam so heraus:
Aus irgendeinem Grund sollte auch bei geschlossenen Aufträgen der letzte Auftragsschlusszeitpunkt entsprechend nicht Null sein.
Ich konnte es die ganze Zeit in meinem Kommentar unterbringen:
Deshalb funktioniert nach meinem Code nichts, denn diese Funktion lässt mich nicht rein.
Dieser EA berücksichtigt schwebende Aufträge in Ihrem Code. Nun, es wird die offenen Aufträge entsprechend durchsuchen. Natürlich wird sie nach Ablauf der Zeit Null ergeben.
Wenn Sie die abgeschlossenen Aufträge sehen möchten, müssen Sie sie in der Liste der abgeschlossenen Aufträge anzeigen:
и
Aber... müssen wir zwei Funktionen erstellen - eine sucht nach offenen Aufträgen und die andere nach geschlossenen Aufträgen.
Dabei werden auch Ihre ausstehenden Aufträge berücksichtigt. Und dementsprechend sieht er die offenen Aufträge durch. Natürlich wird sie nach Ablauf der Zeit Null ergeben.
Wenn Sie die abgeschlossenen Aufträge sehen wollen, sollten Sie sie in der Liste der abgeschlossenen Aufträge sehen:
и
Aber... müssen wir zwei Funktionen erstellen - eine sucht nach offenen Aufträgen und die andere nach geschlossenen Aufträgen.
Vielen Dank, Artyom. Ganz genau... Was nun folgt, ist eine Frage der Code-Optimierung. Es gibt Fragen zur Struktur des Codes, aber er muss mit frischem Kopf geschrieben werden.
Ich werde mir Ihren Code gerne ansehen, Artem. Zum Testen des Drucks ist es nicht die günstigste Variante...
Hier ist ein EA zum Testen der Funktion. Sie enthält die Funktion selbst und ihren Aufruf. Vor dem Aufruf müssen Sie eine Nachricht vorbereiten, die bis zu vier Zeilen lang sein kann. Wenn ich mich richtig erinnere, sollte die Länge jeder Zeile 64 Zeichen nicht überschreiten. Aus diesem Grund habe ich eine Nachricht in mehrere Zeilen aufgeteilt. Jede Zeile einer Nachricht kann in einer anderen Farbe ausgegeben werden. Im Code ist das ziemlich klar - zuerst bereiten wir die Nachrichtenzeilen vor, dann rufen wir die Funktion auf. Ich habe dort nicht viel kommentiert - ich habe es vor langer Zeit in einem Rutsch geschrieben. Jetzt habe ich schon vergessen, wofür es da ist. Wenn ich Fragen habe, werde ich mich erinnern, aber ich erinnere mich nur noch an das Nötigste.
Und einen Truthahn:
So ist das nun mal... Ich hoffe, Sie werden es herausfinden.
Natürlich können Sie ein Underlay erstellen, anstatt es im Hauptdiagramm auszugeben, aber ich bin zu faul, um das zu tun... :)
Hier ist ein EA zum Testen der Funktion. Sie enthält die Funktion selbst und ihren Aufruf. Vor dem Aufruf müssen Sie eine Nachricht vorbereiten, die bis zu vier Zeilen lang sein kann. Wenn ich mich richtig erinnere, sollte die Länge jeder Zeile 64 Zeichen nicht überschreiten. Aus diesem Grund habe ich eine Nachricht in mehrere Zeilen aufgeteilt. Jede Zeile einer Nachricht kann in einer anderen Farbe ausgegeben werden. Im Code ist das ziemlich klar - zuerst bereiten wir die Nachrichtenzeilen vor, dann rufen wir die Funktion auf. Ich habe dort nicht viel kommentiert - ich habe es vor langer Zeit in einem Rutsch geschrieben. Jetzt habe ich schon vergessen, wofür es da ist. Wenn ich Fragen habe, werde ich mich erinnern, aber ich erinnere mich nur noch an das Nötigste.
Und einen Truthahn:
So ist das nun mal... Ich hoffe, Sie werden es herausfinden.
Natürlich können Sie ein Underlay erstellen, anstatt es im Hauptdiagramm auszugeben, aber ich bin zu faul, um das zu tun... :)
Gute Leute! Ich habe einen EA geschrieben, alles scheint in der Realität gut zu funktionieren. Aber ich überprüfe es auf dem Testgerät - es funktioniert nicht. Im Wesentlichen geht es um Folgendes. Der Expert Advisor sollte Aufträge durch horizontale Linien auf dem Chart eröffnen. Im Prüfprogramm werden sie ständig auf verschiedenen Ebenen geöffnet, als ob viele Linien gesetzt worden wären, obwohl es keine gibt! Können Sie erklären, was los ist?
Ein Teil des Codes, der für die Zeilen verantwortlich ist:
int Neuer_Horizont()
{
int tip_o_buy;
int tip_o_sell;
int obj_total=ObjectsTotal();
// wenn keine neuen Zeilen, beenden
if(obj_total==0)
Rückkehr;
// if(es gibt...
if(obj_total!=0)
string name=Objektname(0);
double pr=NormalizeDouble(ObjectGet(name,1),Digits);
ObjectDelete(name); // löschen und neu setzen
if(pr>Bid+(Stop_level+1)*Point) // Bestimmung der Auftragsart
{
tip_o_sell=OP_SELLLIMIT;
tip_o_buy=OP_BUYSTOP;
}
if(pr<Bid-(Stop_level+1)*Point)
{
tip_o_sell=OP_SELLSTOP;
tip_o_buy=OP_BUYLIMIT;
}
// Aufträge festlegen
OrderSend(Symb,tip_o_sell,Value,pr,3,pr+StopLoss*Point,pr-TakeProfit*Point, "Order gesetzt");
Prov_oshibok();
................................
}
Mit anderen Worten: obj_total==0 und das ist alles. Aber aus irgendeinem Grund setzt es alles auf unendlich.
Gute Leute! Ich habe einen EA geschrieben, alles scheint im echten Leben gut zu funktionieren, alles ist normal. Aber wenn ich es auf dem Testgerät prüfe, kommt es zu Störungen.
Ich glaube es nicht, dieser EA kann weder auf der realen Seite noch im Testgerät funktionieren.