[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 178

 
chief2000 >> :

Tuve problemas si establecí arrays para recordar los estados de las variables para cualquier "i" y

no definieron sus dimensiones como "[]".

Si el array está definido como indicador SetIndexBuffer(0,MyArray); en int init() entonces no necesita ser inicializado adicionalmente,

Por lo demás, además de declarar MiMatriz[]; necesito inicializar el tamaño de ArrayResize(MiMatriz,Cuenta);,

y exactamente en la función donde se hará la asignación.

entonces en

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

.

Pero si el tamaño del Array es declarado explícitamente por el número MyArray[1000]; no necesitamos todo esto.

El método ArrayResize es útil, cuando no se conoce el tamaño del array de antemano, y se calcula en el programa.

 
Urain >> :

Si un array se define como un indicador SetIndexBuffer(0,MyArray); en int init(), no es necesario inicializarlo adicionalmente,

En caso contrario, además de declarar MiMatriz[]; hay que inicializar el tamaño de ArrayResize(MiMatriz,Cuenta);,

y exactamente en la función donde se hará la asignación.

y luego en

.

Pero si el tamaño de un array se declara explícitamente como MiArray[1000];, no necesitamos todo eso.

El método ArrayResize es útil cuando no se conoce el tamaño del array de antemano, sino que se calcula en el programa.



La respuesta es exhaustiva. ¡Muchas gracias!

 
chief2000 >> :

La respuesta es exhaustiva. ¡Muchas gracias!

No me resisto a añadir que todo esto y mucho más está escrito de forma compacta y bastante clara en el libro de texto, y que uno debe pasar gradualmente de escuchar los cuentos a leer por sí mismo.

 

Por favor, explique si la sentencia switch puede ser insertada después de If ?

aquellos:

si (condición)

cambiar

 
chief2000 >> :

Un chukcha está pescando en la orilla. Un submarino americano se acerca, el capitán emerge de él.

Mira a su alrededor, grita por un rumbo noreste. El barco se hundió y desapareció. Algún tiempo después, un submarino ruso

un submarino ruso aparece. El capitán pregunta al Chukcha en qué dirección desapareció el submarino americano.

Chukcha responde:
- ¡Curso noreste!
- ¡No te hagas el listo conmigo, enséñame con el dedo!

:)

Algunos consejos para un principiante.

Hay algunas funciones en MQL que se llaman para hacer un pez.

Si esta función está disponible, puede ser reescrita como una DLL y entonces será posible llamarla en otros programas, por ejemplo en Omega.

Gracias.

 
granit77 >> :

No me resisto a añadir que todo esto y mucho más está escrito de forma compacta y bastante clara en el libro de texto, y que uno debe pasar gradualmente de escuchar los cuentos a leer por sí mismo.

Todo es cierto, pero todo lleva su tiempo. Y pronto tendrás que estudiar MQL5.

 

La gente amable ayuda con la condición ... cómo deletrear correctamente la condición como: hay un indicador con 2 niveles de 0 y 100 ... y la condición es la siguiente: la línea se fue por debajo del nivel 0 después de algún tiempo, se fue por encima del nivel 0 y se fue más allá del nivel de 100 y el nivel de salida de 100 condición debe terminar.

ׂ

No puedo ponerlo en mi EA... No sé cómo hacerlo, ........?????

y ¿es posible escribir la condición siguiente?


 
Infinity >> :

La gente amable ayuda con la condición. Cómo deletrear correctamente la condición como: hay un indicador con 2 niveles de 0 y 100 ... y la condición es la siguiente: la línea se fue por debajo del nivel 0 después de algún tiempo, se fue por encima del nivel 0 y se fue más allá del nivel de 100 y el nivel de salida de 100 condición debe terminar.

No puedo ponerlo en mi EA... No sé cómo hacerlo, ........?????

y ¿es posible escribir la condición siguiente?


Busca un EA de Laguero, creo que allí había esas condiciones no recuerdo exactamente, pero el tuyo se parece mucho...

 
Infinity писал(а) >>

La gente amable ayuda con la condición. Cómo deletrear correctamente la condición como: hay un indicador con 2 niveles de 0 y 100 ... y la condición es la siguiente: la línea se fue por debajo del nivel 0 después de algún tiempo, se fue por encima del nivel 0 y se fue más allá del nivel de 100 y el nivel de salida de 100 condición debe terminar.

No puedo ponerlo en mi EA... No sé cómo hacerlo, ........?????

y ¿es posible escribir la condición siguiente?

Tiene que ser algo así:

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;
   // Здесь вроде бы произошло описываемое событие...
   // Но надо экспертом проверять...
}
Lo que quería decir es que hay que describir con estas casillas entonces habrá menos cálculos, y además no habrá ciclos...
 
Infinity >> :

La gente amable ayuda con la condición ... cómo deletrear correctamente la condición como: hay un indicador con 2 niveles de 0 y 100 ... y la condición es la siguiente: la línea se fue por debajo del nivel 0 después de algún tiempo, se fue por encima del nivel 0 y se fue más allá del nivel de 100 y el nivel de salida de 100 condición debe terminar.

No puedo ponerlo en mi EA... No sé cómo hacerlo, ........?????

y ¿es posible escribir la condición siguiente?


Quizá algo así -sólo una idea- para el Indicador:

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) {
Razón de la queja: