Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 514

 

Hallo, ich bin auf folgendes Problem gestoßen: Ich kann den EA nicht dazu bringen, in nur zwei Zeiträumen zu handeln. Wie kann ich das tun? Können Sie mir bitte sagen, wie man das macht? Der Code sieht so aus, aber er akzeptiert nur 1 Punkt, der zweite wird ignoriert

extern string с = "Блок № 3";
extern int    Start_H1 = 0;
extern int    Start_M1 = 30;
extern int    End_H1   = 7;
extern int    End_M1   = 59;
extern int    Start_H2 = 12;
extern int    Start_M2 = 30;
extern int    End_H2   = 20;
extern int    End_M2   = 10;



if (((Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )) ||
    ((Hour()>=Start_H2 && Minute()>Start_M2) && (Hour()<=End_H2 && Minute()<=End_M2))) 
        {
         открытие ордеров
        }
 
Nikita Chernyshov:

Hallo, ich bin auf folgendes Problem gestoßen: Ich kann den EA nicht dazu bringen, in nur zwei Zeiträumen zu handeln. Wie kann ich das tun? Können Sie mir bitte sagen, wie man das macht? Der Code sieht so aus, aber er akzeptiert nur 1 Punkt, der zweite wird ignoriert

Es wäre besser, Stunden und Minuten in Vollzeit umzurechnen und mit der aktuellen Zeit zu vergleichen.

   string startTime_1, startTime_2, endTime_1, endTime_2;
   StringConcatenate(startTime_1, Start_H1, ":", Start_M1);
   StringConcatenate(endTime_1, End_H1, ":", End_M1);
   StringConcatenate(startTime_2, Start_H2, ":", Start_M2);
   StringConcatenate(endTime_2, End_H2, ":", End_M2);
   datetime startHM_1, startHM_2, endHM_1, endHM_2;
   startHM_1 = StringToTime(startTime_1);
   endHM_1 = StringToTime(endTime_1);
   startHM_2 = StringToTime(startTime_2);
   endHM_2 = StringToTime(endTime_2);
   if((TimeCurrent() >= startHM_1 && TimeCurrent() <= endHM_1) || (TimeCurrent() >= startHM_2 && TimeCurrent() <= endHM_2))
 
Hallo. Es gibt Objekte - Dreiecke mit Namen: 321fa34, 321fa53, 321fa41. Wie kann ich den Mindestpreis des frischesten Dreiecks herausfinden? Der Preis, der bei den Immobilien in der Mitte steht.
 
YanSay:

Добрый день!

Прошу помочь со следующей проблемой:

1) После выполнения некоторых условий, открывается отложенный ордер:

Подскажите пожалуйста, что нужно дописать и куда, чтобы неоткрывшийся отложенный ордер был удален в том случае, если цена уже прошла стоп лосс(этого неоткрывшегося оредра).

Извините за глупый вопрос, заблудился в форумах пока искал ответ.

Заранее благодарю!

Kennung

Beschreibung

AUFTRAG_ZEIT_GTC

Der Auftrag bleibt in der Warteschlange, bis er entfernt wird.

AUFTRAG_ZEIT_TAG

Der Auftrag ist nur für den aktuellen Handelstag gültig.

AUFTRAGSZEIT_SPEZIFIZIERT

Die Bestellung ist bis zum Verfallsdatum gültig.

AUFTRAGSZEIT_BESTIMMTER_TAG

Der Auftrag ist bis 23:59:59 Uhr des laufenden Handelstages gültig. Liegt dieser Zeitpunkt nicht innerhalb einer Börsensitzung, erfolgt der Verfall zum nächstgelegenen Handelszeitpunkt.


Dies sind nur die Parameter für die Entnahme von schwebenden Aufträgen!

Um den Auftrag zu löschen, müssen Sie den Preis überwachen und, wenn er den Stoppkurs erreicht, den Auftrag löschen - all dies muss in einem separaten Code geschrieben werden!

 

Sehr geehrte Damen und Herren,

Bitte helfen Sie mir, den Fehler zu finden:

(Irrtümer)

')' - unerwartetes Ende des Programms

" - Komma erwartet

" -semikolon erwartet

'Trade_BY' - Funktion nicht definiert

'Trade_SELL' - Funktion nicht definiert

Dateien:
 

Bitte beraten Sie mich!

Wie kann ich das Skript verwenden, um die Einstellungen (eine bestimmte Variable) des Indikators im Diagramm zu ändern?

Wenn dies möglich ist, wäre ein Code wünschenswert!!!

 
PolarSeaman:
Hallo. Es gibt Objekte - Dreiecke mit Namen: 321fa34, 321fa53, 321fa41. Wie erfahre ich den Mindestpreis des frischesten Dreiecks? Der Preis, der bei den Immobilien in der Mitte steht.

1.

OBJPROP_CREATETIME

Erstellungszeit des Objekts

Datum Uhrzeit r/o

2.

OBJPROP_PRICE

Preis koordinieren

modifier=Nummer des Ankerpunkts

 
Nikita Chernyshov:

Hallo, ich bin auf folgendes Problem gestoßen: Ich kann den EA nicht dazu bringen, in nur zwei Zeiträumen zu handeln. Wie kann ich das tun? Können Sie mir bitte sagen, wie man das macht? Der Code sieht so aus, aber er akzeptiert nur einen Punkt und ignoriert den zweiten

Bei diesem Ansatz werden beide Zeitrahmen ignoriert. Die aktuelle Uhrzeit ist zum Beispiel 01:15. Wird der Zustand anhalten?

(Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )

Nein, das wird es nicht. Immerhin sind die laufenden Minuten 15, also weniger als die anfänglichen 30. Ähnliches gilt für das zweite Intervall. Es ist am besten, die Zeit in Minuten vom Beginn des Tages an umzurechnen:

int nCurDayMinutes = Hour() * 60 + Minute();
int nStart1DayMinutes = Start_H1 * 60 + Start_M1;
int nEnd1DayMinutes = End_H1 * 60 + End_M1;
if (nCurDayMinutes >= nStart1DayMinutes && nCurDayMinutes < nEnd1DayMinutes)
{
   // внутри интервала
}
 
YanSay:

Guten Tag!

Bitte helfen Sie mir bei dem folgenden Problem:

1) Nachdem einige Bedingungen erfüllt sind, wird ein schwebender Auftrag eröffnet:

Bitte sagen Sie mir, was ich hinzufügen und wo ich eine schwebende Order löschen kann, wenn der Preis bereits den Stop Loss (dieser schwebenden Order) überschritten hat.

Entschuldigung für die dumme Frage, ich habe mich bei der Suche nach einer Antwort im Forum verirrt.

Ich habe mich bei der Suche nach der Antwort in den Foren verirrt. Vielen Dank im Voraus!

Zunächst einmal wissen wir nicht, ob die Bestellung geöffnet wurde, da es keine Kontrolle darüber gibt. Daher ist es sinnlos, zu prüfen, ob der Stop Loss oder Take Profit einer nicht eröffneten Order gesetzt wurde.

 
Игорь:

Bitte beraten Sie mich!

Wie kann ich das Skript verwenden, um die Einstellungen (eine bestimmte Variable) des Indikators im Diagramm zu ändern?

Wenn dies möglich ist, wäre ein Code wünschenswert!!!

Eine sehr seltsame Frage. Das ist dasselbe wie die Frage: "Wie dreht man einen Hocker mit einer Feile um?

Grund der Beschwerde: