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

 
MakarFX #:

Können Sie mir sagen, wie man es richtig macht?

nicht alle Elemente eingeben, die ich addieren möchte, sondern nur 5 Elemente angeben

#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
int Label1Buffer[];
int Label2Buffer[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int i=0,
       f=0,
       limit=9;
   ArrayResize(Label1Buffer,limit);
   ArrayResize(Label2Buffer,limit);
   for(i=limit-1; i>=0; i--)
     {
Label1Buffer[i]= 3;
 if(i<=4) f+=Label1Buffer[i];
Label2Buffer[i]= f;
      Print(Label2Buffer[i]);
     }
Print("   !  ",Label2Buffer[0]);
  }
//+------------------------------------------------------------------+
 
Galim_V #:

Nein, das ist es nicht. Bislang habe ich Folgendes getan

   for(i=limit;i>=0;i--)
     {
      Label1Buffer[i] = MathRand();
      tmp = 0.0; 
      for(int a=Input1; a>0; a--)
        {
         tmp +=  Label1Buffer[i+a];
        } 
      Label2Buffer[i] = tmp;
     }
 
iHigh(NULL,PERIOD_H1,i) und double H=iHigh(NULL,PERIOD_H1,i); sind nicht dasselbe?

Aus irgendeinem Grund liefern sie nach der while-Schleife unterschiedliche Ergebnisse.

Ich wollte es so optimieren, dass ich nicht ständig eine lange Zeile iHigh(NULL,PERIOD_H1,i) schreibe , sondern sie in einer Variablen speichere. Wenn man sie in eine Variable in der Schleife ändert, ist das Ergebnis ein anderes.
 
Ivan Butko iHigh(NULL,PERIOD_H1,i) und double H=iHigh(NULL,PERIOD_H1,i); sind nicht dasselbe?

Aus irgendeinem Grund liefern sie nach der while-Schleife unterschiedliche Ergebnisse.

Ich wollte es so optimieren, dass ich nicht ständig eine lange Zeile iHigh(NULL,PERIOD_H1,i) schreibe , sondern sie in einer Variablen speichere. Wenn man sie in eine Variable in der Schleife ändert, ist das Ergebnis ein anderes.

hängt davon ab, welchen Kontext man betrachtet...

Wenn Ihre while-Schleife mit i spielt, dann werdeniHigh(NULL,PERIOD_H1,i) und H unterschiedlich sein... Da H die Daten der anderen i

 
Nikolay Ivanov iHigh(NULL,PERIOD_H1,i) und H unterschiedlich sein... Da H die Daten eines anderen i

Ja, du hast Recht, es spielt mit i. Ich meine, ich danke Ihnen.

 
Gibt es eine Möglichkeit, den Verlauf zu kürzen? Wenn Sie es herunterladen, ist es 20 Jahre alt, aber Sie brauchen es vor 2-3 Jahren...
 
Ivan Butko #:
Gibt es eine Möglichkeit, den Verlauf zu kürzen? Wenn Sie es herunterladen, ist es 20 Jahre alt, aber Sie brauchen es vor 2-3 Jahren...

Verwenden Sie die Umschalttaste, um die unerwünschten Daten zu markieren und sie zu löschen.

 
MakarFX #:

Verwenden Sie die Umschalttaste, um die nicht gewünschten Daten zu markieren und zu löschen.

Dankeschön

 
Guten Tag.
void CloseAll()
{
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Bid, Slippage))
               Print (" Не удалось закрыть ордер на покупку!");
            }
            if (OrderType() == OP_SELL) 
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Ask, Slippage))
               Print (" Не удалось закрыть ордер на продажу!");
            }
         }
      }
   }
}
Ich verwende diesen Code, um alle Aufträge abzuschließen. Aber ich habe festgestellt, dass, wenn es viele von ihnen gibt, nicht alle geschlossen sind. Was kann ich hinzufügen, um sie alle zu schließen, auch wenn es nicht das erste Mal ist. Wenn möglich, geben Sie uns bitte ein Beispiel.
 

Guten Tag noch einmal)

Zweite Frage:
Ich möchte Aufträge teilweise schließen. Aber es gibt ein Problem, wenn teilweise Schließen von Aufträgen, wie ich es verstehe, die Reihenfolge Ticket ändert, und von diesem die letzte wird die erste, und die Hauptsache für mich ist, um die Reihenfolge der Eröffnung zu halten. Damit die Letzten die Letzten bleiben. Wie wir die vorherige Bestellung verfolgen können. Ändert sich der Eröffnungspreis? Wenn möglich, mit Beispielen)
Vielen Dank im Voraus