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

 
Sepulca:

Vielleicht ist das besser.

Tauschen Sie einfach die Plätze. Hour()>OpenHH häufiger als Stunde und Minuten.
 
artmedia70:
Nur die Plätze tauschen. Dennoch ist Hour()>OpenHH häufiger als Stunde und Minuten.


Glauben Sie, dass dies die Geschwindigkeit des EA erhöhen wird? Ich frage mich, ob vielleicht... Um ehrlich zu sein, habe ich mir noch nie Gedanken über die Reihenfolge der Bedingungen in IF gemacht...)
 
Sepulca:

Glauben Sie, dass dies die Geschwindigkeit des EA erhöhen wird? Interessant, vielleicht... Ehrlich gesagt, habe ich mir noch nie Gedanken über die Reihenfolge der Bedingungen in IF...)
Na ja... Ich spreche zwar nicht von einem großen Anstieg, aber dennoch... bis das aktualisierte Terminal mit dem neuen MQL4 freigegeben wird, werden alle logischen Bedingungen bis zum Ende gelesen, auch wenn die erste falsch ist
 
Sepulca:


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.


Danke für die prompte Antwort, aber - leider funktioniert etwas nicht... Der Code funktioniert nur auf diese Weise, sowohl im Hauptteil des Skripts als auch im Hauptteil des EA. Nach Zeit und Funktionalität ist alles in Ordnung. Bestellungen werden nur nach Uhrzeit aufgegeben!
int start()
{
int OpenHH=14,OpenMM=25;
bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

Aber sobald ich Minuten hinzufüge ( TimeMinute(TimeCurrent()) >= OpenMM ) - kein Ergebnis.

Der EA weigert sich auch, Aufträge nach Minuten zu platzieren, wenn er die Funktion StrToTime() verwendet.

Nochmals vielen Dank... Ich werde weiter graben...

 
Sepulca:

Vielleicht ist das besser.

Nein... Das funktioniert auch nicht...

Selbst wenn ich eine andere Funktion StrToTime() verwende - wenn ich die Zeit in ganzen Stunden angebe - ist alles in Ordnung, aber sobald ich Minuten hinzufüge - kein Ergebnis. Obwohl, wie ich im 1. Beitrag geschrieben habe, schließen die Bestellungen freitags um 23:45 Uhr ohne Probleme...

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

 
Crosswert:

Nein... Das funktioniert auch nicht...

Auch bei der Verwendung einer anderen Funktion StrToTime() - wenn ich die Zeit in ganzen Stunden angebe - ist alles in Ordnung, aber sobald Minuten hinzugefügt werden - kein Ergebnis. Obwohl, wie ich im 1. Beitrag geschrieben habe, freitags die Bestellungen problemlos um 23:45 Uhr geschlossen werden...

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


Ich weiß es nicht... Dieser Code funktioniert auch bei mir....

 
Wie testen Sie es? Wenn zum Beispiel auf H1 und zu Eröffnungspreisen, wird es wahrscheinlich nicht funktionieren.
 
Sepulca:
Wie testen Sie es? Wenn z. B. auf H1 und zu Eröffnungskursen, wird es wahrscheinlich nicht funktionieren.
Es wird empfohlen, zu den Eröffnungskursen des Protokolls zu testen.
 
Sepulca:
Wie testen Sie? Wenn z. B. auf H1 und zu Eröffnungskursen, wird es wahrscheinlich nicht funktionieren.

Sie sehen, so einfach ist das... Die Minuten müssen ein Vielfaches von TF sein ...

Jetzt / if ( TimeCurrent() == StrToTime(OpenTime) && Trade ), if OpenTime = 14:25 / wird funktionieren, aber nur bei TF=M1 und M5 ... Die Funktion zum Öffnen von Aufträgen benötigt aktuelle Kurse, aber die Funktion zum Schließen von Aufträgen benötigt diese nicht...

Ich habe diesen Punkt irgendwie übersehen (wegen meiner Unerfahrenheit)...

Vielen Dank, ich habe das Problem gelöst...

 

Sepulca:

Wie testen Sie? Wenn zum Beispiel auf H1 und zu Eröffnungskursen, wird es wahrscheinlich nicht funktionieren.


Ha ha... Und hier ist eine Lüge...

Es stellte sich heraus, dass das Problem in der Funktion OpenOrders() lag. Ich habe völlig vergessen, die Kontrolle über die Ordereröffnung bei einem Zusammenbruch einer Kerze (Bar) aufzuheben:

if (Volume[0] > 1) return;

Also, auf welcher TF der Expert Advisor testete, eröffnete er Orders in diesen Minuten...

Dummheit im Allgemeinen, auf eine harte Tour...

Danke...