[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 93

 
coronel:

Aquí tienes un consejo.

Hay un truco genial en el editor: la pista F1.

Resalte la función que desea anular y pulse F1.

Se abrirá la ayuda y deberá estudiar detenidamente cuáles son los parámetros de la función.

No te pierdas la cantidad y calidad de los parámetros introducidos en la función.


Gracias.
 
100yan:

Por favor, ¿CÓMO cerrar correctamente un pedido en partes en diferentes momentos y una vez? He estado luchando durante días...

https://www.mql5.com/ru/forum/131277/page69

Si el lote de la posición después de un cierre parcial es menor que antes del cierre, y la barra en la que se produjo el cierre parcial no ha cambiado, entonces no vuelva a cerrar. Esta es una de las muchas maneras de cerrar parte de una posición "una vez" en la barra actual.

Usted define sus propios criterios para cerrar una posición (una parte de una posición), y luego nosotros le ayudamos si no está seguro.

 

Hola.

¿Pueden decirme cómo hacer que aparezca una alerta después de un número determinado de minutos?

Me gustaría utilizar Time[], pero no lo consigo, así que he hecho lo siguiente: Sleep(60000*step);.

Marco de trabajo M1

extern int  step = 3;   // периодичность появления алерта мин.

static int        prevtime = 0;
//-------------------------------------------
int start()
  {
   if (Time[0] == prevtime) return(0);
   // Запомним текущий бар
   prevtime = Time[0];
//-------------------------------------

   Alert ("прошло ",step," мин.");
   
   //Sleep(60000*step);

//--------------------------------------
   return(0);
  }


 
Zar:

Hola.

¿Pueden decirme cómo hacer que aparezca una alerta después de un número determinado de minutos en la expo?

Me gustaría usar Time[], pero no lo consigo, así que he hecho esto: Sleep(60000*step);.

Marco de trabajo M1

 extern int  step = 3;     // периодичность появления алерта в мин.
 datetime  LastAlertTime;

//-------------------------------------
 int start()
  {
//-------------------------------------
       if(TimeCurrent() - LastAlertTime > step*60)
        {    
          Alert ("прошло ",step," мин.");
          LastAlertTime=TimeCurrent();  
        }
//--------------------------------------
   return(0);
  }
 
coronel:

Gracias, está funcionando.
 
artmedia70:

Si el lote de la posición después del cierre parcial es menor que antes del cierre, y la barra en la que se produjo el cierre parcial no ha cambiado, entonces no vuelva a cerrar. Esta es una de las muchas formas de cerrar parte de una posición "una vez" en la barra actual.

Si define los criterios para cerrar la posición (su parte), le ayudaremos si no está seguro.


+ sergeev - ¡Gracias por tu comentario!

El problema se describe aquí https://www.mql5.com/ru/forum/131277/page69 En resumen, la idea es abrir una orden y cerrarla parcialmente cuando se alcanzan ciertos niveles de TP. El problema es que operamos en M5 - M30 y la orden se cierra no en barras, sino en un periodo mucho más largo (D1, etc.). Una vez alcanzado TP1, se activa el prámetro de cierre de la 1ª parte, etc. No encuentro una solución sobre cómo identificar las piezas para no cerrar todo el pedido. (Mi primer pensamiento fue poner TR1, pero luego el precio ha ido caminando y dando señales de cierre para otras partes...)

Gracias de antemano.

 
100yan:


+ sergeev - ¡Gracias por tu comentario!

El problema se describe aquí https://www.mql5.com/ru/forum/131277/page69 En resumen, la idea es abrir una orden, y cerrarla en partes cuando se alcanzan ciertos niveles de TP. El problema es que operamos en M5 - M30 y la orden no se cierra en barras, sino en un periodo mucho más largo (D1, etc.). Al llegar a TP1 se dispara el prámetro de cierre de la 1ª parte, etc. No encuentro una solución sobre cómo identificar las piezas para no cerrar todo el pedido. (Mi primer pensamiento fue poner TR1, pero luego el precio ha ido caminando y dando señales de cierre para otras partes...)

Gracias de antemano.

Crear banderas, por ejemplo

Para TP1 - bool TP1, para TP2 - bool TP2, etc...

Inicialmente sus valores son falsos.

Antes de otro cierre, se hace una comprobación:

if (!TP1) {código para el cierre parcial de la primera parte, después de un cierre exitoso escribir TP1=true}

if (!TP2) {código para cerrar parcialmente la segunda parte, después de un cierre exitoso escribir TP2=true}

... y así sucesivamente para todas las partes...

para que las banderas señalen que cada parte ya ha sido cerrada una vez...

 
¿Cómo obtengo el valor de cierre de la barra 3 a partir de cero?
 
ScioMe:
¿Cómo obtengo el valor de cierre de la barra 3 a partir de cero?
  double Bar3Close = iClose(NULL,0,3);   
 
Gracias, ¿puede hacer esto: Cerrar[3]?
Razón de la queja: