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

 
Vladimir:
Irgendwo in der Hilfe sagen die Entwickler, dass keine Sortierung garantiert ist.

Es gibt immer eine Bestellung auf dem Ticket. Das Ticket einer späteren Bestellung wird niemals kleiner sein als das einer früheren Bestellung (zum Zeitpunkt der Eröffnung).

Und wenn wir unter den ausstehenden Aufträgen suchen, dann einfach der Reihe nach - der Auftrag mit der Nummer 0 - ist der älteste Auftrag, und der Auftrag mit der Nummer OrdersTotal()-1 ist der jüngste Auftrag (wieder nach der Öffnungszeit), ohne Berücksichtigung des Typs.

Bei der Historie der abgeschlossenen Aufträge kommt es immer noch auf die Sortierung in der Registerkarte Historie des Terminalfensters an.

 

Ich musste es nachschlagen. Ich habe es nicht in der MQL5-Referenz gefunden, aber ich habe es in der OrderSelect-Referenz für MQL4 gefunden:

"Wenn Sie den Parameter SELECT_BY_POS verwenden, werden die Informationen in der Reihenfolge zurückgegeben, in der sie vom Handelsserver empfangen wurden. Die Sortierung der eingegangenen Auftragsliste ist nicht gewährleistet."

Ich überprüfe systematisch, ob die von mir verwendeten Listen nach Ticketnummern sortiert sind. Es wurden keine Fälle bekannt, in denen sie fehlte. Aber man kann auch nicht mit der Referenz argumentieren, es gibt kein Argument. Das ist auch gut so, das ist auch gut so...

 
Vladimir:

Ich musste es nachschlagen. Ich habe es nicht in der MQL5-Referenz gefunden, aber ich habe es in der OrderSelect-Referenz für MQL4 gefunden:

"Wenn Sie den Parameter SELECT_BY_POS verwenden, werden die Informationen in der Reihenfolge zurückgegeben, in der sie vom Handelsserver empfangen wurden. Die Sortierung der eingegangenen Auftragsliste ist nicht gewährleistet."

Ich überprüfe systematisch, ob die von mir verwendeten Listen nach Ticketnummern sortiert sind. Es wurden keine Fälle bekannt, in denen sie fehlte. Aber man kann auch nicht mit der Referenz argumentieren, es gibt kein Argument. Das ist auch gut so, das ist auch gut so...

Was meinen Sie mit "nichts"? Sortieren nach Ticket - es gibt immer eine Reihenfolge und keine Widersprüche mit der Dokumentation, sie sagt über die Sortierung nach Seriennummer, nicht nach Ticket, das sind unterschiedliche Dinge.
 
Jungs sagen Sie mir, wie man mit den neuen Builds testen sie immer ändern und was jetzt gearbeitet funktioniert nicht ich Zitate aus dem tipstory Licht herunterladen und importieren Zitate in das Terminal für builds1010 alles gut und die neue1045 diese ganze Sache nicht funktioniert, in welchem Problem jemand weiß?
 
Vitalie Postolache:
Was meinen Sie mit "nicht sortieren"? Sortieren nach Ticket - es wird immer eine Reihenfolge geben und es gibt keinen Widerspruch zur Dokumentation, sie sagt über die Sortierung nach Ticketnummer, nicht nach Ticket, das sind unterschiedliche Dinge.
Und irgendwo in der Dokumentation steht etwas über die Sortierung nach Ticketnummer? Können Sie mir das sagen, ich weiß es nicht.
 
Vitaly Muzichenko:

Führen Sie diesen Code aus, und lesen Sie das Protokoll

bool flag=true;

void OnTick()
{
//--
if(flag)
  {
  for(int i=0; i<OrdersTotal(); i++)
   {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
     Print(i," = ",OrderOpenTime());
    }
   }
  flag=false;
}

//-
}
Ich danke Ihnen! Verstanden
 

Ein weiteres Problem, auf das ich gestoßen bin! Urteilen Sie nicht, ich lerne die Sprache seit 2-3 Wochen, vielleicht bin ich einfach nur dumm!

Die Aufgabe des Expert Advisors ist es, den Händler alle 4 Stunden per E-Mail zu benachrichtigen, wenn die freie Marge auf dem Konto einen bestimmten Wert erreicht hat.

In der Betreffzeile der Nachricht müssen Sie den Namen des Brokers und das gehandelte Paar angeben, und im Text der Nachricht "Danger! Die Inanspruchnahme liegt über dem Grenzwert. Ergreifen Sie die erforderlichen Maßnahmen".

Der Compiler funktioniert nicht, ich bin nicht gut in Englisch und ich kann nicht herausfinden, was der Fehler ist!

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS: Vielleicht gibt es generell eine einfachere Lösung für diese Art von Problem, aber bisher sehe ich es nur auf diese Weise)

 
Ein Ratschlag für einen Dummkopf. Wie eröffne ich ein echtes Konto?
 
Anton Sokolov:

Ein weiteres Problem, auf das ich gestoßen bin! Verurteilen Sie mich nicht, ich lerne die Sprache seit 2-3 Wochen, vielleicht bin ich einfach nur dumm!

Die Aufgabe des Expert Advisors ist es, den Händler alle 4 Stunden per E-Mail zu benachrichtigen, wenn die freie Marge auf dem Konto einen bestimmten Wert erreicht hat.

In der Betreffzeile der Nachricht müssen Sie den Namen des Brokers und das gehandelte Paar angeben, und im Text der Nachricht "Danger! Die Inanspruchnahme liegt über dem Grenzwert. Ergreifen Sie die erforderlichen Maßnahmen".

Der Compiler funktioniert nicht richtig, ich bin nicht gut in Englisch und kann nicht verstehen, was der Fehler ist!

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS: Vielleicht gibt es generell eine einfachere Lösung für ein solches Problem, aber bisher sehe ich es nur auf diese Weise)

Ich weiß nicht, worum es sich handelt.

Was sind die Compilerfehler?

 

prıvet.podjalujte pojalusta pozwala why on demo schete ne mogu otkrıt zdelkı


Grund der Beschwerde: