Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 936

 
AlexeyVik:
Nicht überprüft, aber was hindert Sie daran, es selbst zu überprüfen? Sie müssen nur die Vorlage mit allen Indikatoren unter dem EA-Namen speichern. Wenn Sie den EA dann im Tester starten, werden alle Indikatoren geladen und funktionieren wahrscheinlich korrekt. Es ist jedoch möglich, dass sie die Werte aus den Registerkarten "Handel" und "Kontoverlauf" übernehmen.
Ich habe es versucht. Noch nicht. Ich werde es noch einmal versuchen.
 
kosmos0975:
Ich habe es ausprobiert. Ich kann es noch nicht sehen. Ich werde es noch einmal versuchen.
Ist es wirklich notwendig, ein solches Durcheinander mit Indikatoren zu machen? Wäre es nicht einfacher, alles in den Expert Advisor zu packen?
 
AlexeyVik:
Ist es wirklich notwendig, die Indikatoren so zu verzerren? Wäre es nicht einfacher, alles in den Expert Advisor zu packen?

Im Laufe der Zeit wird der Expert Advisor mit zusätzlichen Bedingungen für den korrekten Betrieb belastet und wird unflexibel.

(Vielleicht ist es eine Perversion. Wir Russen suchen nicht nach einfachen Wegen:)

 
Guten Tag!
Wie kann "Markt ist geschlossen" in EA definiert werden?
 
abeiks:
Guten Tag!
Wie kann man "Markt ist geschlossen" in Expert Advisor definieren?

Warum sollten Sie das tun wollen? Wenn der Markt geschlossen ist, gibt es keine Ticks, und der Expert Advisor funktioniert daher nicht.

Aber wenn Sie es wirklich brauchen, versuchen Sie dies.

MarketInfo(Symbol(), MODE_TRADEALLOWED);

Ist der Markt geöffnet, wird 1 zurückgegeben, ist der Markt geschlossen, sollte 0 zurückgegeben werden).

 

Hier ist die Sache - ich brauche, um den minimalen und maximalen Preis Wert der letzten 100 Bars, zum Beispiel zu bestimmen, und dann fixieren Sie den Anstieg / Rückgang, wenn der Preis geht nach unten / oben, so kann ich eine Umkehrung Muster wie 1 2 3 zeichnen. Ich verstehe den Unterschied zwischen den Funktionen ArrayMaximum und iHighest nicht. Wenn ich es richtig verstehe, wird das Ergebnis ihrer Berechnungen nur der Index des höchsten Balkens im angegebenen Intervall des Arrays sein? Ist es notwendig, den for-Operator zu verwenden, wenn man mit Arrays für Berechnungen arbeitet, wie im Beispiel in Frage 26 des Lehrbuchs? Ich habe diesen Code in den folgenden geändert

//-------------------------------------------------------------------- //multiprice.mq4 // Konzipiert für die Verwendung als Beispiel im MQL4.manual. //-------------------------------------------------------------------- extern int Quant_Bars=100; // Anzahl der Balken //-------------------------------------------------------------------- int start() // Spezialfunktion start { int i; // Balkenanzahl double Minimum=Bid, // Mindestpreis Maximum=Bid; // Höchstpreis for(i=0;i<=Quant_Bars-1;i++) // Von Null (!) bis .) if (Low[i]< Minimum) // Wenn < bekannt Minimum=Low[i]; //dann wird es Min if (High[i]> Maximum) // Wenn > bekannt Maximum=High[i]; // dann wird es Max double Level_1, // Signal Level 1 Level_2, // Signal Level 2 Price; // Aktueller Preis Level_1=Minimum; // Setze das Minimum Level Level_2=Maximum; // Setze das Maximum Level Price=Bid;                                  // Abfrage des Preises if (Preis<Level_1) { // Überprüfung der komplexen Bedingung Alert("Es wurde ein Muster für den Verkauf gebildet"); } if (Preis<Level_2) { // Überprüfung der komplexen Bedingung Alert("Es wurde ein Muster für den Kauf gebildet"); // Report } return; } //-------------------------------------------------------------------- Aber es erzeugt irgendwie ein Muster für den Kauf bei jedem Tick, während es nur signalisieren sollte, wenn sich das Minimum oder das Maximum geändert hat.  



 
silachara:

Warum sollten Sie das tun wollen? Wenn der Markt geschlossen ist, gibt es keine Ticks, und der Expert Advisor funktioniert daher nicht.

Aber wenn Sie es wirklich brauchen, versuchen Sie dies.

Wenn der Markt geöffnet ist, wird 1 zurückgegeben, wenn er geschlossen ist, sollte 0 zurückgegeben werden).

Danke!
Für Informationen. Ich muss die Zeit zwischen den Ticks berechnen.
Ich verwende OnTimer().
 
Deniskaaa:

Hier ist die Sache - ich brauche, um den minimalen und maximalen Preis Wert der letzten 100 Bars, zum Beispiel zu bestimmen, und dann fixieren Sie den Anstieg / Rückgang, wenn der Preis geht nach unten / oben, so kann ich eine Umkehrung Muster wie 1 2 3 zeichnen. Ich verstehe den Unterschied zwischen den Funktionen ArrayMaximum und iHighest nicht. Wenn ich es richtig verstehe, wird das Ergebnis ihrer Berechnungen nur der Index des höchsten Balkens im angegebenen Intervall des Arrays sein? Müssen Berechnungen mit der for-Anweisung durchgeführt werden, wenn man mit Arrays arbeitet, wie in der Lehrbuchaufgabe 26? Ich habe diesen Code in den folgenden geändert




Wenn Sie nach diesen Signalen handeln wollen, sollten Sie das nicht tun. Wenn Sie lernen zu programmieren, schreiben Sie es richtig.

doppelt

   Level_1, // Signalstufe 1 Level_2, // Signalstufe 2 Preis; // Aktueller Preis
oben.
for(i=0;i<=Quant_Bars-1;i++) ersetzen durch for(i=0;i<Quant_Bars; i++)
{
	 if (Low[i]< Minimum) // Wenn < bekannt 	 Minimum=Low[i]; // dann wird es min 	 if (High[i]> Maximum) // Wenn > bekannt 	 Maximum=High[i]; // dann wird es max
}
geschweifte Klammern hinzugefügt.
wenn (Preis<Level_2) das Vorzeichen ändern wenn (Preis > Level_2) oberhalb der Spitze
 
kosmos0975:

Wenn Sie mit diesen Signalen handeln wollen, lassen Sie es bleiben. Wenn Sie programmieren lernen, schreiben Sie richtig.


Ich danke Ihnen für Ihre Antwort.
 

Ich habe angefangen zu lernen, wie man mit Dateien arbeitet. Ich bin auf den Begriff Griff gestoßen. Die Frage stellte sich nach dem Schreiben des Codes:

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

Nach dem Öffnen der ersten news.csv-Datei setzt das Programm die Variable filehandle auf 1. Dann öffnete das Programm die zweite Datei news150901.csv und setzte die Variable filehandle auf 2. Es stellt sich heraus, dass das Programm jetzt nur noch einen Handle-Wert vom Öffnen der zweiten Datei hat. Mit anderen Worten: Ich habe den Handle-Wert für die erste geöffnete Datei gelöscht. D.h. ich kann nur auf die Daten/Inhalte zugreifen und die zweite Datei schließen? Ist es ein Fehler, eine Variable zu verwenden, um das Handle der geöffneten Datei zu speichern? Ist es ein Fehler, eine Variable zum Speichern des Handles der geöffneten Datei zu verwenden?

Grund der Beschwerde: