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

 
NEKSUS_ >> :

Guten Tag meine Herren, bitte helfen Sie mir noch einmal mit dem Skript zur Objektbeseitigung.

Das Skript entfernt mehrere Objekte nach Namen, aber beim Starten erscheint hundert Fehler (genauer gesagt, die gleiche, aber viele Male) Hilfe plz.


Ich nehme an, dass dieser ausgefallene Code dazu dient, alle Objekte mit Zahlen im Namen aus dem Diagramm zu löschen? Dann setzen Sie else vor alle ifs, außer dem ersten. Sonst fällt Ihr Index x schon bei der ersten Iteration in den negativen Bereich.

 
NEKSUS_ >> :

Guten Tag meine Herren, bitte helfen Sie mir noch einmal mit dem Skript zur Objektbeseitigung.

Skript tötet einige Objekte nach Namen, aber beim Start erscheint eine gute hundert Fehler (genauer gesagt, die gleiche, aber viele Male) Hilfe ps.


Ersetzen Sie diese Schleife for (int x = ObjectsTotal(); x>0 ; x--) (korrigieren Sie nur Fehler, wie more or equal und ziehen Sie 1 von der Anzahl der Objekte ab) und entfernen Sie alle "x--;" in den ifs

 
dmmikl86 >> :

helfen Sie mir bei der Einfärbung des Indikators, ich möchte, dass er grün ist, wenn der Wert steigt, und rot, wenn er sinkt

Hier ist der Code:


hier ist einer, der hilft

https://www.mql5.com/ru/articles/1451

Implementierung von dreifarbigen Indikatoren und einigen Funktionen, die das Schreiben von Indikatoren so einfach wie möglich machen

 
alsu >> :

Ich verstehe, dass dieser komplizierte Code dazu dient, alle Objekte mit einer Ziffer im Namen aus der Tabelle zu entfernen? Dann setzen Sie vor alle if, außer dem ersten, und else ebenfalls. Denn schon bei der ersten Iteration fällt Ihr Index x in den negativen Bereich.


Es wird nicht scheitern, da es sehr schwer ist, ein Objekt mit einem negativen Index zu finden, oder besser gesagt, es könnte scheitern, aber höchstens um eins.
 

Liebe Fachleute, bitte helfen Sie. Die Idee ist, dass der EA einen Auftrag erstellt und dann denselben Auftrag erneut erstellt, wenn dieser Auftrag fehlschlägt. Aber das tut sie nicht?

//--------------------------------------------------------------- 0 ----------------

int start() // Sonderfunktion start

{

int H=100; // Zeit einstellen - Sekunde

int Dist=10; // TP und SLeinstellen

double Lot=1; //setze lot

//--------------------------------------------------------------- 1 ----------------

double i=0,001;

double Cena=NormalizeDouble(Ask,3); // Preis normalisieren

double Preis=NormalizeDouble(Cena+i,5); // Finde Preis

double TP=Preis+Abstand*Punkt; // TPfinden

double SL=Preis-Abstand*Punkt; //Find SL

int x=1; // Erste Bedingung

int y=1; // Zweite Bedingung

//--------------------------------------------------------------- 2 ----------------

for (int pos=1; pos<=OrdersTotal(); pos++) // Schleife durch alle Bestellungen

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // eine Bestellung markieren

{ if (AuftragGewinnmitnahme()==TP)

{ Alert("ausgelöst x");

x=2;

Pause;

}

}

else Print("Fehler ", GetLastError(), " wenn order number ", pos)auswählt;

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1; pos<=OrdersTotal(); pos++) // Schleife durch alle Bestellungen

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // eine Bestellung markieren

{ if (OrderOpenPrice()==Preis)

{ Alert("ausgelöst y");

y=2;

Pause;

}

}

else Print("Fehler ", GetLastError(), " wenn order number ", pos)auswählt;

}

//--------------------------------------------------------------- 4 ----------------

wenn (x==2&y==2)

{ Alert("Dieser Auftrag existiert bereits!!!");}

else { Alert("order has been sent",Symbol()," BUYSTOP ", Price," Pending...");

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP);

}

Sleep(H*60); // 60 Sekundenwarten

RefreshRates();

//--------------------------------------------------------------- 5 -------------------

Alert ("Das Skript hat seine Arbeit beendet -----------------------------");

return; // Beenden vonstart()

}

 

Ich habe MT4 (von forex4you) installiert, ich teste Strategien, aber die Kurse von M1 habe ich nur vom 2.09.2009, ich kann sie nicht über das Service-Archiv von Kursen laden,

Können Sie mir sagen, wo ich das Zitate-Archiv zumindest für 2009 herunterladen kann? Und noch etwas: Wenn ich das Datum im Strategietester einstelle, werden die Kurse nicht automatisch heruntergeladen.

 
albon >> :

Ich habe MT4 (von forex4you) installiert, ich teste Strategien, aber die Kurse von M1 habe ich nur vom 2.09.2009, ich kann sie nicht über das Service-Archiv von Kursen laden,

Können Sie mir sagen, wo ich das Zitate-Archiv zumindest für 2009 herunterladen kann? Wenn ich das Datum im Strategietester einstelle, werden die Kurse nicht automatisch heruntergeladen.

Versuchen Sie, den MT4 eines anderen Brokers zu installieren. (d.h. andere MT4).

 

Liebe Fachleute, bitte helfen Sie. Die Idee ist, dass der EA einen Auftrag erstellen und denselben Auftrag erneut erstellen soll, wenn dieser Auftrag fehlschlägt. Aber das passiert nicht?

Sie schafft ständig Aufträge - ohne Ende.


 
VII >> :

Liebe Fachleute, bitte helfen Sie. Die Idee ist, dass der EA einen Auftrag erstellt und dann denselben Auftrag erneut erstellt, wenn dieser Auftrag fehlschlägt. Aber das tut sie nicht?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3); //Preis normalisieren

Es wird nicht in der Lage sein, die gleiche Reihenfolge zu erstellen, da sich Ask bei jedem Tick verändert. Und alle anderen Parameter und ihre Vergleiche in den Bedingungen werden aus dieser Variable berechnet.

 
VII >> :

Liebe Fachleute, bitte helfen Sie. Die Idee ist, dass der EA einen Auftrag erstellt und dann denselben Auftrag erneut erstellt, wenn dieser Auftrag fehlschlägt. Aber das passiert nicht?


Es gibt zwei Möglichkeiten, wie der EA/das Skript genau die gleiche Order öffnen kann, die wir festgelegt haben. Zunächst legen wir den Auftrag fest und schreiben alle seine Parameter in die Variablen, die sie speichern werden. Liegt keine Bestellung vor, schalten wir in den Standby-Modus. Sobald wir einen Zustand erreichen, in dem ein Auftrag mit diesen Parametern eingestellt werden kann, eröffnen wir einen Auftrag.

Zweitens. Sobald der Auftrag vom Markt verschwunden ist, gehen Sie die Historie durch und suchen Sie den letzten Auftrag. Wir zeichnen seine Parameter auf und schalten den Standby-Modus ein, wie wir es im ersten Fall getan haben.

Das Einzige, was ich sagen möchte. Wenn Sie die Logik des Programms so aufbauen, wie Sie es beschrieben haben und wie ich es hier erläutert habe, warten alle Aufträge auf die gleiche horizontale Ebene. Brauchen Sie das wirklich?