[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 56

 
first_may:


Ja, ich stimme zu, ich habe es falsch ausgedrückt. Nachdem ich Hilfe gelesen hatte, beschloss ich, es so zu schreiben:

// der Expert Advisor kann an jedem Tag der Sitzung Aufträge erteilen
// im Zeitraum von 10-45 bis 18-30
if (Stunde()>=10 && Minute()>=45 && Stunde()<=18 && Minute()<=30)
{
...
}

Ist dies die richtige Bedingung, um die Zeit zu überprüfen?


Nein. Mit dieser Bedingung können Sie überhaupt nicht handeln, da Minute()>=45 && Minute()<=30 im Prinzip unmöglich ist.

 
sergeev:

Nein. Mit dieser Bedingung können Sie überhaupt nicht handeln, da Minute()>=45 && Minute()<=30 im Prinzip unmöglich ist.


Sie können also Stunden und Minuten nicht separat vergleichen? So entspricht zum Beispiel 11-55 der ersten Bedingung, da 11>=10 & 55>=45, aber nicht der zweiten, da 11<=18 & 55<=30. Obwohl im wirklichen Leben 11-55 gerade in der Zeitspanne von 10-45 bis 18-30 liegt.
 
first_may:

Es stellt sich heraus, dass wir Stunden und Minuten nicht separat vergleichen können? Zum Beispiel erfüllt 11-55 die erste Bedingung, da 11>=10 und 55>=45, aber nicht die zweite, da 11<=18 und 55<=30. Obwohl im wirklichen Leben 11-55 gerade in der Zeitspanne von 10-45 bis 18-30 liegt.

müssen Sie Ihre Start- und Endzeit mit z.B. StrToTime erstellen
 
sergeev:

müssen Sie Ihre eigenen Start- und Endzeiten erstellen, z. B. StrToTime


Hier, unter Verwendung der letzten bekannten Serverzeit, schrieb:
if (TimeCurrent()>=StrToTime("10:45") && TimeCurrent()<=StrToTime("18:30"))
{
...
}

Jetzt wird 11-55 in den Zeitraum von 10-45 bis 18:30 fallen?

 
first_may:

Fällt 11-55 nun zwischen 10-45 und 18-30?

Ja.
 
sergeev:
Ja.


Herzlichen Dank! :)
 

Leute, bei all diesen globalen und lokalen Variablen bin ich kurz davor, barfuß herumzulaufen und Spatzen zu pusten. Mann, ich verstehe nicht, warum es mitten im Nirgendwo so viele Kopfschmerzen gibt!!!!

int Orders=0;                          // Объявление глобальной еременной суммы ордеров
int start()                            // Спец. функция start
  {
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //Сигнал на пересечении МА
        {
          if (OrdersTotal()>= 1) 
              return(0);               //Если ордеров больше 1, уходим.
   
          SL = 30;                     // Стоп лосс
          TP = 12;                     // Тейк профит
          S_Price = Low[1] - 1* Point; // Уровень установки SELLSTOP
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0) // Установка
//ордера SELLSTOP. Если OrderSend возвращает больше 0, то выполняем следующее.
            {
               Orders++;               //Увеличить величину Orders на 1. 
               Alert ("Ордер выставлен.Orders = ",Orders ); //Вывод нового значения Orders.
            }
        }    
   return(0);                             // Выход из start()
  }
Soweit ich aus dem MQL4-Tutorial weiß, sollte der neue Wert der globalen Variable Orders jetzt 1 sein. Die nächste Iteration sollte 2 sein, dann 3. Dann 4. Und so weiter, bis der Expert Advisor schwebende Aufträge erteilt. Aber ich verstehe nicht, warum der EA keine Pending Orders platziert! Nachdem ich eine weitere schwebende SELLSTOP-Order platziert habe, sehe ich jedes Mal nur eine Meldung: Orders = 1! Was ist der Grund dafür? Kann es an MetaEditor liegen?
 
vovan-gogan:

Leute, bei all diesen globalen und lokalen Variablen bin ich kurz davor, barfuß herumzulaufen und Spatzen zu pusten. Mann, ich verstehe nicht, warum es mitten im Nirgendwo so viele Kopfschmerzen gibt!!!!

Soweit ich aus dem MQL4-Tutorial weiß, sollte der neue Wert der globalen Variable Orders jetzt 1 sein. Die nächste Iteration sollte 2 sein, dann 3. Dann 4. Und so weiter, bis der Expert Advisor schwebende Aufträge erteilt. Aber ich verstehe nicht, warum der EA keine Pending Orders platziert! Nachdem ich eine weitere schwebende SELLSTOP-Order platziert habe, sehe ich jedes Mal nur eine Meldung: Orders = 1! Was ist der Grund dafür? Kann es an MetaEditor liegen?

Der Grund dafür ist, dass Sie mehr Marktaufträge auf diesem Handelskonto eröffnet haben.
 
Roman.:

Der Grund dafür ist, dass Sie mehr Marktaufträge auf diesem Handelskonto offen haben.

Das Traurigste ist, dass dies geschieht in der Tester. und ausstehende Aufträge werden von der EA platziert, aber die Aufträge immer gleich 1
 
vovan-gogan:

Das Traurigste ist, dass dies im Tester passiert. Der Expert Advisor platziert Pending Orders und Orders ist immer gleich 1

Ich glaube, Sie haben Ihre Frage nicht richtig formuliert.