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

 

Hola, me he encontrado con este problema: no consigo que el EA opere sólo en dos periodos de tiempo. ¿Cómo lo hago? ¿Puede decirme, por favor, cómo hacerlo? El código es así, pero sólo acepta 1 punto, ignora el segundo

extern string с = "Блок № 3";
extern int    Start_H1 = 0;
extern int    Start_M1 = 30;
extern int    End_H1   = 7;
extern int    End_M1   = 59;
extern int    Start_H2 = 12;
extern int    Start_M2 = 30;
extern int    End_H2   = 20;
extern int    End_M2   = 10;



if (((Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )) ||
    ((Hour()>=Start_H2 && Minute()>Start_M2) && (Hour()<=End_H2 && Minute()<=End_M2))) 
        {
         открытие ордеров
        }
 
Nikita Chernyshov:

Hola, me he encontrado con este problema: no consigo que el EA opere sólo en dos periodos de tiempo. ¿Cómo lo hago? ¿Puede decirme, por favor, cómo hacerlo? El código es así, pero sólo acepta 1 punto, ignora el segundo

Sería mejor convertir las horas y los minutos en tiempo completo y comparar con la hora actual

   string startTime_1, startTime_2, endTime_1, endTime_2;
   StringConcatenate(startTime_1, Start_H1, ":", Start_M1);
   StringConcatenate(endTime_1, End_H1, ":", End_M1);
   StringConcatenate(startTime_2, Start_H2, ":", Start_M2);
   StringConcatenate(endTime_2, End_H2, ":", End_M2);
   datetime startHM_1, startHM_2, endHM_1, endHM_2;
   startHM_1 = StringToTime(startTime_1);
   endHM_1 = StringToTime(endTime_1);
   startHM_2 = StringToTime(startTime_2);
   endHM_2 = StringToTime(endTime_2);
   if((TimeCurrent() >= startHM_1 && TimeCurrent() <= endHM_1) || (TimeCurrent() >= startHM_2 && TimeCurrent() <= endHM_2))
 
Hola. Hay objetos: triángulos con nombre: 321fa34, 321fa53, 321fa41. ¿Cómo puedo saber el precio mínimo del triángulo más fresco? El precio que está en las propiedades del medio.
 
YanSay:

Добрый день!

Прошу помочь со следующей проблемой:

1) После выполнения некоторых условий, открывается отложенный ордер:

Подскажите пожалуйста, что нужно дописать и куда, чтобы неоткрывшийся отложенный ордер был удален в том случае, если цена уже прошла стоп лосс(этого неоткрывшегося оредра).

Извините за глупый вопрос, заблудился в форумах пока искал ответ.

Заранее благодарю!

Identificador

Descripción

ORDER_TIME_GTC

El pedido permanecerá en la cola hasta que sea eliminado

ORDEN_TIME_DAY

La orden será válida sólo para el día de negociación actual

TIEMPO_DE_PEDIDO_ESPECIFICADO

El pedido será válido hasta la fecha de caducidad

HORA_DE_PEDIDO_DÍA_ESPECIFICADA

La orden estará vigente hasta las 23:59:59 del día de negociación en curso. Si esa hora no está dentro de una sesión de negociación, el vencimiento será a la hora de negociación más cercana.


¡Estos son sólo los parámetros para la retirada de órdenes pendientes!

Para eliminar la orden hay que controlar el precio y cuando alcanza el precio de parada eliminar la orden - ¡todo esto tiene que ser escrito en un código separado!

 

Estimados señores,

por favor, ayúdame a encontrar el error:

(Errores)

')' - fin inesperado del programa

" - se espera una coma

" -semicolón esperado

'Trade_BY' - función no definida

'Trade_SELL' - función no definida

Archivos adjuntos:
 

Por favor, aconséjeme.

¿Cómo puedo utilizar el script para cambiar la configuración (una variable específica) del indicador en el gráfico?

¡¡¡Si esto es posible un trozo de código sería deseable !!!

 
PolarSeaman:
Hola. Hay objetos: triángulos con nombre: 321fa34, 321fa53, 321fa41. ¿Cómo puedo saber el precio mínimo del triángulo más fresco? El precio que está en las propiedades del medio.

1.

OBJPROP_CREATETIME

Tiempo de creación del objeto

datetime r/o

2.

OBJPROP_PRICE

Precio coordinado

modificador=número de punto de anclaje

 
Nikita Chernyshov:

Hola, me he encontrado con este problema: no consigo que el EA opere sólo en dos periodos de tiempo. ¿Cómo lo hago? ¿Puede decirme, por favor, cómo hacerlo? El código se parece a esto, pero sólo acepta 1 punto, e ignora el segundo

Con este enfoque, se ignorarán ambos plazos. Por ejemplo, la hora actual es 01:15. ¿Se mantendrá la condición?

(Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )

No, no lo hará. Al fin y al cabo, los minutos actuales son 15, que son menos que los 30 iniciales. Lo mismo ocurre con el segundo intervalo. Lo mejor es convertir la hora en minutos desde el comienzo del día:

int nCurDayMinutes = Hour() * 60 + Minute();
int nStart1DayMinutes = Start_H1 * 60 + Start_M1;
int nEnd1DayMinutes = End_H1 * 60 + End_M1;
if (nCurDayMinutes >= nStart1DayMinutes && nCurDayMinutes < nEnd1DayMinutes)
{
   // внутри интервала
}
 
YanSay:

¡Buenas tardes!

Por favor, ayuda con el siguiente problema:

1) Cuando se cumplen algunas condiciones, se abre una orden pendiente:

Por favor, díganme qué añadir y dónde eliminar una orden pendiente si el precio ya ha pasado el stop loss (de esta orden pendiente).

Perdón por la pregunta estúpida, me perdí en los foros mientras buscaba una respuesta.

Me he perdido en los foros mientras buscaba la respuesta ¡Gracias de antemano!

En primer lugar, no sabemos si la orden se ha abierto, porque no hay ninguna comprobación al respecto. Por lo tanto, no tiene sentido comprobar si el Stop Loss o Take Profit de una orden que no fue abierta.

 
Игорь:

Por favor, aconséjeme.

¿Cómo puedo utilizar el script para cambiar la configuración (una variable específica) del indicador en el gráfico?

¡¡¡Si esto es posible un trozo de código sería deseable !!!

Una pregunta muy extraña. Es lo mismo que preguntar: "¿Cómo se gira en un taburete con una lima?

Razón de la queja: