[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 178

 
chief2000 >> :

Ich hatte Probleme, wenn ich Arrays zum Speichern von Variablenstatus für beliebige "i" und

ihre Dimensionen nicht als "[]" definiert haben.

Wenn Array als Indikator SetIndexBuffer(0,MyArray); in int init() definiert ist, muss es nicht zusätzlich initialisiert werden,

Andernfalls müssen Sie nicht nur MyArray[]; deklarieren, sondern auch die Größe ArrayResize(MyArray,Count); initialisieren,

und genau in der Funktion, in der die Zuweisung erfolgen soll.

dann in

int start()
{ArrayResize( MyArray, Count);
//...
return(0);
}

.

Aber wenn die Größe des Arrays explizit durch die Zahl MyArray[1000]; deklariert wird, brauchen wir das alles nicht.

Die Methode ArrayResize ist nützlich, wenn man die Größe des Arrays vorher nicht kennt und sie im Programm berechnet.

 
Urain >> :

Wenn ein Array als Indikator SetIndexBuffer(0,MyArray); in int init() definiert ist, muss es nicht zusätzlich initialisiert werden,

Andernfalls müssen Sie nicht nur MyArray[]; deklarieren, sondern auch die Größe von ArrayResize(MyArray,Count); initialisieren,

und genau in der Funktion, in der die Zuweisung erfolgen soll.

dann in

.

Aber wenn die Größe eines Arrays explizit als MyArray[1000]; deklariert ist, brauchen wir das alles nicht.

Die Methode ArrayResize ist nützlich, wenn Sie die Größe des Arrays nicht im Voraus kennen, sondern im Programm berechnen.



Die Antwort ist erschöpfend! Herzlichen Dank!

 
chief2000 >> :

Die Antwort ist erschöpfend! Herzlichen Dank!

Ich kann es mir nicht verkneifen, hinzuzufügen, dass all dies und noch viel mehr kompakt und recht übersichtlich im Lehrbuch steht, und man sollte allmählich vom Hören der Geschichten zum Selberlesen übergehen.

 

Bitte erklären Sie, ob die switch-Anweisung nach If eingefügt werden kann?

diese:

wenn (Bedingung)

Schalter

 
chief2000 >> :

Ein Chukcha angelt am Ufer. Ein amerikanisches U-Boot taucht auf, der Kapitän steigt aus.

Er schaut sich um, ruft einen Nordostkurs herunter. Das Boot stürzte und verschwand. Einige Zeit später wurde ein russisches U-Boot

taucht ein russisches U-Boot auf. Der Kapitän fragt den Chukcha, in welcher Richtung das amerikanische U-Boot verschwunden ist.

Chukcha antwortet:
- Nord-Ost-Kurs!
- Mach dich nicht lustig über mich, zeig es mir mit deinem Finger!

:)

Einige Ratschläge für einen Anfänger.

Es gibt einige Funktionen in MQL, die aufgerufen werden, um einen Fisch zu machen.

Wenn diese Funktion als DLL umgeschrieben wird, ist es möglich, sie in anderen Programmen aufzurufen, zum Beispiel in Omega.

Ich danke Ihnen.

 
granit77 >> :

Ich kann es mir nicht verkneifen, hinzuzufügen, dass all dies und noch viel mehr kompakt und recht übersichtlich im Lehrbuch steht, und man sollte allmählich vom Zuhören der Geschichten zum Selberlesen übergehen.

Das ist alles wahr, aber alles braucht seine Zeit. Und bald werden Sie MQL5 lernen müssen.

 

Wie man richtig buchstabieren die Bedingung, wie zum Beispiel: Es gibt einen Indikator mit 2 Ebenen von 0 und 100 ... und die Bedingung ist wie folgt: Linie ging unter dem Niveau 0 nach einiger Zeit, ging über 0 Ebene und ging über das Niveau von 100 und die Ausfahrt Ebene von 100 Bedingung beenden sollte.

ׂ

Ich kann es nicht in meinen EA einfügen... Ich weiß nicht, wie ich es machen soll, ........?????

und ist es möglich, die folgende Bedingung zu schreiben?


 
Infinity >> :

Wie man richtig buchstabieren die Bedingung, wie zum Beispiel: Es gibt einen Indikator mit 2 Ebenen von 0 und 100 ... und die Bedingung ist wie folgt: Linie ging unter dem Niveau 0 nach einiger Zeit, ging über 0 Ebene und ging über das Niveau von 100 und die Ausfahrt Ebene von 100 Bedingung beenden sollte.

Ich kann es nicht in meinen EA einfügen... Ich weiß nicht, wie ich es machen soll, ........?????

und ist es möglich, die folgende Bedingung zu schreiben?


Suchen Sie nach einem EA von Laguero, ich glaube, es gab dort solche Bedingungen, ich kann mich nicht mehr genau erinnern, aber Ihrer sieht ihm sehr ähnlich...

 
Infinity писал(а) >>

Wie man richtig buchstabieren die Bedingung, wie zum Beispiel: Es gibt einen Indikator mit 2 Ebenen von 0 und 100 ... und die Bedingung ist wie folgt: Linie ging unter dem Niveau 0 nach einiger Zeit, ging über 0 Ebene und ging über das Niveau von 100 und die Ausfahrt Ebene von 100 Bedingung beenden sollte.

Ich kann es nicht in meinen EA einfügen... Ich weiß nicht, wie ich es machen soll, ........?????

und ist es möglich, die folgende Bedingung zu schreiben?

Es muss etwas sein wie:

if( ind[1]>0 && ind[2]<=0) flag_1 = true;
if( ind[1]<0 && ind[2]>=0) flag_1 = false;

if( flag_1 && ind[1]>100 && ind[2]<=100) { flag_2 = true; flag_1=false; }

if( flag_2 && flag_2 && ind[1]<100 && ind[2]>=100)
{
   flag_2 = false;
   // Здесь вроде бы произошло описываемое событие...
   // Но надо экспертом проверять...
}
Was ich meinte, war, dass man mit diesen Kästchen beschreiben muss, dann gibt es weniger Berechnungen, und außerdem gibt es keine Zyklen...
 
Infinity >> :

Menschen Art Hilfe mit der Bedingung ... wie man richtig buchstabieren die Bedingung, wie zum Beispiel: Es gibt einen Indikator mit 2 Ebenen von 0 und 100 ... und die Bedingung ist wie folgt: Linie ging unter dem Niveau 0 nach einiger Zeit, ging über 0 Ebene und ging über das Niveau von 100 und die Ausfahrt Ebene von 100 Bedingung beenden sollte.

Ich kann es nicht in meinen EA einfügen... Ich weiß nicht, wie ich es machen soll, ........?????

und ist es möglich, die folgende Bedingung zu schreiben?


Vielleicht so etwas - nur so eine Idee(!) - für den Indikator:

x[ i]=iRSI(...); // <= Пусть RSI будет в качестве Примера. 

TimeStart = 0;
TimeEnd   = 0;


if( x[ i]>0   &&   x[ i+1]<=0) {
   TimeStart=Time[ i];
}
if( x[ i]>=100   &&   x[ i+1]<100){
   TimeEnd=Time[ i+1];
}

if( TimeStart!=0   &&   TimeEnd!=0   &&   TimeEnd> TimeStart) {
   Range_i_Start = iBarShift(NULL,0, TimeStart);
   Range_i_End   = iBarShift(NULL,0, TimeEnd);

   bool status = false;
   for(int k = ... Range_i_Start -> Range_i_End  ) {
      if( x[ k]<0   ||   x[ k]>100) {
         status = true;
         break;
      }
   } // for()

   if( status==false) {
      ... Done;

      TimeStart = 0;
      TimeEnd   = 0;
   }
} // if(TimeStart!=0   &&   TimeEnd!=0) {