Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 240
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
1) - Dieser Teil öffnet die Datei 11112222.txt, um Daten aus ihr zu lesen:
//=================================BUY=========================================
int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения
2) - Als nächstes kommt die Bedingung if handle2>0
if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
{
3) - Das ist der Teil, den ich nicht verstehe:
Print(FileReadString(handle2));
4) - Mit diesem Teil wird die Datei geschlossen:
FileClose(handle2); // закрытие текстового файла
5) - Da die Bedingung handle2>0 erfüllt ist, d.h. die Datei 11112222.txt enthält 1, wird ein Kaufauftrag eröffnet:
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
{
OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
FileClose(handle2); // закрытие текстового файла
}
else
Print("NE USPESHNO!!!");
FileClose(handle2); // закрытие текстового файла
}
//=================================конец кода BUY=========================================
1) Öffnet die Datei, liest aber nicht ihren Inhalt.
2) Der Handle der Datei ist IMMER größer als Null. Dementsprechend gilt die Bedingung immer, wenn die Datei existiert, unabhängig von ihrem Inhalt.
3) Dies ist nur das Lesen des Inhalts der Datei. Obwohl ich nicht verstehe, warum eine Zeichenkette gelesen wird, wenn eine Zahl gelesen werden soll... Dennoch kann dies ein weiteres Problem darstellen. Jetzt kommt es darauf an, die Abfolge der Aktionen zu beschreiben.
4) Natürlich muss die Datei geschlossen werden, und sie wird geschlossen.
Und je nachdem, was Sie in Satz 3 lesen, muss nur der nächste Satz konditioniert werden, nicht aber der zweite Satz.
1) öffnet eine Datei, liest aber nicht deren Inhalt.
2) Ein Dateihandle ist IMMER größer als Null. Dementsprechend gilt die Bedingung immer, wenn die Datei existiert, unabhängig von ihrem Inhalt.
3) Dies ist genau das Lesen des Inhalts der Datei. Aber ich verstehe nicht, warum eine Zeichenkette gelesen wird, wenn eine Zahl gelesen werden soll... Es kann aber auch auf ein anderes Problem hinweisen. Jetzt kommt es darauf an, die Abfolge der Aktionen zu beschreiben.
4) Die Datei muss natürlich geschlossen werden, und das wird sie auch.
Und nur der nächste Satz sollte abhängig von dem, was Sie in Satz 3 lesen, konditioniert werden, nicht aber der zweite Satz.
Nein... INVALID_HANDLE hat den Wert -1.
Wenn dann ein Fehler beim Öffnen der Datei auftritt, erhält er ein Verkaufssignal...
Andere Konstanten
Spezielle Konstanten, die verwendet werden, um den Zustand von Parametern und Variablen anzugeben. Kann die folgenden Werte annehmen:
Konstante
Beschreibung
Wert
NULL
Null eines beliebigen Typs. Zeigt auch den Zustand einer leeren Zeichenkette an
0
LEER
Zeigt den leeren Zustand des Parameters an
-1
EMPTY_VALUE
Leerer Wert im Indikatorpuffer
2147483647 (0x7FFFFFFFF)
CLR_NONE, clrNONE
Keine Farbe. Standardwert, Zeiger auf leeren Wert. Verwendet in benutzerdefinierten Indikatoren
-1
CHARTS_MAX
Maximal mögliche Anzahl von gleichzeitig geöffneten Charts im Terminal
100
INVALID_HANDLE
Falscher Griff
-1
IS_DEBUG_MODE
Zeichen eines mq5-Programms im Debug-Modus
im Debug-Modus ungleich Null ist, sonst 0
IS_PROFILE_MODE
Zeichen eines mq5-Programms im Profiling-Modus
im Profiling-Modus ungleich Null ist, sonst ist es 0
WHOLE_ARRAY
Gibt die Anzahl der verbleibenden Elemente bis zum Ende des Arrays an, d.h. das gesamte Array wird verarbeitet
0
FALSCH_WERT
Eine Konstante kann implizit in einen beliebigen Aufzählungstyp umgewandelt werden
-1
Ich habe diesen Thread nicht gesehen, also habe ich einen neuen erstellt. Bitte schauen Sieauf https://www.mql5.com/ru/forum/206126
1) öffnet eine Datei, liest aber nicht deren Inhalt.
2) Ein Dateihandle ist IMMER größer als Null. Dementsprechend gilt die Bedingung immer, wenn die Datei existiert, unabhängig von ihrem Inhalt.
3) Dies ist genau das Lesen des Inhalts der Datei. Aber ich verstehe nicht, warum eine Zeichenkette gelesen wird, wenn eine Zahl gelesen werden soll... Es kann aber auch auf ein anderes Problem hinweisen. Jetzt kommt es darauf an, die Abfolge der Aktionen zu beschreiben.
4) Die Datei muss natürlich geschlossen werden, und das wird sie auch.
Und nur der nächste Punkt sollte abhängig von dem, was Sie in Punkt 3 lesen, konditioniert werden, nicht aber der zweite Punkt.
Liebe MQL-Gurus - wenn Sie kein Problem sind, bitte helfen Sie mir mit diesem Code, ich habe einen halben Tag auf Suchmaschinen verbracht, aber ich habe nichts Ähnliches gefunden.
Ich denke, es sind nur ein paar Zeilen, aber für einen erfahrenen Benutzer ist es eine Sache von Minuten)))
Wie kann eine Dll in C++ eine Zeichenfolge aus mql4 nehmen und konvertieren Sie es in char*?
Das ist doch der richtige Code, oder?Hallo alle, könnten Sie mich bitte beraten, ich schrieb ein EA vor etwa einem Jahr, es war gut funktionieren. Ich habe sie die ganze Zeit über nicht benutzt. Ich weiß nicht, was ich damit tun soll, ich weiß einfach nicht, was ich damit tun soll. Kann es daran liegen, dass ich das Gebäude gewechselt habe? Ich verwende derzeit die Build 1090.
Es scheint sich um ein paar Zeilen zu handeln, was für eine sachkundige Person eine Sache von drei Minuten ist)))
Ich habe zwei Stunden gebraucht. Ich muss das System Stück für Stück überprüfen. Führen Sie beide EAs gleichzeitig auf benachbarten Charts aus - alles wird sichtbar sein. Expert Advisor 1 = In Datei schreiben
//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }
EA 2 = Datei lesen
//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); }
Hallo alle, könnten Sie mich bitte beraten, ich schrieb ein EA vor etwa einem Jahr, es war gut funktionieren. Ich habe sie die ganze Zeit über nicht benutzt. Ich weiß nicht, was ich damit tun soll, ich weiß einfach nicht, was ich damit tun soll. Kann es daran liegen, dass ich das Gebäude gewechselt habe? Ich verwende derzeit die Build 1090.
Das ist durchaus möglich, es hat viele Innovationen gegeben. Beginnen Sie mit der Überprüfung auf Kompilierungsfehler. Mit der Richtlinie #PropertyStrict.
Es mag durchaus viele Innovationen gegeben haben. Beginnen Sie mit der Überprüfung auf Kompilierungsfehler. Mit der Richtlinie #PropertyStrict.
Eine solche Richtlinie gibt es nicht.
Es gibt sie:
Es mag durchaus viele Innovationen gegeben haben. Beginnen Sie mit der Überprüfung auf Kompilierungsfehler. Mit der Richtlinie #PropertyStrict.
Eine solche Richtlinie gibt es nicht.
Es gibt sie:
Aber ich kann die EA-Datei nicht öffnen, die auf meinem Computer mit der Erweiterung ex4 gespeichert ist, aber es gibt keine solche Datei in MetaEditor. Bitte sagen Sie mir, was der Grund dafür ist.