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

 
Artyom Trishkin #:
Und wie einfach es ist, ein Array zusammenzustellen und nach dem richtigen Kriterium zu sortieren. Aber seit 100500 Seiten sind wir auf den Fersen.
Bitte zeigen Sie mir ein Beispiel im Code. Ich weiß nicht, wie man in einem Array stapelt und dann auch noch sortiert.
 
Alexey Viktorov #:
Schließlich ist es einfacher und schneller, nachzufragen, als auf eine Antwort von jemand anderem zu warten...

Meine mql-Kenntnisse sind zu gering) ich könnte es versuchen, aber es würde mich viel Zeit kosten) also ist es besser herauszufinden, ob es möglich ist, als viel Zeit zu investieren und herauszufinden, dass es nicht geht)
wenn ich mehr freie Zeit habe, wird es sicherlich einfacher sein, es zu versuchen, aber im Moment würde ich lieber erfahrenere Leute fragen, ob es möglich ist.

 
Scarick #:

Meine mql-Kenntnisse sind zu gering) ich kann es sicherlich versuchen, aber es wird mich viel Zeit kosten) also ist es besser, vorher herauszufinden, ob es möglich ist, etwas zu tun, als viel Zeit zu investieren und herauszufinden, dass es nicht möglich ist)
wenn ich mehr Freizeit habe, wird es sicherlich einfacher sein, es zu versuchen, aber im Moment würde ich lieber erfahrenere Leute fragen, ob es machbar ist.

Wenn Ihre Fähigkeiten nicht allzu groß sind, aber Ihr logisches Denken funktioniert, was lässt sich dann aus dieser Frage schließen?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Alle Fragen von Anfängern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes

Scarick, 2021.11.06 17:01

Mit anderen Worten, wenn ich 5 Symbole in einem Indikator signiere, kann ich mit allen 5 Symbolen durch ein OnBookEvent() arbeiten? Wichtig ist nur, dass Sie filtern, nach welchem Zeichen die Änderung erfolgt ist.

dann ist es am zuverlässigsten, nachzuprüfen und nicht auf eine positive Antwort von jemand anderem zu warten. Deshalb habe ich so geantwortet, wie ich geantwortet habe.
 
MakarFX #:
Bitte zeigen Sie mir ein Beispiel im Code. Ich weiß nicht, wie man in einem Array stapelt und dann auch noch sortiert.

Siehe hierhttp://www.mql5.com/ru/articles/1404 Dort wird nicht sortiert, sondern in einem Array gestapelt.

Управление ордерами – это просто
Управление ордерами – это просто
  • www.mql5.com
Статья описывает разнообразные способы контроля открытых позиций и отложенных ордеров и призвана облегчить написание экспертов.
 
MakarFX #:
Zeigen Sie mir bitte ein Beispiel in Code. Ich weiß nicht, wie man in ein Array stapelt und dann auch sortiert.

bool BubleSort(struct &arr[])

{

for(int i = ArraySize(arr)-1;i>=0;i--)
for(int j = i-1;j>=0;j--) {

if (Compare(arr[i],arr[j])<0 ) Swap(arr[i],arr[j]);

}

}

Fick dich - geh zur Schule... solche Mikro-Algorithmen werden mit einem geschlossenen Auge aus dem Gedächtnis geschrieben.

Im Ernst: Machen Sie einen Algorithmus-Kurs oder so...

 
Alexey Viktorov #:

In Ihrem Fall, wenn die Fähigkeiten nicht groß sind, aber das logische Denken funktioniert, wie aus dieser Frage abgeleitet werden kann

dann ist es am zuverlässigsten, nachzuprüfen, anstatt auf eine positive Antwort von jemand anderem zu warten. Deshalb habe ich so geantwortet, wie ich geantwortet habe.
Ja, ich habe bereits herausgefunden, wie man es mit weniger Arbeit versuchen kann. Aber man kann es nicht mit einem Tester überprüfen. Ich muss noch einige Arbeitstage warten. Aber Sie hätten direkt antworten können.) Ich bitte Sie nicht, den Code für mich zu schreiben, ich habe nur eine Frage gestellt.
 

Maxim Kuznetsov #:

Fick dich - geh zur Schule... solche Mikro-Algorithmen werden aus dem Gedächtnis und betrunken mit einem zugekniffenen Auge geschrieben

Im Ernst, machen Sie einen Algorithmus-Kurs oder so etwas.

Interessante Art zu sprechen... du hättest dir nicht die Mühe machen müssen

 
MakarFX #:

Interessante Art zu sprechen... du hättest dir nicht die Mühe machen müssen

Normale Art und Weise - Ihnen wird ein Sortieralgorithmus vorgegeben. In Ordnung, normales Buble-Sortieren. Keiner hat sich angestrengt.

Und die übliche Botschaft ist eigentlich - lesen Sie über Algorithmen

Lesen Sie bereits die Literatur.

 

Guten Tag meine Herren Programmierer!!!!

Ich werde noch einmal versuchen, meine Frage zu stellen, aber ich habe sie ein wenig umformuliert.

In einem Grid EA müssen wir das Ticket der vorletzten Bestellung finden. Die Lösung -1 aus dem Ticket der maximalen Bestellung funktioniert nicht in der Strategie-Tester, vielleicht, aber es wird nicht auf einem Demo oder realen Konto arbeiten, ich ein Bild beigefügt, wird es klar sein, warum.

Ich habe den Code der Funktion geschrieben, die den vorletzten Bestellschein ermittelt. Die Logik ist wie folgt: Wenn wir alle offenen Aufträge im Raster durchsehen, finden wir den maximalen Auftrag, der darauf folgt, und das wird das notwendige Auftragsticket sein.

Allerdings ist mein Programmierniveau nicht hoch genug, und es gibt einige Fehler im Code. Das Ergebnis dieser Funktion ist das Mindestticket. Diese beiden Funktionen maximales Ticket und vorletztes Ticket. Die Funktion, mit der das maximale Ticket definiert wird, funktioniert ohne Probleme.

//+----------------------------------------------------------------------------+
//| Расчет тикета предпоследнего ордера в сетке                                |
//+----------------------------------------------------------------------------+
int GetTicketPenultimateOrder()
  {
   penultimate_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
           {
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
              {
               if(OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                  if(OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder())
                     penultimate_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return(penultimate_ticket);
  }
//+----------------------------------------------------------------------------+
//| Расчет тикета максимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
           {
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
              {
               if(OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                  if(OrderTicket() > max_ticket)
                     max_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return(max_ticket);
  }

Bitte teilen Sie uns mit, wo der Fehler liegt. Ich danke Ihnen.

 
Scarick #:
Ja, ich habe bereits herausgefunden, wie man es mit weniger Aufwand versuchen kann. Aber ich kann es nicht mit einem Tester überprüfen. Ich muss noch einige Arbeitstage warten. Aber Sie könnten direkt antworten. Ich bitte Sie nicht, den Code für mich zu schreiben, ich habe nur eine Frage gestellt.

Bitte schön... Ich wollte Sie nicht beleidigen. Welchen Unterschied würde eine positive Antwort machen? Schließlich müssen Sie nur während der Arbeitszeit schreiben und prüfen.

Grund der Beschwerde: