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

 
niktron:

Hallo!

Können Sie mir sagen, wie man eine Bedingung stellt -

ob genügend freier Spielraum vorhanden ist, um eine Position zu eröffnen?

(Damit der Fehler 131 nicht auftaucht)... Danke!

Sie müssen das zulässige Positionsvolumen prüfen, nicht die Marge. Der 131. Fehler weist auf ein falsches Los hin
 

Sie müssen den Höchstwert des Indikators über 15 Zeiträume ermitteln. Die Suche in Balken ist kein Problem, aber in einem Indikator?

Ich gehe davon aus, dass Sie dafür eine Prüfschleife erstellen, ein Array deklarieren und diesen Wert darin finden müssen. Die Schleife ist fertig, aber ich weiß nicht, wie ich das Array deklarieren soll.

Und dann die Funktion ArrayMaximum verwenden, um den Wert zu finden? Können Sie mir sagen, wie ich diese Aufgabe bewältigen kann?

for(int i=0;i<=15;i++)
{
double indicator[];
ArrayInitialize(indicator,0);
double MA_2_t=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
}
 
niktron:

Hallo!

Können Sie mir sagen, wie man eine Bedingung stellt -

ob genügend freier Spielraum vorhanden ist, um eine Position zu eröffnen?

(Damit der Fehler 131 nicht auftaucht)... Danke!


https://docs.mql4.com/ru/account/accountfreemargincheck
 
Forexman77:

Sie müssen den Höchstwert des Indikators über 15 Zeiträume ermitteln. Die Suche in Balken ist kein Problem, aber in einem Indikator?

Ich gehe davon aus, dass Sie dazu eine Prüfschleife erstellen, ein Array deklarieren und diesen Wert darin finden müssen. Die Schleife ist fertig, aber ich weiß nicht, wie ich das Array deklarieren soll.

Und dann werde ich die Funktion ArrayMaximum verwenden, um den Wert zu finden. Bitte beraten Sie mich, wie ich diese Aufgabe erledigen kann.

Sie benötigen nicht nur ein Array, sondern auch einen Indikatorpuffer. Füllen Sie in der Hauptschleife den Puffer mit Indikatorwerten und verwenden Sie ArrayMaximum() für diesen Puffer.
 
Integer:
Sie brauchen nicht nur ein Array, sondern auch einen Indikatorpuffer. Füllen Sie in der Hauptschleife den Puffer mit Indikatorwerten und verwenden Sie ArrayMaximum() für diesen Puffer.

Die Suche wird für den Expert Advisor benötigt. Wird ein Indikatorpuffer damit funktionieren?
 
Forexman77:
Die Suche ist für den Expert Advisor erforderlich. Wird ein Indikatorpuffer damit funktionieren?


Im EA gibt es keinen Indikatorpuffer.

Wenn Sie im EA sind, gibt es zwei Möglichkeiten:

1. Machen Sie alles im Indikator, der EA ruft den Indikator auf und erhält einen fertigen Wert.

2. Erstellen Sie eine Schleife im Expert Advisor. In diesem Fall wird das Feld jedoch überhaupt nicht benötigt.

val=0;

for(i=1;i<=15;i++) {

    ind=iMA(...,i);

   if(ind>val) val=ind;

}
 
Integer:


Der Expert Advisor hat keinen Indikatorpuffer.

Wenn Sie im EA sind, gibt es zwei Möglichkeiten:

1. Machen Sie alles im Indikator, der EA ruft den Indikator auf und erhält einen fertigen Wert.

2. Erstellen Sie eine Schleife im Expert Advisor. In diesem Fall wird das Feld jedoch überhaupt nicht benötigt.

Es wird ein Array benötigt. Um das Minimum zu finden. Das Minimum wird auf diese Weise nicht gefunden.
 
Forexman77:
Es wird ein Array benötigt. Um das Minimum zu finden. Das Minimum wird auf diese Weise nicht gefunden.



Sie wissen es also genau und sind sich absolut sicher? Es ist nicht nötig, Ihre Meinung zu widerlegen? Würden Sie lieber dabei bleiben?

 
niktron:

Hallo!

Können Sie mir sagen, wie man eine Bedingung stellt -

ob genügend freier Spielraum vorhanden ist, um eine Position zu eröffnen?

(Damit der Fehler 131 nicht auftaucht)... Danke!

vielleicht ist das Los falsch, wenn 131?
 
Integer:



Sie wissen es also mit Sicherheit und sind sich absolut sicher? Es ist nicht nötig, Ihre Meinung zu widerlegen? Würden Sie es vorziehen, dabei zu bleiben?

Natürlich weiß ich das! Wie lässt sich dieses Konstrukt nun auf die Suche nach dem Minimum anwenden? Ich kriege das nicht in den Griff)
Und ich möchte lernen , wie man ein Array deklariert. Ich habe es auf diese Weise versucht:

double massiv[];
int start()
  {
//----
for(int i=0;i<=33;i++)
{
double ind=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
massiv[33]=ind;
double minValueidx=ArrayMinimum(massiv,33,0);
Alert("minValueidx=",minValueidx);
}
//----
   return(0);
  }
Das Ergebnis ist -1.