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

 
Oh, du bist eine Heldin, Junko, du reparierst stillschweigend den Code und... Es ist, als ob das passiert wäre. Sie wollen mir sagen, dass es so war, und ich nicht? Ja?
 
Roger:
Warum lesen Sie aus einer Datei? Sie haben die gesamte Datei in der ReadCBOE-Variable, Sie können sie verwenden,

MT hat seine eigenen Beschränkungen für die Länge der Zeichenkette, während die Datei auf die Informationen von der Website geschrieben wird, und die Datei endet </body></html>, während die Zeichenkette - bei 65k Zeichen (oder so) bricht. In jedem Fall beträgt die endgültige Dateigröße 69 KB.

 
Integer:

Lesen Sie den Artikel. Grundsätzlich gibt es in der Natur keine Möglichkeit, eine bestimmte Zeile einer Datei zu lesen, man muss alle Zeilen bis zu einer bestimmten Zeile lesen... Der Artikel enthält eine Funktion zum zeilenweisen Lesen einer Textdatei.

Wow, danke, ich habe es selbst nicht gefunden, ich hätte nach HTML-Tags suchen sollen.
 
Zhunko:

So funktioniert es. Ich habe es überprüft.


Wie auch immer, es gibt einen Fehler, und hier ist es
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
schreibt ALLE die Zeichenfolgein die Datei, unabhängig von den 3 Parametern der Funktion, die für die Größe der Zeichenfolge verantwortlich ist.
 
Integer:
Du bist eine Heldin, Junko, du reparierst im Stillen den Code und... als ob es so gewesen wäre. Willst du mir sagen, dass es so war und ich dich nur verarsche? Ja?

Was repariert? Prüfen auf NULL? Das ist in Ordnung. Was ist los? Wenn ich einen Fehler finde, berichtige ich ihn.

Man kann es nicht reparieren. Das habe ich gesehen. Selbst als Sie darauf hingewiesen haben, haben Sie es nicht korrigiert. Sie machen gerne Fehler und korrigieren sie nicht? Und dann gibst du damit an?

=============

Ich bin entschuldigt. Ich schreibe fast nie in MQL4. Ich habe bereits alles geschrieben, was ich brauche. Ich arbeite nicht mit Deskriptoren und Fehlern. Sie wurden vor langer Zeit geschrieben, eingekapselt und vergessen.

In C++ werden Deskriptoren normalerweise mit NULL verglichen.

mzk_3om6u:

Wie auch immer, es gibt einen Fehler, und hier ist es
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
Schreiben ALLE String in die Datei, unabhängig von 3 Funktionsparameter, die für die Stringgröße verantwortlich sind.
Das ist es nicht. Es funktioniert. Es ist nur so, dass dieser Code die Datei nicht überschreibt. Sie sehen sich eine Datei an, die bereits geschrieben wurde. Es scheint nicht zu funktionieren. In der Tat wurde sie dort geschrieben, wo sie sein sollte, aber die Fortsetzung der Zeile ist immer noch die alte.

Schreiben Sie etwas anderes, oder löschen Sie die Datei, oder versehen Sie sie mit einem Schreibschutz-Flag.

 
Zhunko:

Was repariert? Prüfen auf NULL? Das ist in Ordnung. Was ist los? Wenn ich einen Fehler finde, berichtige ich ihn.

Man kann es nicht reparieren. Das habe ich gesehen. Selbst als Sie darauf hingewiesen haben, haben Sie es nicht korrigiert. Sie machen gerne Fehler und korrigieren sie nicht? Und dann gibst du damit an?

=============

Ich bin entschuldigt. Ich schreibe fast nie in MQL4. Ich habe alles geschrieben, was ich brauche. Ich arbeite nicht mit Deskriptoren und Fehlern. Sie wurden vor langer Zeit geschrieben, eingekapselt und vergessen.

In C++ werden Deskriptoren normalerweise mit NULL verglichen.

Das ist es nicht. Es funktioniert. Es ist nur so, dass dieser Code die Datei nicht überschreibt. Sie sehen sich eine Datei an, die bereits geschrieben wurde. Es scheint nicht zu funktionieren. In der Tat wurde sie dort geschrieben, wo sie sein sollte, aber die Fortsetzung der Zeile ist immer noch die alte.

Schreiben Sie etwas anderes, löschen Sie eine Datei oder setzen Sie ein Nur-Schreiben-Flag.


Ja, es funktioniert... Danke.
 
Hallo! Kommt MetaTrader für Windows Phone oder Windows RT heraus und wann ist die Veröffentlichung geplant?
 
Gute Zeit. Bitte helfen Sie mir, den Fehler zu beheben.
extern int OpenHH = 14; // Время открытия ордеров (часы).
extern int OpenMM = 25; // Время открытия ордеров (минуты).

extern int CloseHH = 23; // Время закрытие/удаление ордеров (часы).
extern int CloseMM = 45; // Время закрытие/удаление ордеров (минуты).


Dieser Teil des Codes funktioniert, und es gibt keine Beschwerden darüber. Bestellungen am Freitag, 23:45 Uhr schließen normal. Die Funktion DeleteOrders() funktioniert einwandfrei.

if (DayOfWeek() == 0 || DayOfWeek() == 6 ) return(0); // В выходные не работаем.
if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят.
if (Close_All_Orders) // Разрешение на закрытие ордеров.
if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то
TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час
TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты -
{ DeleteOrders(); return(0); } // все ордера закрываются.


Der Code für die Eröffnung von Aufträgen ist analog aufgebaut. Der Code funktioniert in der angegebenen Form überhaupt nicht.
Wenn wir jedoch die Zeile mit den Minuten entfernen oder auskommentieren, funktioniert alles einwandfrei und die Aufträge werden um 14:00 Uhr geöffnet. Die Funktion OpenOrders() funktioniert einwandfrei.
Was könnte das Problem in dieser (oder einer anderen) Codezeile sein? TimeMinute(TimeCurrent()) >= OpenMM ?

if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час,
TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты -
{ OpenOrders(); return(0); } // открыть ордера.


PS: Grundsätzlich gibt es im Internet eine ganze Reihe von EAs, die Aufträge nach Zeit öffnen und schließen. Aber aus dem einen oder anderen Grund können sie nicht zufriedenstellend sein. Ich möchte den oben genannten Fehler beheben...

Ich danke Ihnen...

 
Crosswert:
Guten Tag. Helfen Sie mir bei diesem Fehler.


Alles scheint korrekt zu sein, es sollte funktionieren. Ich habe Ihren Code mit meinem ausprobiert - er funktioniert innerhalb von Minuten. Aber nur von 14:25 bis 14:59 Uhr, von 15:25 bis 15:59 Uhr usw.

int start()
  {
  int OpenHH=14,OpenMM=25;
  bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
 if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час
 TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты - 
 { OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.   
//----
   return(0);
  }
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


 

Vielleicht ist das besser.

if ((Hour() == OpenHH && Minute() >= OpenMM) || (Hour() > OpenHH))