[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 477
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);
Bitte sagen Sie mir, welcher Code in den EA geschrieben werden sollte, damit der EA nur einmal pro Stunde handelt
z.B. der EA hat ausgelöst, eine Order ist geöffnet (nicht weiter interessiert), ich möchte, dass die Order nicht auf dem aktuellen Balken auf stündlichem Zeitrahmen geöffnet wird
es sieht alles gleich aus:
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if (AktuelleStunde!=hh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
aber ich habe unzählige Aufträge offen
Hallo zusammen!
Bitte sagen Sie mir, was das bedeutet:
Kaufauftrag ...... fehlgeschlagen [Zeitüberschreitung beim Handel]
Mich interessiert insbesondere, um welche Art von Zeitüberschreitung es sich handelt.
https://www.mql5.com/ru/forum/112612
Dies ist eine abgelaufene Serverantwort --- unabhängig davon, ob das Geschäft geöffnet wurde oder nicht. Und es gibt keine Garantie, dass der Handel nicht eröffnet wurde.
Ich muss also prüfen, ob der Auftrag in einer Minute eröffnet wird, und dann den Handel fortsetzen.
rlx:
muss vor start() und init() gesetzt werden
int hh = 0;
int init()
{
return(0);
}
int start()
{
//-------------------------------------------------
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("keine offenen Aufträge");
}else
{
Alert ("haben offene Aufträge");
}
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if ((CurrentHour!=h)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
//-------------------------------------------------
return(0);
}
int deinit()
{
return(0);
}
Ich habe getan, was Sie sagten, keine Wirkung, fügte Zählung der offenen Aufträge, öffnet jetzt Aufträge direkt nach dem Schließen
Ich habe es mit OrderCloseTime() umgangen - es scheint jetzt zu funktionieren
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("keine offenen Aufträge");
}else
{
Alert ("haben offene Aufträge");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent());
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
hh=TimeHour(OrderCloseTime());
if ((CurrentHour!=hh)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
}
https://www.mql5.com/ru/forum/112612
Dies ist die Wartezeit, bis der Server antwortet --- ob ein Geschäft eröffnet wurde oder nicht. Und es gibt keine Garantie, dass das Geschäft nicht eröffnet wurde.
Prüfen Sie daher, wie von den Entwicklern empfohlen, nach einer Minute, ob ein Auftrag eröffnet wurde, und fahren Sie erst dann fort.
Ich will aber keine Nervensäge sein.
Erklären Sie mir, wie ein Auftrag eröffnet wird, wenn OrderTotal() Null ist.
Ich danke Ihnen.
Nachfolgend die Abbildung mit Klammern, die den Codeblock begrenzen, der unter der Bedingung ausgeführt wird
OrderSend()-Vorgänge sind von dieser Bedingung nicht betroffen.
wie man eine Bar-Nummer bekommt, in der "Zukunft" :)
iBarShift() funktioniert gut, um die Taktnummer aus der Historie zu erhalten, aber wie würden Sie die Taktnummer für diesen Code erhalten, wenn Sie die Zeile nach rechts verschieben - jenseits des Nullbalkens?
wie man eine Bar-Nummer bekommt, in der "Zukunft" :)
iBarShift() funktioniert gut, um die Taktnummer aus der Historie zu erhalten, aber wie kann ich die Taktnummer für diesen Code erhalten, wenn ich die Zeile nach rechts verschiebe - über den Nullstrich hinaus?
Sie können einen Offset relativ zu Time[0] erhalten
Sie können einen Offset relativ zu Time[0] erhalten
Ich danke Ihnen! Jetzt ist alles in Ordnung!