Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1943

 
Maksim Kalachev #:

He leído que sólo el indicador se configura como tal. Pero al cargar la demo aparece en los EAs

No publiques la misma pregunta en diferentes hilos del foro.

Te he contestado allí:

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Bichos, errores, preguntas

Artyom Trishkin, 2022.04.05 15:13

Lo has escrito utilizando los antiguos manejadores.

Debe utilizar OnCalculate().


 
Artyom Trishkin #:

No publiques la misma pregunta en diferentes hilos del foro.

Ahí te he contestado:


Ya lo estoy leyendo. Gracias.

 
¿Puedo borrar mi correspondencia con una persona? Quiero cerrar un chat con un usuario
 
makssub #:

Buenas tardes.

Ayuda con el código, tal vez haya ejemplos.
Tarea:

Hay varias órdenes abiertas, con diferentes lotes, en diferentes direcciones. Uno de ellos está enterrado con beneficio, supongamos que 20. Sin embargo, hay una orden abierta con el beneficio negativo, supongamos -55 con 0,05 lotes. Quiero cerrar una parte de una orden negativa por el monto de la ganancia de una orden cerrada positivamente para disminuir el drawdown.

He intentado escribir esto utilizando el operador while, pero no me ha ido bien.

Gracias de antemano.

¿No has escrito si esto es en el mismo instrumento o en diferentes posiciones?
 

¿Por qué el código de MT5 funciona pero el de MT4 no? construir 1Z5Z

Guarda el patrón pero no lo aplica

//+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string SYMBOL;
string ccname;
void OnStart()
  {

   SYMBOL = _Symbol;
   ccname = SYMBOL;
   SaveTemplate();
 
 DownloadTemplate();
     
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SaveTemplate(void)
  {
   if(ChartSaveTemplate(0, ccname))
      Print("Template successfully saved!  " + SYMBOL);
   else
      Print("Template save Failed!  " + SYMBOL);
   return;
  }
//+------------------------------------------------------------------+
void DownloadTemplate(void)
  {

   if(ChartApplyTemplate(0,ccname))
      return;
   else
      Print("Template download Failed!  " + SYMBOL);
  }

 
¿Podríais decirme cómo hacer que el programa funcione sólo cuando se inicie una nueva vela y que, tras ejecutar el código, se quede quieto y espere a que se inicie la siguiente vela?
 
Ivan Butko una nueva vela ha comenzado y después de ejecutar el código para acechar y esperar el inicio de la siguiente vela?

se llama precios de apertura.
es elemental.

 
Pavel Malyshko #:

se llama precios de apertura.
es elemental.

No me lo imagino. Llega una garrapata, el cheque pasa. La siguiente garrapata llega y se comprueba de nuevo. El mismo temporizador no cabe en el hueco.

Lo único que se me ocurre es memorizar la hora de apertura, sumarle la hora de la vela y cotejar la hora actual con el nuevo valor

 
Ivan Butko #:

No lo entiendo. Llega una garrapata, se comprueba. Cuando llega la siguiente garrapata, se vuelve a comprobar. El mismo temporizador no cabe en la apertura.

Sólo puedo recordar la hora de apertura, añadirle la hora de la vela y comprobar la hora actual con el nuevo valor

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias.

Cualquier pregunta de los novatos en MQL4 y MQL5, cualquier ayuda y discusión de algoritmos y códigos

Valeriy Yastremskiy, 2022.03.30 09:37

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

Si no conoce el algoritmo, recibirá una alerta cuando el precio llegue al final del día. Cuando aparezca una nueva barra,iTime(NULL,0,0) se cambiará y la igualdad no será una vez, entonces la igualdad y el if serán falsos.

También puedes hacerlo así.

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

O podemos obtener una nueva barra en cualquier marco temporal.

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

La convocatoria sería la siguiente

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }

 
Valeriy Yastremskiy #:
¿No has escrito si esto es en el mismo instrumento o en diferentes posiciones?

Que sea todo dentro del mismo par de divisas, EurUsd por ejemplo. Ambos están abiertos en Buy.

Razón de la queja: